PatternAnnotation.java
001 /*
002  *  PatternAnnotation.java
003  *
004  *  Niraj Aswani, 19/March/07
005  *
006  *  $Id: PatternAnnotation.html,v 1.0 2007/03/19 16:22:01 niraj Exp $
007  */
008 package gate.creole.annic;
009 
010 import java.io.Serializable;
011 import java.util.HashMap;
012 import java.util.Map;
013 
014 /**
015  * Pattern Annotation is similar to a GATE Annotation except that it
016  * doesn't have any annotation ID but it contains its position in the token stream
017  * that is created when indexing documents.
018  
019  @author niraj
020  
021  */
022 public class PatternAnnotation implements Serializable {
023 
024   /**
025    * serial version id
026    */
027   private static final long serialVersionUID = 3690197637685197108L;
028 
029   /**
030    * Annotation Type
031    */
032   private String type;
033 
034   /**
035    * Text of the annotation
036    */
037   private String text;
038 
039   /**
040    * Start Offset
041    */
042   private int stOffset;
043 
044   /**
045    * End Offset
046    */
047   private int enOffset;
048 
049   /**
050    * FeatureMap
051    */
052   private Map<String, String> features;
053 
054   /**
055    * Position in the token stream
056    */
057   private int position = 0;
058 
059   /**
060    * Constructor
061    */
062   public PatternAnnotation() {
063     features = new HashMap<String, String>();
064   }
065 
066   /**
067    * Sets the Type
068    @param type
069    */
070   public void setType(String type) {
071     this.type = type;
072   }
073 
074   /**
075    * Sets the TExt
076    @param text
077    */
078   public void setText(String text) {
079     this.text = text;
080   }
081 
082   /**
083    * Sets the start offset
084    @param st
085    */
086   public void setStOffset(int st) {
087     this.stOffset = st;
088   }
089 
090   /**
091    * Sets the end offset
092    @param en
093    */
094   public void setEnOffset(int en) {
095     this.enOffset = en;
096   }
097 
098   /**
099    * Adds a feature
100    @param key
101    @param val
102    */
103   public void addFeature(String key, String val) {
104     features.put(key, val);
105   }
106 
107   /**
108    * Sets the position
109    @param pos
110    */
111   public void setPosition(int pos) {
112     position = pos;
113   }
114 
115   /**
116    * Gets the Features
117    */
118   public Map<String, String> getFeatures() {
119     return features;
120   }
121 
122   /**
123    * Gets the value of a feature
124    */
125   public String getFeature(String key) {
126     return features.get(key);
127   }
128 
129   /**
130    * Gets the type of the annotation
131    */
132   public String getType() {
133     return this.type;
134   }
135 
136   /**
137    * Gets the text of the annotation
138    */
139   public String getText() {
140     return this.text;
141   }
142 
143   /**
144    * Gets the start offset
145    */
146   public int getStartOffset() {
147     return stOffset;
148   }
149 
150   /**
151    * Gets the end offset
152    */
153   public int getEndOffset() {
154     return enOffset;
155   }
156 
157   /**
158    * Gets the position of this annotation in the token stream.
159    */
160   public int getPosition() {
161     return position;
162   }
163 }