CorpusEvent.java
001 /*
002  *  Copyright (c) 1995-2012, The University of Sheffield. See the file
003  *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
004  *
005  *  This file is part of GATE (see http://gate.ac.uk/), and is free
006  *  software, licenced under the GNU Library General Public License,
007  *  Version 2, June 1991 (in the distribution as file licence.html,
008  *  and also available at http://gate.ac.uk/gate/licence.html).
009  *
010  *  Valentin Tablan 13/07/2001
011  *
012  *  $Id: CorpusEvent.java 17595 2014-03-08 13:05:32Z markagreenwood $
013  */
014 
015 package gate.event;
016 
017 import gate.Corpus;
018 import gate.Document;
019 
020 /**
021  * Models events fired by corpora when documents are added or removed.
022  */
023 public class CorpusEvent extends GateEvent {
024 
025   private static final long serialVersionUID = -1499954680735513011L;
026 
027   /**
028    * Event type that is fired when a new document is added to a corpus
029    */
030   public final static int DOCUMENT_ADDED = 401;
031 
032   /**
033    * Event type that is fired when a document is removed from a corpus
034    */
035   public final static int DOCUMENT_REMOVED = 402;
036 
037   /**
038    * Creates a new CorpusEvent.
039    @param source the corpus that fires the event
040    @param doc the document this event refers to
041    @param type the type of event ({@link #DOCUMENT_ADDED} or
042    {@link #DOCUMENT_REMOVED}).
043    */
044   public CorpusEvent(Corpus source, Document doc, int index, int type){
045     this(source, doc, index, null, type);
046   }
047 
048   /**
049    * Creates a new CorpusEvent.
050    @param source the corpus that fires the event
051    @param doc the document this event refers to
052    @param documentLRID the persistence ID of the document that has been added
053    * or removed.
054    @param type the type of event ({@link #DOCUMENT_ADDED} or
055    {@link #DOCUMENT_REMOVED}).
056    */
057   public CorpusEvent(Corpus source, Document doc, int index, 
058           Object documentLRID, int type){
059     super(source, type);
060     this.document = doc;
061     this.documentIndex = index;
062     this.documentLRID = documentLRID;
063   }
064   
065   /**
066    * Gets the dcument this event refers to
067    */
068   public gate.Document getDocument() {
069     return document;
070   }
071 
072   /**
073    * Gets the index of the document this event refers to
074    */
075   public int getDocumentIndex() {
076     return this.documentIndex;
077   }
078 
079   
080   /**
081    * Gets the persistence ID of the document to which this event refers.
082    * This value could be <code>null</code>, if the document does not have a 
083    * persistence ID.
084    @return the documentLRID
085    */
086   public Object getDocumentLRID() {
087     return documentLRID;
088   }
089 
090 
091   /**
092    * The document that has been added/removed.
093    */
094   private gate.Document document;
095   
096   /**
097    * The index of the document which has been removed. Needed because
098    * the document itself might not have been loaded in memory, so the
099    * index could be used instead.
100    */
101   private int documentIndex;
102   
103   /**
104    * The persistence ID of the document to which this event refers.
105    */
106   private Object documentLRID;
107   
108 }