AnnotationDataImpl.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, 24 Apr 2008
11  *
12  *  $Id: AnnotationDataImpl.java 17530 2014-03-04 15:57:43Z markagreenwood $
13  */
14 package gate.gui.annedit;
15 
16 import gate.Annotation;
17 import gate.AnnotationSet;
18 
19 /**
20  * A simple reusable implementation of {@link AnnotationData}.
21  */
22 public class AnnotationDataImpl implements AnnotationData {
23   public AnnotationDataImpl(AnnotationSet set, Annotation ann){
24     this.ann = ann;
25     this.set = set;
26   }
27   
28   
29   Annotation ann;
30   AnnotationSet set;
31   /**
32    @return the ann
33    */
34   @Override
35   public Annotation getAnnotation() {
36     return ann;
37   }
38   /**
39    @return the set
40    */
41   @Override
42   public AnnotationSet getAnnotationSet() {
43     return set;
44   }
45   /* (non-Javadoc)
46    * @see java.lang.Object#hashCode()
47    */
48   @Override
49   public int hashCode() {
50     final int prime = 31;
51     int result = 1;
52     result = prime * result + ((ann == null: ann.hashCode());
53     String setName = set.getName();
54     result = prime * result + ((setName == null: setName.hashCode());
55     return result;
56   }
57   /* (non-Javadoc)
58    * @see java.lang.Object#equals(java.lang.Object)
59    */
60   @Override
61   public boolean equals(Object obj) {
62     if(this == objreturn true;
63     if(obj == nullreturn false;
64     if(!(obj instanceof AnnotationDataImpl)) return false;
65     final AnnotationDataImpl other = (AnnotationDataImpl)obj;
66     if(ann == null) {
67       if(other.ann != nullreturn false;
68     }
69     else if(!ann.equals(other.ann)) return false;
70     if(set == null) {
71       if(other.set != nullreturn false;
72     }
73     else if(set != other.setreturn false;
74     return true;
75   }
76 }