1   /*
2    *  JdmAttribute.java
3    *
4    *  Copyright (c) 1998-2001, The University of Sheffield.
5    *
6    *  This file is part of GATE (see http://gate.ac.uk/), and is free
7    *  software, licenced under the GNU Library General Public License,
8    *  Version 2, June 1991 (in the distribution as file licence.html,
9    *  and also available at http://gate.ac.uk/gate/licence.html).
10   * 
11   *  Kalina Bontcheva, 23/02/2000
12   *
13   *  $Id: JdmAttribute.java,v 1.5 2000/11/08 16:35:02 hamish Exp $
14   *
15   *  Description:  This is JDM aimed at repeating the functionality of GDM
16   */
17  
18  package gate.jape;
19  
20  import gate.*;
21  import gate.util.*;
22  import java.io.Serializable;
23  
24  /**
25    * THIS CLASS SHOULDN'T BE HERE. Please let's all ignore it, and maybe
26    * it will go away.
27    * <P>
28    * Implements the TIPSTER and GDM API for attributes.
29    * Test code in <code>testAttributes</code> class. <P>
30    * The JdmAttribute class would accept all java serialisable classes, all
31    * jdm classes and also all user-defined classes provided they implement
32    * the Serializable interface. This restriction is necessary  since Jdm
33    * uses Java serialisation to ensure object persistency. However, making
34    * classes serialisable is usually quite straightforward. <P>
35    * @author Kalina Bontcheva
36  */
37  public class JdmAttribute implements Serializable {
38  
39    /** Debug flag */
40    private static final boolean DEBUG = false;
41  
42    private String name;
43    private Object value;
44  
45    protected JdmAttribute() {
46    }
47  
48    /** throws JdmException when the value isn't one of the types we know
49      * how to store, i.e., a serialisable or Jdm class.
50      */
51    public JdmAttribute(String name, Object value) {
52      this.name = name; this.value = value;
53    }
54  
55    /** throws JdmException when the value isn't one of the types we know
56      * how to store, i.e., a serialisable or Jdm class.
57      */
58    public JdmAttribute(JdmAttribute jdmAttr) {
59      String name = jdmAttr.getName();
60      Object value = jdmAttr.getValue();
61    }
62  
63    public String getName() {
64      return name;
65    }
66  
67    public Object getValue() {
68      return value;
69    }
70  
71    public String getValueType() {
72      return value.getClass().getName();
73    }
74  
75    public boolean equals(Object obj) {
76      JdmAttribute a = (JdmAttribute) obj;
77      return a.getName().equals(name) && a.getValue().equals(value);
78    }
79  
80    public String toString() {
81           return "JdmAttr: name=" + name + "; value=" + value.toString();
82  
83    }
84  
85  } // class JdmAttribute
86