01: /*
02: * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved
03: *
04: * This file is part of Resin(R) Open Source
05: *
06: * Each copy or derived work must preserve the copyright notice and this
07: * notice unmodified.
08: *
09: * Resin Open Source is free software; you can redistribute it and/or modify
10: * it under the terms of the GNU General Public License as published by
11: * the Free Software Foundation; either version 2 of the License, or
12: * (at your option) any later version.
13: *
14: * Resin Open Source is distributed in the hope that it will be useful,
15: * but WITHOUT ANY WARRANTY; without even the implied warranty of
16: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
17: * of NON-INFRINGEMENT. See the GNU General Public License for more
18: * details.
19: *
20: * You should have received a copy of the GNU General Public License
21: * along with Resin Open Source; if not, write to the
22: * Free Software Foundation, Inc.
23: * 59 Temple Place, Suite 330
24: * Boston, MA 02111-1307 USA
25: *
26: * @author Scott Ferguson
27: */
28:
29: package com.caucho.amber.entity;
30:
31: import com.caucho.amber.type.EntityType;
32:
33: /**
34: * Key to handle the merged identity hash code.
35: */
36: public class EntityKey {
37: private Class _type;
38: private Object _key;
39:
40: public EntityKey() {
41: }
42:
43: public EntityKey(Class type, Object key) {
44: _type = type;
45: _key = key;
46: }
47:
48: public void init(Class type, Object key) {
49: _type = type;
50: _key = key;
51: }
52:
53: /**
54: * Returns the home value.
55: */
56: public Class getType() {
57: return _type;
58: }
59:
60: /**
61: * Returns the key
62: */
63: public Object getKey() {
64: return _key;
65: }
66:
67: /**
68: * Returns the hash.
69: */
70: public int hashCode() {
71: return 65521 * _type.hashCode() + _key.hashCode();
72: }
73:
74: /**
75: * Returns equality.
76: */
77: public boolean equals(Object o) {
78: if (this == o)
79: return true;
80: else if (!(o instanceof EntityKey))
81: return false;
82:
83: EntityKey key = (EntityKey) o;
84:
85: return _type == key._type && _key.equals(key._key);
86: }
87:
88: public String toString() {
89: return "EntityKey[" + _type.getName() + ", " + _key + "]";
90: }
91: }
|