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>