1 package org.codehaus.xfire.type;
2
3 import javax.xml.namespace.QName;
4
5 /***
6 * Holds a class and QName pair for serializer mappings used internally.
7 *
8 * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
9 * @since Feb 22, 2004
10 */
11 public class ClassQNamePair
12 {
13 private Class clazz;
14 private QName qname;
15
16 public ClassQNamePair( Class javaClass, QName qname )
17 {
18 this.clazz = javaClass ;
19 this.qname = qname;
20 }
21
22 /***
23 * @return Returns the clazz.
24 */
25 public Class getJavaClass()
26 {
27 return clazz;
28 }
29
30 /***
31 * @return Returns the qname.
32 */
33 public QName getQName()
34 {
35 return qname;
36 }
37
38 /***
39 * @see java.lang.Object#equals(java.lang.Object)
40 */
41 public boolean equals(Object o)
42 {
43 if (o == null)
44 return false;
45
46 ClassQNamePair p = (ClassQNamePair) o;
47
48
49 if (p.getQName() == this.qname
50 &&
51 p.getJavaClass() == this.clazz)
52 {
53 return true;
54 }
55
56 return ( p.getQName().equals(this.qname)
57 &&
58 p.getJavaClass().equals(this.clazz));
59 }
60
61 public int hashCode()
62 {
63 int hashcode = 0;
64
65 if (getJavaClass() != null)
66 {
67 hashcode ^= getJavaClass().hashCode();
68 }
69
70 if (getQName() != null)
71 {
72 hashcode ^= getQName().hashCode();
73 }
74
75 return hashcode;
76 }
77 }