1. /*
  2. * @(#)TaggedProfile.java 1.10 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.spi.ior;
  8. import com.sun.corba.se.spi.orb.ORB ;
  9. /** TaggedProfile represents a tagged profile in an IOR.
  10. * A profile contains all of the information necessary for an invocation.
  11. * It contains one or more endpoints that may be used for an invocation.
  12. * A TaggedProfile conceptually has three parts: A TaggedProfileTemplate,
  13. * an ObjectKeyTemplate, and an ObjectId.
  14. */
  15. public interface TaggedProfile extends Identifiable, MakeImmutable
  16. {
  17. TaggedProfileTemplate getTaggedProfileTemplate() ;
  18. ObjectId getObjectId() ;
  19. ObjectKeyTemplate getObjectKeyTemplate() ;
  20. ObjectKey getObjectKey() ;
  21. /** Return true is prof is equivalent to this TaggedProfile.
  22. * This means that this and prof are indistinguishable for
  23. * the purposes of remote invocation. Typically this means that
  24. * the profile data is identical and both profiles contain exactly
  25. * the same components (if components are applicable).
  26. * isEquivalent( prof ) should imply that getObjectId().equals(
  27. * prof.getObjectId() ) is true, and so is
  28. * getObjectKeyTemplate().equals( prof.getObjectKeyTemplate() ).
  29. */
  30. boolean isEquivalent( TaggedProfile prof ) ;
  31. /** Return the TaggedProfile as a CDR encapsulation in the standard
  32. * format. This is required for Portable interceptors.
  33. */
  34. org.omg.IOP.TaggedProfile getIOPProfile();
  35. /** Return true if this TaggedProfile was created in orb.
  36. * Caches the result.
  37. */
  38. boolean isLocal() ;
  39. }