View Javadoc
1   /*
2    * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.  Oracle designates this
8    * particular file as subject to the "Classpath" exception as provided
9    * by Oracle in the LICENSE file that accompanied this code.
10   *
11   * This code is distributed in the hope that it will be useful, but WITHOUT
12   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14   * version 2 for more details (a copy is included in the LICENSE file that
15   * accompanied this code).
16   *
17   * You should have received a copy of the GNU General Public License version
18   * 2 along with this work; if not, write to the Free Software Foundation,
19   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20   *
21   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22   * or visit www.oracle.com if you need additional information or have any
23   * questions.
24   */
25  
26  package com.sun.corba.se.impl.ior ;
27  
28  import java.util.Iterator ;
29  
30  import org.omg.CORBA_2_3.portable.OutputStream ;
31  
32  import com.sun.corba.se.spi.ior.ObjectAdapterId ;
33  
34  abstract class ObjectAdapterIdBase implements ObjectAdapterId {
35      public boolean equals( Object other )
36      {
37          if (!(other instanceof ObjectAdapterId))
38              return false ;
39  
40          ObjectAdapterId theOther = (ObjectAdapterId)other ;
41  
42          Iterator iter1 = iterator() ;
43          Iterator iter2 = theOther.iterator() ;
44  
45          while (iter1.hasNext() && iter2.hasNext()) {
46              String str1 = (String)(iter1.next()) ;
47              String str2 = (String)(iter2.next()) ;
48  
49              if (!str1.equals( str2 ))
50                  return false ;
51          }
52  
53          return iter1.hasNext() == iter2.hasNext() ;
54      }
55  
56      public int hashCode()
57      {
58          int result = 17 ;
59          Iterator iter = iterator() ;
60          while (iter.hasNext()) {
61              String str = (String)(iter.next()) ;
62              result = 37*result + str.hashCode() ;
63          }
64          return result ;
65      }
66  
67      public String toString()
68      {
69          StringBuffer buff = new StringBuffer() ;
70          buff.append( "ObjectAdapterID[" ) ;
71          Iterator iter = iterator() ;
72          boolean first = true ;
73          while (iter.hasNext()) {
74              String str = (String)(iter.next()) ;
75  
76              if (first)
77                  first = false ;
78              else
79                  buff.append( "/" ) ;
80  
81              buff.append( str ) ;
82          }
83  
84          buff.append( "]" ) ;
85  
86          return buff.toString() ;
87      }
88  
89      public void write( OutputStream os )
90      {
91          os.write_long( getNumLevels() ) ;
92          Iterator iter = iterator() ;
93          while (iter.hasNext()) {
94              String str = (String)(iter.next()) ;
95              os.write_string( str ) ;
96          }
97      }
98  }