RelationSetEvent.java
01 /*
02  *  Copyright (c) 1995-2012, The University of Sheffield. See the file
03  *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
04  *
05  *  This file is part of GATE (see http://gate.ac.uk/), and is free
06  *  software, licenced under the GNU Library General Public License,
07  *  Version 2, June 1991 (in the distribution as file licence.html,
08  *  and also available at http://gate.ac.uk/gate/licence.html).
09  *
10  *  Valentin Tablan 12/12/2000
11  *
12  *  $Id: AnnotationSetEvent.java 17080 2013-11-12 19:29:34Z markagreenwood $
13  */
14 
15 package gate.event;
16 
17 import gate.relations.Relation;
18 import gate.relations.RelationSet;
19 
20 /**
21  * This class models events fired by an {@link gate.relations.RelationSet}.
22  */
23 public class RelationSetEvent extends GateEvent{
24 
25   private static final long serialVersionUID = 6115461542702259816L;
26 
27   /**Event type used for situations when a new annotation has been added*/
28   public static final int RELATION_ADDED = 901;
29 
30   /**Event type used for situations when an annotation has been removed*/
31   public static final int RELATION_REMOVED = 902;
32 
33   /**
34    * Constructor.
35    @param source the {@link gate.relations.RelationSet} that fired the event
36    @param type the type of the event
37    @param relation the Relation that was added or removed.
38    */
39   public RelationSetEvent(RelationSet source,
40                             int type,
41                             Relation relation) {
42     super(source, type);
43     this.relation = relation;
44   }
45   
46   /**
47    * Gets the document that has had an annotation added or removed.
48    @return {@link gate.Document}
49    */
50   public gate.Document getSourceDocument() {
51     return ((RelationSet)source).getAnnotationSet().getDocument();
52   }
53 
54   /**
55    * Gets the relation that has been added or removed
56    @return {@link gate.relations.Relation}
57    */
58   public Relation getRelation() {
59     return relation;
60   }
61 
62   private Relation relation;
63 }