1 package org.apache.torque.om;
2
3 /* ====================================================================
4 * The Apache Software License, Version 1.1
5 *
6 * Copyright (c) 2001 The Apache Software Foundation. All rights
7 * reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 *
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 *
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in
18 * the documentation and/or other materials provided with the
19 * distribution.
20 *
21 * 3. The end-user documentation included with the redistribution,
22 * if any, must include the following acknowledgment:
23 * "This product includes software developed by the
24 * Apache Software Foundation (http://www.apache.org/)."
25 * Alternately, this acknowledgment may appear in the software itself,
26 * if and wherever such third-party acknowledgments normally appear.
27 *
28 * 4. The names "Apache" and "Apache Software Foundation" and
29 * "Apache Turbine" must not be used to endorse or promote products
30 * derived from this software without prior written permission. For
31 * written permission, please contact apache@apache.org.
32 *
33 * 5. Products derived from this software may not be called "Apache",
34 * "Apache Turbine", nor may "Apache" appear in their name, without
35 * prior written permission of the Apache Software Foundation.
36 *
37 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48 * SUCH DAMAGE.
49 * ====================================================================
50 *
51 * This software consists of voluntary contributions made by many
52 * individuals on behalf of the Apache Software Foundation. For more
53 * information on the Apache Software Foundation, please see
54 * <http://www.apache.org/>.
55 */
56
57
58 /***
59 * This class can be used as an ObjectKey to uniquely identify an
60 * object within an application where the id consists
61 * of a single entity such a GUID or the value of a db row's primary key.
62 *
63 * @author <a href="mailto:jmcnally@apache.org">John McNally</a>
64 * @version $Id: StringKey.java,v 1.7 2002/11/26 22:32:55 mpoeschl Exp $
65 */
66 public class StringKey extends SimpleKey
67 {
68 /***
69 * Creates an SimpleKey whose internal representation will be
70 * set later, through a set method
71 */
72 public StringKey()
73 {
74 }
75
76 /***
77 * Creates a StringKey whose internal representation is a String
78 *
79 * @param key the key value
80 */
81 public StringKey(String key)
82 {
83 this.key = key;
84 }
85
86 /***
87 * Creates a StringKey that is equivalent to key.
88 *
89 * @param key the key value
90 */
91 public StringKey(StringKey key)
92 {
93 if (key != null)
94 {
95 this.key = key.getValue();
96 }
97 else
98 {
99 this.key = null;
100 }
101 }
102
103 /***
104 * Sets the internal representation to a String
105 *
106 * @param key the key value
107 */
108 public void setValue(String key)
109 {
110 this.key = key;
111 }
112
113 /***
114 * Sets the internal representation to the same object used by key.
115 *
116 * @param key the key value
117 */
118 public void setValue(StringKey key)
119 {
120 if (key != null)
121 {
122 this.key = key.getValue();
123 }
124 else
125 {
126 this.key = null;
127 }
128 }
129
130 /***
131 * Access the underlying String object.
132 *
133 * @return a <code>String</code> value
134 */
135 public String getString()
136 {
137 return (String) key;
138 }
139
140 /***
141 * keyObj is equal to this StringKey if keyObj is a StringKey or String
142 * that contains the same information this key contains. Two ObjectKeys
143 * that both contain null values are not considered equal.
144 *
145 * @param keyObj the comparison value
146 * @return whether the two objects are equal
147 */
148 public boolean equals(Object keyObj)
149 {
150 boolean isEqual = false;
151
152 if (key != null)
153 {
154 if (keyObj instanceof String)
155 {
156 isEqual = keyObj.equals(key);
157 }
158 // check against a StringKey. Two keys are equal, if their
159 // internal keys equivalent.
160 else if (keyObj instanceof StringKey)
161 {
162 Object obj = ((StringKey) keyObj).getValue();
163 isEqual = key.equals(obj);
164 }
165 }
166 return isEqual;
167 }
168
169 /***
170 * get a String representation
171 *
172 * @return a String representation of an empty String if the value is null
173 */
174 public String toString()
175 {
176 if (key != null)
177 {
178 return (String) key;
179 }
180 return "";
181 }
182 }
This page was automatically generated by Maven