Index: enhanced/classlib/trunk/modules/jndi/src/main/java/javax/naming/NameClassPair.java =================================================================== --- enhanced/classlib/trunk/modules/jndi/src/main/java/javax/naming/NameClassPair.java (revision 387288) +++ enhanced/classlib/trunk/modules/jndi/src/main/java/javax/naming/NameClassPair.java (working copy) @@ -75,6 +75,12 @@ */ private boolean isRel; + /** + * + * @serial + */ + private String fullName; + /* * ------------------------------------------------------------------- * Constructors @@ -102,9 +108,13 @@ * @param relative a relative flag */ public NameClassPair(String name, String className, boolean relative) { + if (name == null) { + throw new IllegalArgumentException("name must not be null"); + } this.name = name; this.className = className; this.isRel = relative; + this.fullName = null; } /* @@ -155,6 +165,9 @@ * @param name a name used in naming service */ public void setName(String name) { + if (name == null) { + throw new IllegalArgumentException("name must not be null"); + } this.name = name; } @@ -167,6 +180,30 @@ this.isRel = relative; } + /** + * Returns the value of the full name field which may be null. + * + * @return the value of the full name field which may be null. + * + * @throws UnsupportedOperationException + */ + public String getNameInNamespace() { + if (fullName == null) { + throw new UnsupportedOperationException( + "full name doesn't apply to this binding"); + } + return fullName; + } + + /** + * Set the full name of this object. The argument can be null. + * + * @param fullName a full name + */ + public void setNameInNamespace(String fullName) { + this.fullName = fullName; + } + /* * ------------------------------------------------------------------- * Methods override parent class Object