NodeImpl.java
01 /*
02  *  NodeImpl.java
03  *
04  *  Copyright (c) 1995-2012, The University of Sheffield. See the file
05  *  COPYRIGHT.txt in the software or at http://gate.ac.uk/gate/COPYRIGHT.txt
06  *
07  *  This file is part of GATE (see http://gate.ac.uk/), and is free
08  *  software, licenced under the GNU Library General Public License,
09  *  Version 2, June 1991 (in the distribution as file licence.html,
10  *  and also available at http://gate.ac.uk/gate/licence.html).
11  *
12  *  Valentin Tablan, 24.01.2000
13  *
14  *  $Id: NodeImpl.java 17616 2014-03-10 16:09:07Z markagreenwood $
15  */
16 
17 package  gate.annotation;
18 
19 import gate.Node;
20 
21 /** Provides an implementation for the interface gate.Node.
22  *
23  */
24 public class NodeImpl implements Node, Comparable<Node>
25 {
26   /** Freeze the serialization UID. */
27   static final long serialVersionUID = -8240414984367916298L;
28 
29   /** Construction from id. Creates an unrooted node.
30    */
31   public NodeImpl (Integer id) {
32     this.id = id;
33     offset = null;
34   // Node()
35 
36   /** Construction from id and offset.
37    *
38    @param id the Id of the new node
39    @param offset the (temporal) offset of the Node; Should be <b>null</b>
40    *     for non-anchored nodes.
41    */
42   public NodeImpl (Integer id, Long offset) {
43       this.id = id;
44       this.offset = offset;
45   // Node(id, offset)
46 
47   /** Returns the Id of the Node.
48    */
49   @Override
50   public Integer getId () { return  id; }
51 
52   /** Offset (will be null when the node is not anchored)
53    */
54   @Override
55   public Long getOffset () { return  offset; }
56 
57   /** String representation
58    */
59   @Override
60   public String toString() {
61     return "NodeImpl: id=" + id + "; offset=" + offset;
62   // toString()
63 
64   /** Ordering
65    */
66   @Override
67   public int compareTo(Node otherthrows ClassCastException {
68     return id.compareTo(other.getId());
69   // compareTo
70 
71   /** To allow AnnotationSet to revise offsets during editing
72    */
73   void setOffset(Long offset) { this.offset = offset; }
74 
75   /**
76    * The id of this node (used for persistency)
77    *
78    */
79   Integer id;
80   /**
81    * The offset of this node
82    *
83    */
84   Long offset;
85 }