| Document |

    1   /*
    2    *  Document.java
    3    *
    4    *  Copyright (c) 1998-2001, The University of Sheffield.
    5    *
    6    *  This file is part of GATE (see http://gate.ac.uk/), and is free
    7    *  software, licenced under the GNU Library General Public License,
    8    *  Version 2, June 1991 (in the distribution as file licence.html,
    9    *  and also available at http://gate.ac.uk/gate/licence.html).
    10   *
    11   *  Hamish Cunningham, 19/Jan/2000
    12   *
    13   *  $Id: Document.java,v 1.33 2001/10/17 14:18:10 marin Exp $
    14   */
    15
    16  package gate;
    17
    18  import java.util.*;
    19  import java.net.*;
    20
    21  import gate.util.*;
    22  import gate.event.*;
    23
    24
    25  /** Represents the commonalities between all sorts of documents.
    26   */
    27  public interface Document extends LanguageResource, Comparable {
    28
    29    /** Documents are identified by URLs
    30     */
    31    public URL getSourceUrl();
    32
    33    /** Set method for the document's URL
    34     */
    35    public void setSourceUrl(URL sourceUrl);
    36
    37    /** Documents may be packed within files; in this case an optional pair of
    38     *  offsets refer to the location of the document.
    39     */
    40    public Long[] getSourceUrlOffsets();
    41
    42    /** Documents may be packed within files; in this case an optional pair of
    43     *  offsets refer to the location of the document. This method gets the
    44     *  start offset.
    45     */
    46    public Long getSourceUrlStartOffset();
    47
    48    /** Documents may be packed within files; in this case an optional pair of
    49     *  offsets refer to the location of the document. This method gets the
    50     *  end offset.
    51     */
    52    public Long getSourceUrlEndOffset();
    53
    54    /** The content of the document: wraps e.g. String for text; MPEG for
    55     *  video; etc.
    56     */
    57    public DocumentContent getContent();
    58
    59    /** Set method for the document content
    60     */
    61    public void setContent(DocumentContent newContent);
    62
    63    /** Get the default set of annotations. The set is created if it
    64     *  doesn't exist yet.
    65     */
    66    public AnnotationSet getAnnotations();
    67
    68    /** Get a named set of annotations. Creates a new set if one with this
    69     *  name doesn't exist yet.
    70     */
    71    public AnnotationSet getAnnotations(String name);
    72
    73    /** Returns a map with the named annotation sets
    74      */
    75    public Map getNamedAnnotationSets();
    76
    77    /**
    78     * Removes one of the named annotation sets.
    79     * Note that the default annotation set cannot be removed.
    80     * @param name the name of the annotation set to be removed
    81     */
    82    public void removeAnnotationSet(String name);
    83
    84    /** Make the document markup-aware. This will trigger the creation
    85     *  of a DocumentFormat object at Document initialisation time; the
    86     *  DocumentFormat object will unpack the markup in the Document and
    87     *  add it as annotations. Documents are <B>not</B> markup-aware by default.
    88     *
    89     *  @param b markup awareness status.
    90     */
    91    public void setMarkupAware(Boolean b);
    92
    93    /** Get the markup awareness status of the Document.
    94     *
    95     *  @return whether the Document is markup aware.
    96     */
    97    public Boolean getMarkupAware();
    98
    99    /** Returns a GateXml document. This document is actually a serialization of
    100    *  a Gate Document in XML.
    101     * @return a string representing a Gate Xml document
    102     */
    103   public String toXml();
    104
    105   /** Returns an XML document aming to preserve the original markups(
    106     * the original markup will be in the same place and format as it was
    107     * before processing the document) and include (if possible)
    108     * the annotations specified in the aSourceAnnotationSet.
    109     * <b>Warning:</b> Annotations from the aSourceAnnotationSet will be lost
    110     * if they will cause a crosed over situation.
    111     * @param aSourceAnnotationSet is an annotation set containing all the
    112     * annotations that will be combined with the original marup set.
    113     * @return a string representing an XML document containing the original
    114     * markup + dumped annotations form the aSourceAnnotationSet
    115     */
    116   public String toXml(Set aSourceAnnotationSet);
    117
    118   /** Make changes to the content.
    119    */
    120   public void edit(Long start, Long end, DocumentContent replacement)
    121     throws InvalidOffsetException;
    122
    123   /**
    124    * Adds a {@link gate.event.DocumentListener} to this document.
    125    * All the registered listeners will be notified of changes occured to the
    126    * document.
    127    */
    128   public void addDocumentListener(DocumentListener l);
    129
    130   /**
    131    * Removes one of the previously registered document listeners.
    132    */
    133   public void removeDocumentListener(DocumentListener l);
    134
    135
    136   /** Documents may be packed within files; in this case an optional pair of
    137     * offsets refer to the location of the document. This method sets the
    138     * end offset.
    139     */
    140   public void setSourceUrlEndOffset(Long sourceUrlEndOffset);
    141
    142
    143   /** Documents may be packed within files; in this case an optional pair of
    144     * offsets refer to the location of the document. This method sets the
    145     * start offset.
    146     */
    147   public void setSourceUrlStartOffset(Long sourceUrlStartOffset);
    148
    149 } // interface Document
    150
    151

| Document |