1. /*
  2. * @(#)POAIdBase.java 1.4 03/01/23
  3. *
  4. * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. // @(#)POAIdBase.java 1.4 03/01/23
  8. package com.sun.corba.se.internal.ior ;
  9. import java.util.Iterator ;
  10. import org.omg.CORBA_2_3.portable.OutputStream ;
  11. abstract class POAIdBase implements POAId {
  12. public boolean equals( Object other )
  13. {
  14. if (!(other instanceof POAId))
  15. return false ;
  16. POAId theOther = (POAId)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 String toString()
  28. {
  29. StringBuffer buff = new StringBuffer() ;
  30. buff.append( "POAID[" ) ;
  31. Iterator iter = iterator() ;
  32. boolean first = true ;
  33. while (iter.hasNext()) {
  34. String str = (String)(iter.next()) ;
  35. if (first)
  36. first = false ;
  37. else
  38. buff.append( "/" ) ;
  39. buff.append( str ) ;
  40. }
  41. buff.append( "]" ) ;
  42. return buff.toString() ;
  43. }
  44. public void write( OutputStream os )
  45. {
  46. os.write_long( getNumLevels() ) ;
  47. Iterator iter = iterator() ;
  48. while (iter.hasNext()) {
  49. String str = (String)(iter.next()) ;
  50. os.write_string( str ) ;
  51. }
  52. }
  53. }