1. /*
  2. * @(#)ObjectAdapterIdBase.java 1.6 03/12/19
  3. *
  4. * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package com.sun.corba.se.impl.ior ;
  8. import java.util.Iterator ;
  9. import org.omg.CORBA_2_3.portable.OutputStream ;
  10. import com.sun.corba.se.spi.ior.ObjectAdapterId ;
  11. abstract class ObjectAdapterIdBase implements ObjectAdapterId {
  12. public boolean equals( Object other )
  13. {
  14. if (!(other instanceof ObjectAdapterId))
  15. return false ;
  16. ObjectAdapterId theOther = (ObjectAdapterId)other ;
  17. Iterator iter1 = iterator() ;
  18. Iterator iter2 = theOther.iterator() ;
  19. while (iter1.hasNext() && iter2.hasNext()) {
  20. String str1 = (String)(iter1.next()) ;
  21. String str2 = (String)(iter2.next()) ;
  22. if (!str1.equals( str2 ))
  23. return false ;
  24. }
  25. return iter1.hasNext() == iter2.hasNext() ;
  26. }
  27. public int hashCode()
  28. {
  29. int result = 17 ;
  30. Iterator iter = iterator() ;
  31. while (iter.hasNext()) {
  32. String str = (String)(iter.next()) ;
  33. result = 37*result + str.hashCode() ;
  34. }
  35. return result ;
  36. }
  37. public String toString()
  38. {
  39. StringBuffer buff = new StringBuffer() ;
  40. buff.append( "ObjectAdapterID[" ) ;
  41. Iterator iter = iterator() ;
  42. boolean first = true ;
  43. while (iter.hasNext()) {
  44. String str = (String)(iter.next()) ;
  45. if (first)
  46. first = false ;
  47. else
  48. buff.append( "/" ) ;
  49. buff.append( str ) ;
  50. }
  51. buff.append( "]" ) ;
  52. return buff.toString() ;
  53. }
  54. public void write( OutputStream os )
  55. {
  56. os.write_long( getNumLevels() ) ;
  57. Iterator iter = iterator() ;
  58. while (iter.hasNext()) {
  59. String str = (String)(iter.next()) ;
  60. os.write_string( str ) ;
  61. }
  62. }
  63. }