1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.wotonomy.datastore;
20
21 import java.io.Serializable;
22
23 import net.wotonomy.foundation.internal.ValueConverter;
24
25 public class DataKey implements Comparable, Serializable, Cloneable
26 {
27 static final long serialVersionUID = 8421127539579065705L;
28
29 Long key;
30
31 public DataKey()
32 {
33 key = new Long( 0 );
34 }
35
36 /***
37 * Converts string representation to new object.
38 */
39 public DataKey( String aString )
40 {
41 this();
42 setKeyString( aString );
43 }
44
45 public int hashCode()
46 {
47 return key.intValue();
48 }
49
50 public void increment()
51 {
52 key = new Long( key.longValue() + 1 );
53 }
54
55 public Object clone()
56 {
57 return new DataKey( this.toString() );
58 }
59
60 public String toString()
61 {
62 return key.toString();
63 }
64
65 public String getKeyString()
66 {
67 return key.toString();
68 }
69
70 public void setKeyString( String aString )
71 {
72 Long parsed = ValueConverter.getLong( aString );
73 if ( parsed != null ) key = parsed;
74 }
75
76 public boolean equals( Object anObject )
77 {
78 if ( anObject instanceof String )
79 {
80 if ( toString().equals( anObject ) )
81 {
82 return true;
83 }
84 }
85 if ( ! ( anObject instanceof DataKey ) ) return false;
86 return key.equals( ((DataKey)anObject).key );
87 }
88
89 public int compareTo( Object anObject )
90 {
91 if ( anObject instanceof String )
92 {
93 if ( toString().equals( anObject ) )
94 {
95 return 0;
96 }
97 }
98 if ( ! ( anObject instanceof DataKey ) )
99 {
100 Long converted = (Long) ValueConverter.getLong( anObject );
101 if ( converted != null )
102 {
103 return (int) ( key.longValue() - converted.longValue() );
104 }
105 return 0;
106 };
107 return (int) ( key.longValue() - ((DataKey)anObject).key.longValue() );
108 }
109 }
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142