View Javadoc

1   package org.codehaus.xfire.java.mapping;
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          // Test straight equality
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  }