fd6d6de8fb6f5971c01134309f107b79511e4e16
[vamsas.git] / src / uk / ac / vamsas / client / VorbaId.java
1 /*
2  * Created on 12-Sep-2005
3  *
4  * TODO To change the template for this generated file go to
5  * Window - Preferences - Java - Code Style - Code Templates
6  */
7 package uk.ac.vamsas.client;
8
9 import java.io.Serializable;
10
11 /**
12  * The unique reference id for a Vamsas document Vobject,
13  * used by applications to refer to the vamsas Vobject
14  * within their own data space in the vamsas document.
15  * This is serializable (thanks to Dominik Lindner) so an 
16  * application can store it easily.
17  * @author jimp
18  */
19 public class VorbaId implements Serializable {
20   /**
21    * 1 is first vamsas release ID version.
22    */
23   private static final long serialVersionUID = 1L;
24   protected String id;
25   protected VorbaId() {
26     super();
27   }
28   private VorbaId(String Id) {
29     super();
30     id = Id;
31   }
32   /**
33    * 
34    * @param vorbaObject the source of vorba Ids
35    * @param vobject the Vobject to be registered with a new vorba id
36    * @return
37    */
38   protected static VorbaId newId(IVorbaIdFactory vorbaObject, Vobject vobject) {
39     // Make unique id from appSpace info in vorbaObject
40     synchronized (vorbaObject) {
41       vobject.vorbaId=vorbaObject.makeVorbaId(vobject);
42       return vobject.vorbaId;
43     }
44   }
45   /**
46    * protected VorbaId constructor used when turning XML ID strings into vorba IDs
47    * @param id
48    * @return VorbaId object or null if string was null.
49    */
50   protected static VorbaId newId(String id) {
51     return (id==null) ? null : new VorbaId(id);
52   }
53   /**
54    * @return Returns the id.
55    */
56   public String getId() {
57     return id;
58   }
59   /* (non-Javadoc)
60    * @see java.lang.Object#equals(java.lang.Object)
61    */
62   public boolean equals(Object obj) {
63     if (obj instanceof String)
64       return id.equals(obj);
65     else if (obj instanceof VorbaId)
66       return id.equals(((VorbaId)obj).id);
67     return false;
68   }
69   /* (non-Javadoc)
70    * @see java.lang.Object#hashCode()
71    */
72   public int hashCode() {
73     return id.hashCode();
74   }
75   /* (non-Javadoc)
76    * @see java.lang.Object#toString()
77    */
78   public String toString() {
79     return id;
80   }
81   
82 }