You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2002/11/05 20:05:19 UTC
cvs commit: jakarta-tomcat-connectors/naming/src/org/apache/naming/core BaseNaming.java
costin 2002/11/05 11:05:19
Modified: naming/src/org/apache/naming/core BaseNaming.java
Log:
Fix the child access - use Enumerations ( of something ).
Changed attribute handling.
The goal is to make it as simple as possible to write contexts
and dir contexts with the minimal ammount of methods.
( more methods could be overriden, of course )
Revision Changes Path
1.3 +44 -34 jakarta-tomcat-connectors/naming/src/org/apache/naming/core/BaseNaming.java
Index: BaseNaming.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/naming/src/org/apache/naming/core/BaseNaming.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- BaseNaming.java 17 Oct 2002 17:32:23 -0000 1.2
+++ BaseNaming.java 5 Nov 2002 19:05:19 -0000 1.3
@@ -240,12 +240,12 @@
// nothing yet.
}
- // -------------------- Abstract methods --------------------
+ // -------------------- Not so Abstract methods --------------------
// This is what a subclass should implement.
// XXX Base resolveLinks() method ?? And then use lookup without resolveLinks flag
- /** The lookup method.
+ /** The lookup method. This is the main method you should implement.
*
* @param Name
* @param resolveLinks. If false, this is a lookupLink call.
@@ -256,9 +256,13 @@
throw new OperationNotSupportedException();
}
- /** This is the main bind operation to support.
+ /** The setter method. Implement it if the context is read/write.
*
- *
+ * @param name
+ * @param obj The object to be bound.
+ * @param attrs Attributes - if this is a dir context, null otherwise
+ * @param rebind What to do if the name is already bound.
+ * XXX can be further simplified - do a lookup and implement it.
*/
public void bind(Name name, Object obj, Attributes attrs, boolean rebind )
throws NamingException
@@ -266,7 +270,7 @@
throw new OperationNotSupportedException();
}
- /** Remove a binding
+ /** Remove a binding. XXX do we need the isContext case ?
*/
public void unbind(Name name, boolean isContext)
throws NamingException
@@ -274,21 +278,26 @@
throw new OperationNotSupportedException();
}
- public int size() throws NamingException
- {
- return 0;
- }
+ /* XXX There are 2 ways to list the childs: array ( size/elementAt ) or
+ iterator/Enumeration. Since the JNDI interface uses iteration -
+ that's what we should use.
+ */
- public Name childNameAt( int i ) throws NamingException
- {
+ /** Return the child elements, if any.
+ *
+ * This is a String or Name or Binding or NameClassPari enumeration -
+ * the Context implementation will wrap it as a NamingEnumeration and
+ * construct the right information.
+ *
+ * XXX name is all we need - all other info can be extracted - with some
+ * penalty. It's easy to do some instanceof tricks to avoid it, if possible,
+ * but the goal is to make it easy to write contexts, and name should be
+ * enough.
+ */
+ public Enumeration getChildren() throws NamingException {
return null;
}
- public Object childAt( int i ) throws NamingException
- {
- return null;
- }
-
public DirContext createSubcontext(Name name, Attributes attrs)
throws NamingException
{
@@ -303,14 +312,31 @@
Object value = lookup(oldName, false);
bind(newName, value, null, false);
unbind(oldName, true);
+
}
- public Attributes getAttributes(Name name, String[] attrIds)
+ /** Implement for directories
+ *
+ */
+ public Object getAttribute( Name name, String attName )
throws NamingException
{
throw new OperationNotSupportedException();
}
-
+
+ public void setAttribute( Name name, String attName, Object value )
+ throws NamingException
+ {
+ throw new OperationNotSupportedException();
+ }
+
+ public String[] getAttributeNames(Name name )
+ throws NamingException
+ {
+ throw new OperationNotSupportedException();
+ }
+
+
// -------------------- Utils --------------------
@@ -344,22 +370,6 @@
- /**
- * Closes this context. This method releases this context's resources
- * immediately, instead of waiting for them to be released automatically
- * by the garbage collector.
- * This method is idempotent: invoking it on a context that has already
- * been closed has no effect. Invoking any other method on a closed
- * context is not allowed, and results in undefined behaviour.
- *
- * @exception NamingException if a naming exception is encountered
- */
- public void close()
- throws NamingException
- {
- // We don't own the env., but the clone
- env.clear();
- }
//-------------------- Helpers --------------------
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>