selectorContext.noJavaUrl=This context must be accessed through a java: URL
selectorContext.methodUsingName=Call to method ''{0}'' with a Name of ''{1}''
selectorContext.methodUsingString=Call to method ''{0}'' with a String of ''{1}''
-namingContext.createSubContextInvalid=Unable to create context with name [{0}] as a sub-context of the context named [{1}]
namingContext.contextExpected=Name is not bound to a Context
namingContext.failResolvingReference=Unexpected exception resolving reference
namingContext.nameNotBound=Name {0} is not bound in this Context
/**
* Creates and binds a new context. Creates a new context with the given
- * name and binds it in this context.
- *
- * @param name The name of the context to create; may not be empty. If the
- * name consists of a single component then the sub-context is
- * created with a prefix of the name of this context. If the
- * name has multiple components then name.prefix(name.size()-1)
- * must be the name of this context.
+ * name and binds it in the target context (that named by all but
+ * terminal atomic component of the name). All intermediate contexts and
+ * the target context must already exist.
*
+ * @param name the name of the context to create; may not be empty
* @return the newly created context
* @exception NameAlreadyBoundException if name is already bound
* @exception InvalidAttributesException if creation of the subcontext
throws NamingException {
checkWritable();
- String contextName = null;
-
- if (name.size() == 1) {
- if (this.name.endsWith("/")) {
- contextName = this.name + name.get(0);
- } else {
- contextName = this.name + "/" + name.get(0);
- }
- } else {
- if (!name.getPrefix(name.size()-1).toString().equals(name)) {
- throw new NamingException(
- sm.getString("namingContext.createSubContextInvalid",
- name, this.name));
- }
- contextName = name.toString();
- }
-
- Context newContext = new NamingContext(env, contextName);
- bind(name.getSuffix(name.size() -1), newContext);
+ Context newContext = new NamingContext(env, this.name);
+ bind(name, newContext);
return newContext;
}