LengthAccessor.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  *  Eric Sword, 09/03/08
11  *
12  *  $Id$
13  */
14 package gate.jape.constraint;
15 
16 import gate.Annotation;
17 import gate.AnnotationSet;
18 
19 /**
20  * Accessor that returns the length of the characters spanned by the annotation
21  *
22  @version $Revision$
23  @author esword
24  */
25 public class LengthAccessor extends MetaPropertyAccessor {
26 
27   private static final long serialVersionUID = -7632284854801892163L;
28 
29   /**
30    * Return the length of the span of the annotation.
31    */
32   @Override
33   public Object getValue(Annotation annot, AnnotationSet context) {
34     if(annot == nullreturn 0;
35     Long retVal = annot.getEndNode().getOffset()
36             - annot.getStartNode().getOffset();
37     return retVal;
38   }
39 
40   /**
41    * Always returns "length", the name of the meta-property which this
42    * accessor provides.
43    */
44   @Override
45   public Object getKey() {
46     return "length";
47   }
48 }