001: /*
002: * Copyright 2001-2004 The Apache Software Foundation
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016: package org.apache.commons.collections;
017:
018: /**
019: * Class LocalTestNode, a helper class for TestDoubleOrderedMap
020: *
021: * @version $Revision: 155406 $ $Date: 2005-02-26 12:55:26 +0000 (Sat, 26 Feb 2005) $
022: *
023: * @author Marc Johnson (marcj at users dot sourceforge dot net)
024: */
025: class LocalTestNode implements Comparable {
026:
027: private Comparable key;
028: private Comparable value;
029:
030: /**
031: * construct a LocalTestNode
032: *
033: * @param key value used to create the key and value
034: */
035: LocalTestNode(final int key) {
036: this .key = new Integer(key);
037: this .value = String.valueOf(key);
038: }
039:
040: /**
041: * @param key the unique key associated with the current node.
042: */
043: void setKey(Comparable key) {
044: this .key = key;
045: }
046:
047: /**
048: * @return the unique key associated with the current node
049: */
050: Comparable getKey() {
051: return key;
052: }
053:
054: /**
055: * @param value the unique value associated with the current node.
056: */
057: void setValue(Comparable value) {
058: this .value = value;
059: }
060:
061: /**
062: * @return the unique value associated with the current node
063: */
064: Comparable getValue() {
065: return value;
066: }
067:
068: /**
069: * Method compareTo
070: *
071: * @param o
072: *
073: * @return
074: */
075: public int compareTo(Object o) {
076:
077: LocalTestNode other = (LocalTestNode) o;
078: int rval = getKey().compareTo(other.getKey());
079:
080: if (rval == 0) {
081: rval = getValue().compareTo(other.getValue());
082: }
083:
084: return rval;
085: }
086:
087: /**
088: * Method equals
089: *
090: * @param o
091: *
092: * @return true if equal
093: */
094: public boolean equals(Object o) {
095:
096: if (o == null) {
097: return false;
098: }
099:
100: if (!(o.getClass().equals(this .getClass()))) {
101: return false;
102: }
103:
104: LocalTestNode node = (LocalTestNode) o;
105:
106: return (getKey().equals(node.getKey()) && getValue().equals(
107: node.getValue()));
108: }
109:
110: /**
111: * @return hash code
112: */
113: public int hashCode() {
114: return getKey().hashCode() ^ getValue().hashCode();
115: }
116: }
|