juergen 01/09/10 02:21:10
Modified: src/wrappers/jndi SlideDirContext.java
Log:
preparation to get request a URI for read or write. The default in SlideToken may be
overwritten. Please note: SlideToken is now an interface, the implementation is
loacted in SlideTokenImpl.
Revision Changes Path
1.5 +162 -162 jakarta-slide/src/wrappers/jndi/SlideDirContext.java
Index: SlideDirContext.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/wrappers/jndi/SlideDirContext.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SlideDirContext.java 2001/09/08 19:52:03 1.4
+++ SlideDirContext.java 2001/09/10 09:21:10 1.5
@@ -1,13 +1,13 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/wrappers/jndi/SlideDirContext.java,v 1.4
2001/09/08 19:52:03 remm Exp $
- * $Revision: 1.4 $
- * $Date: 2001/09/08 19:52:03 $
+ * $Header: /home/cvs/jakarta-slide/src/wrappers/jndi/SlideDirContext.java,v 1.5
2001/09/10 09:21:10 juergen Exp $
+ * $Revision: 1.5 $
+ * $Date: 2001/09/10 09:21:10 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999 The Apache Software Foundation. All rights
+ * Copyright (c) 1999 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -15,7 +15,7 @@
* are met:
*
* 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
+ * notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
@@ -23,15 +23,15 @@
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
- * any, must include the following acknowlegement:
- * "This product includes software developed by the
+ * any, must include the following acknowlegement:
+ * "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
- * from this software without prior written permission. For written
+ * from this software without prior written permission. For written
* permission, please contact [EMAIL PROTECTED]
*
* 5. Products derived from this software may not be called "Apache"
@@ -59,7 +59,7 @@
*
* [Additional notices, if required by prior licensing conditions]
*
- */
+ */
package wrappers.jndi;
@@ -107,7 +107,7 @@
* Slide Directory Context implementation helper class.
*
* @author Remy Maucherat
- * @version $Revision: 1.4 $ $Date: 2001/09/08 19:52:03 $
+ * @version $Revision: 1.5 $ $Date: 2001/09/10 09:21:10 $
*/
public class SlideDirContext extends BaseDirContext {
@@ -144,7 +144,7 @@
/**
* Builds a file directory context using the given environment.
*/
- protected SlideDirContext(Hashtable env, String namespaceName,
+ protected SlideDirContext(Hashtable env, String namespaceName,
NamespaceAccessToken token, String vPath) {
super(env);
@@ -234,7 +234,7 @@
credToken = new CredentialsToken(principal);
}
- this.slideToken = new SlideToken(credToken);
+ this.slideToken = new SlideTokenImpl(credToken);
this.slideToken.setEnforceLockTokens(false);
this.structure = token.getStructureHelper();
@@ -263,7 +263,7 @@
/**
* Retrieves the named object.
- *
+ *
* @param name the name of the object to look up
* @return the object bound to name
* @exception NamingException if a naming exception is encountered
@@ -283,7 +283,7 @@
content.retrieve(slideToken, revisionDescriptors);
if (!isCollection(revisionDescriptor)) {
- return new SlideResource(revisionDescriptors,
+ return new SlideResource(revisionDescriptors,
revisionDescriptor);
}
@@ -301,16 +301,16 @@
/**
- * Unbinds the named object. Removes the terminal atomic name in name
- * from the target context--that named by all but the terminal atomic
+ * Unbinds the named object. Removes the terminal atomic name in name
+ * from the target context--that named by all but the terminal atomic
* part of name.
* <p>
- * This method is idempotent. It succeeds even if the terminal atomic
- * name is not bound in the target context, but throws
- * NameNotFoundException if any of the intermediate contexts do not exist.
- *
+ * This method is idempotent. It succeeds even if the terminal atomic
+ * name is not bound in the target context, but throws
+ * NameNotFoundException if any of the intermediate contexts do not exist.
+ *
* @param name the name to bind; may not be empty
- * @exception NameNotFoundException if an intermediate context does not
+ * @exception NameNotFoundException if an intermediate context does not
* exist
* @exception NamingException if a naming exception is encountered
*/
@@ -324,11 +324,11 @@
/**
- * Binds a new name to the object bound to an old name, and unbinds the
- * old name. Both names are relative to this context. Any attributes
- * associated with the old name become associated with the new name.
+ * Binds a new name to the object bound to an old name, and unbinds the
+ * old name. Both names are relative to this context. Any attributes
+ * associated with the old name become associated with the new name.
* Intermediate contexts of the old name are not changed.
- *
+ *
* @param oldName the name of the existing binding; may not be empty
* @param newName the name of the new binding; may not be empty
* @exception NameAlreadyBoundException if newName is already bound
@@ -344,15 +344,15 @@
/**
- * Enumerates the names bound in the named context, along with the class
- * names of objects bound to them. The contents of any subcontexts are
+ * Enumerates the names bound in the named context, along with the class
+ * names of objects bound to them. The contents of any subcontexts are
* not included.
* <p>
- * If a binding is added to or removed from this context, its effect on
+ * If a binding is added to or removed from this context, its effect on
* an enumeration previously returned is undefined.
- *
+ *
* @param name the name of the context to list
- * @return an enumeration of the names and class names of the bindings in
+ * @return an enumeration of the names and class names of the bindings in
* this context. Each element of the enumeration is of type NameClassPair.
* @exception NamingException if a naming exception is encountered
*/
@@ -376,15 +376,15 @@
/**
- * Enumerates the names bound in the named context, along with the
- * objects bound to them. The contents of any subcontexts are not
+ * Enumerates the names bound in the named context, along with the
+ * objects bound to them. The contents of any subcontexts are not
* included.
* <p>
- * If a binding is added to or removed from this context, its effect on
+ * If a binding is added to or removed from this context, its effect on
* an enumeration previously returned is undefined.
- *
+ *
* @param name the name of the context to list
- * @return an enumeration of the bindings in this context.
+ * @return an enumeration of the bindings in this context.
* Each element of the enumeration is of type Binding.
* @exception NamingException if a naming exception is encountered
*/
@@ -408,28 +408,28 @@
/**
- * Destroys the named context and removes it from the namespace. Any
- * attributes associated with the name are also removed. Intermediate
+ * Destroys the named context and removes it from the namespace. Any
+ * attributes associated with the name are also removed. Intermediate
* contexts are not destroyed.
* <p>
- * This method is idempotent. It succeeds even if the terminal atomic
- * name is not bound in the target context, but throws
- * NameNotFoundException if any of the intermediate contexts do not exist.
- *
- * In a federated naming system, a context from one naming system may be
- * bound to a name in another. One can subsequently look up and perform
- * operations on the foreign context using a composite name. However, an
- * attempt destroy the context using this composite name will fail with
- * NotContextException, because the foreign context is not a "subcontext"
- * of the context in which it is bound. Instead, use unbind() to remove
- * the binding of the foreign context. Destroying the foreign context
- * requires that the destroySubcontext() be performed on a context from
+ * This method is idempotent. It succeeds even if the terminal atomic
+ * name is not bound in the target context, but throws
+ * NameNotFoundException if any of the intermediate contexts do not exist.
+ *
+ * In a federated naming system, a context from one naming system may be
+ * bound to a name in another. One can subsequently look up and perform
+ * operations on the foreign context using a composite name. However, an
+ * attempt destroy the context using this composite name will fail with
+ * NotContextException, because the foreign context is not a "subcontext"
+ * of the context in which it is bound. Instead, use unbind() to remove
+ * the binding of the foreign context. Destroying the foreign context
+ * requires that the destroySubcontext() be performed on a context from
* the foreign context's "native" naming system.
- *
+ *
* @param name the name of the context to be destroyed; may not be empty
- * @exception NameNotFoundException if an intermediate context does not
+ * @exception NameNotFoundException if an intermediate context does not
* exist
- * @exception NotContextException if the name is bound but does not name
+ * @exception NotContextException if the name is bound but does not name
* a context, or does not name a context of the appropriate type
*/
public void destroySubcontext(String name)
@@ -439,12 +439,12 @@
/**
- * Retrieves the named object, following links except for the terminal
- * atomic component of the name. If the object bound to name is not a
+ * Retrieves the named object, following links except for the terminal
+ * atomic component of the name. If the object bound to name is not a
* link, returns the object itself.
- *
+ *
* @param name the name of the object to look up
- * @return the object bound to name, not following the terminal link
+ * @return the object bound to name, not following the terminal link
* (if any).
* @exception NamingException if a naming exception is encountered
*/
@@ -458,17 +458,17 @@
/**
* Retrieves the full name of this context within its own namespace.
* <p>
- * Many naming services have a notion of a "full name" for objects in
- * their respective namespaces. For example, an LDAP entry has a
- * distinguished name, and a DNS record has a fully qualified name. This
- * method allows the client application to retrieve this name. The string
- * returned by this method is not a JNDI composite name and should not be
- * passed directly to context methods. In naming systems for which the
- * notion of full name does not make sense,
+ * Many naming services have a notion of a "full name" for objects in
+ * their respective namespaces. For example, an LDAP entry has a
+ * distinguished name, and a DNS record has a fully qualified name. This
+ * method allows the client application to retrieve this name. The string
+ * returned by this method is not a JNDI composite name and should not be
+ * passed directly to context methods. In naming systems for which the
+ * notion of full name does not make sense,
* OperationNotSupportedException is thrown.
- *
+ *
* @return this context's name in its own namespace; never null
- * @exception OperationNotSupportedException if the naming system does
+ * @exception OperationNotSupportedException if the naming system does
* not have the notion of a full name
* @exception NamingException if a naming exception is encountered
*/
@@ -482,14 +482,14 @@
/**
- * Retrieves selected attributes associated with a named object.
- * See the class description regarding attribute models, attribute type
+ * Retrieves selected attributes associated with a named object.
+ * See the class description regarding attribute models, attribute type
* names, and operational attributes.
- *
+ *
* @return the requested attributes; never null
* @param name the name of the object from which to retrieve attributes
- * @param attrIds the identifiers of the attributes to retrieve. null
- * indicates that all attributes should be retrieved; an empty array
+ * @param attrIds the identifiers of the attributes to retrieve. null
+ * indicates that all attributes should be retrieved; an empty array
* indicates that none should be retrieved
* @exception NamingException if a naming exception is encountered
*/
@@ -505,7 +505,7 @@
if (revisionDescriptors.hasRevisions()) {
// Retrieve latest revision descriptor
- revisionDescriptor =
+ revisionDescriptor =
content.retrieve(slideToken, revisionDescriptors);
} else {
revisionDescriptor = new NodeRevisionDescriptor();
@@ -530,14 +530,14 @@
/**
- * Modifies the attributes associated with a named object. The order of
- * the modifications is not specified. Where possible, the modifications
+ * Modifies the attributes associated with a named object. The order of
+ * the modifications is not specified. Where possible, the modifications
* are performed atomically.
- *
+ *
* @param name the name of the object whose attributes will be updated
- * @param mod_op the modification operation, one of: ADD_ATTRIBUTE,
+ * @param mod_op the modification operation, one of: ADD_ATTRIBUTE,
* REPLACE_ATTRIBUTE, REMOVE_ATTRIBUTE
- * @param attrs the attributes to be used for the modification; may not
+ * @param attrs the attributes to be used for the modification; may not
* be null
* @exception AttributeModificationException if the modification cannot be
* completed successfully
@@ -553,14 +553,14 @@
/**
- * Modifies the attributes associated with a named object using an an
- * ordered list of modifications. The modifications are performed in the
- * order specified. Each modification specifies a modification operation
- * code and an attribute on which to operate. Where possible, the
+ * Modifies the attributes associated with a named object using an an
+ * ordered list of modifications. The modifications are performed in the
+ * order specified. Each modification specifies a modification operation
+ * code and an attribute on which to operate. Where possible, the
* modifications are performed atomically.
- *
+ *
* @param name the name of the object whose attributes will be updated
- * @param mods an ordered sequence of modifications to be performed; may
+ * @param mods an ordered sequence of modifications to be performed; may
* not be null
* @exception AttributeModificationException if the modification cannot be
* completed successfully
@@ -576,17 +576,17 @@
/**
- * Binds a name to an object, along with associated attributes. If attrs
- * is null, the resulting binding will have the attributes associated
- * with obj if obj is a DirContext, and no attributes otherwise. If attrs
- * is non-null, the resulting binding will have attrs as its attributes;
+ * Binds a name to an object, along with associated attributes. If attrs
+ * is null, the resulting binding will have the attributes associated
+ * with obj if obj is a DirContext, and no attributes otherwise. If attrs
+ * is non-null, the resulting binding will have attrs as its attributes;
* any attributes associated with obj are ignored.
- *
+ *
* @param name the name to bind; may not be empty
* @param obj the object to bind; possibly null
* @param attrs the attributes to associate with the binding
* @exception NameAlreadyBoundException if name is already bound
- * @exception InvalidAttributesException if some "mandatory" attributes
+ * @exception InvalidAttributesException if some "mandatory" attributes
* of the binding are not supplied
* @exception NamingException if a naming exception is encountered
*/
@@ -600,20 +600,20 @@
/**
- * Binds a name to an object, along with associated attributes,
- * overwriting any existing binding. If attrs is null and obj is a
- * DirContext, the attributes from obj are used. If attrs is null and obj
+ * Binds a name to an object, along with associated attributes,
+ * overwriting any existing binding. If attrs is null and obj is a
+ * DirContext, the attributes from obj are used. If attrs is null and obj
* is not a DirContext, any existing attributes associated with the object
- * already bound in the directory remain unchanged. If attrs is non-null,
- * any existing attributes associated with the object already bound in
- * the directory are removed and attrs is associated with the named
- * object. If obj is a DirContext and attrs is non-null, the attributes
+ * already bound in the directory remain unchanged. If attrs is non-null,
+ * any existing attributes associated with the object already bound in
+ * the directory are removed and attrs is associated with the named
+ * object. If obj is a DirContext and attrs is non-null, the attributes
* of obj are ignored.
- *
+ *
* @param name the name to bind; may not be empty
* @param obj the object to bind; possibly null
* @param attrs the attributes to associate with the binding
- * @exception InvalidAttributesException if some "mandatory" attributes
+ * @exception InvalidAttributesException if some "mandatory" attributes
* of the binding are not supplied
* @exception NamingException if a naming exception is encountered
*/
@@ -627,19 +627,19 @@
/**
- * Creates and binds a new context, along with associated attributes.
- * This method creates a new subcontext with the given name, binds it in
- * the target context (that named by all but terminal atomic component of
- * the name), and associates the supplied attributes with the newly
- * created object. All intermediate and target contexts must already
- * exist. If attrs is null, this method is equivalent to
+ * Creates and binds a new context, along with associated attributes.
+ * This method creates a new subcontext with the given name, binds it in
+ * the target context (that named by all but terminal atomic component of
+ * the name), and associates the supplied attributes with the newly
+ * created object. All intermediate and target contexts must already
+ * exist. If attrs is null, this method is equivalent to
* Context.createSubcontext().
- *
+ *
* @param name the name of the context to create; may not be empty
* @param attrs the attributes to associate with the newly created context
* @return the newly created context
* @exception NameAlreadyBoundException if the name is already bound
- * @exception InvalidAttributesException if attrs does not contain all
+ * @exception InvalidAttributesException if attrs does not contain all
* the mandatory attributes required for creation
* @exception NamingException if a naming exception is encountered
*/
@@ -653,13 +653,13 @@
/**
- * Retrieves the schema associated with the named object. The schema
- * describes rules regarding the structure of the namespace and the
- * attributes stored within it. The schema specifies what types of
- * objects can be added to the directory and where they can be added;
- * what mandatory and optional attributes an object can have. The range
+ * Retrieves the schema associated with the named object. The schema
+ * describes rules regarding the structure of the namespace and the
+ * attributes stored within it. The schema specifies what types of
+ * objects can be added to the directory and where they can be added;
+ * what mandatory and optional attributes an object can have. The range
* of support for schemas is directory-specific.
- *
+ *
* @param name the name of the object whose schema is to be retrieved
* @return the schema associated with the context; never null
* @exception OperationNotSupportedException if schema not supported
@@ -672,12 +672,12 @@
/**
- * Retrieves a context containing the schema objects of the named
+ * Retrieves a context containing the schema objects of the named
* object's class definitions.
- *
- * @param name the name of the object whose object class definition is to
+ *
+ * @param name the name of the object whose object class definition is to
* be retrieved
- * @return the DirContext containing the named object's class
+ * @return the DirContext containing the named object's class
* definitions; never null
* @exception OperationNotSupportedException if schema not supported
* @exception NamingException if a naming exception is encountered
@@ -689,19 +689,19 @@
/**
- * Searches in a single context for objects that contain a specified set
- * of attributes, and retrieves selected attributes. The search is
+ * Searches in a single context for objects that contain a specified set
+ * of attributes, and retrieves selected attributes. The search is
* performed using the default SearchControls settings.
- *
+ *
* @param name the name of the context to search
- * @param matchingAttributes the attributes to search for. If empty or
+ * @param matchingAttributes the attributes to search for. If empty or
* null, all objects in the target context are returned.
- * @param attributesToReturn the attributes to return. null indicates
- * that all attributes are to be returned; an empty array indicates that
+ * @param attributesToReturn the attributes to return. null indicates
+ * that all attributes are to be returned; an empty array indicates that
* none are to be returned.
- * @return a non-null enumeration of SearchResult objects. Each
- * SearchResult contains the attributes identified by attributesToReturn
- * and the name of the corresponding object, named relative to the
+ * @return a non-null enumeration of SearchResult objects. Each
+ * SearchResult contains the attributes identified by attributesToReturn
+ * and the name of the corresponding object, named relative to the
* context named by name.
* @exception NamingException if a naming exception is encountered
*/
@@ -713,17 +713,17 @@
/**
- * Searches in a single context for objects that contain a specified set
- * of attributes. This method returns all the attributes of such objects.
- * It is equivalent to supplying null as the atributesToReturn parameter
+ * Searches in a single context for objects that contain a specified set
+ * of attributes. This method returns all the attributes of such objects.
+ * It is equivalent to supplying null as the atributesToReturn parameter
* to the method search(Name, Attributes, String[]).
- *
+ *
* @param name the name of the context to search
- * @param matchingAttributes the attributes to search for. If empty or
+ * @param matchingAttributes the attributes to search for. If empty or
* null, all objects in the target context are returned.
- * @return a non-null enumeration of SearchResult objects. Each
- * SearchResult contains the attributes identified by attributesToReturn
- * and the name of the corresponding object, named relative to the
+ * @return a non-null enumeration of SearchResult objects. Each
+ * SearchResult contains the attributes identified by attributesToReturn
+ * and the name of the corresponding object, named relative to the
* context named by name.
* @exception NamingException if a naming exception is encountered
*/
@@ -734,25 +734,25 @@
/**
- * Searches in the named context or object for entries that satisfy the
- * given search filter. Performs the search as specified by the search
+ * Searches in the named context or object for entries that satisfy the
+ * given search filter. Performs the search as specified by the search
* controls.
- *
+ *
* @param name the name of the context or object to search
- * @param filter the filter expression to use for the search; may not be
+ * @param filter the filter expression to use for the search; may not be
* null
- * @param cons the search controls that control the search. If null,
- * the default search controls are used (equivalent to
+ * @param cons the search controls that control the search. If null,
+ * the default search controls are used (equivalent to
* (new SearchControls())).
- * @return an enumeration of SearchResults of the objects that satisfy
+ * @return an enumeration of SearchResults of the objects that satisfy
* the filter; never null
- * @exception InvalidSearchFilterException if the search filter specified
+ * @exception InvalidSearchFilterException if the search filter specified
* is not supported or understood by the underlying directory
- * @exception InvalidSearchControlsException if the search controls
+ * @exception InvalidSearchControlsException if the search controls
* contain invalid settings
* @exception NamingException if a naming exception is encountered
*/
- public NamingEnumeration search(String name, String filter,
+ public NamingEnumeration search(String name, String filter,
SearchControls cons)
throws NamingException {
return null;
@@ -760,30 +760,30 @@
/**
- * Searches in the named context or object for entries that satisfy the
- * given search filter. Performs the search as specified by the search
+ * Searches in the named context or object for entries that satisfy the
+ * given search filter. Performs the search as specified by the search
* controls.
- *
+ *
* @param name the name of the context or object to search
- * @param filterExpr the filter expression to use for the search.
- * The expression may contain variables of the form "{i}" where i is a
+ * @param filterExpr the filter expression to use for the search.
+ * The expression may contain variables of the form "{i}" where i is a
* nonnegative integer. May not be null.
- * @param filterArgs the array of arguments to substitute for the
- * variables in filterExpr. The value of filterArgs[i] will replace each
+ * @param filterArgs the array of arguments to substitute for the
+ * variables in filterExpr. The value of filterArgs[i] will replace each
* occurrence of "{i}". If null, equivalent to an empty array.
- * @param cons the search controls that control the search. If null, the
+ * @param cons the search controls that control the search. If null, the
* default search controls are used (equivalent to (new SearchControls())).
- * @return an enumeration of SearchResults of the objects that satisy the
+ * @return an enumeration of SearchResults of the objects that satisy the
* filter; never null
- * @exception ArrayIndexOutOfBoundsException if filterExpr contains {i}
+ * @exception ArrayIndexOutOfBoundsException if filterExpr contains {i}
* expressions where i is outside the bounds of the array filterArgs
- * @exception InvalidSearchControlsException if cons contains invalid
+ * @exception InvalidSearchControlsException if cons contains invalid
* settings
- * @exception InvalidSearchFilterException if filterExpr with filterArgs
+ * @exception InvalidSearchFilterException if filterExpr with filterArgs
* represents an invalid search filter
* @exception NamingException if a naming exception is encountered
*/
- public NamingEnumeration search(String name, String filterExpr,
+ public NamingEnumeration search(String name, String filterExpr,
Object[] filterArgs, SearchControls cons)
throws NamingException {
return null;
@@ -843,7 +843,7 @@
/**
* List the resources which are members of a collection.
- *
+ *
* @param file Collection
* @return Vector containg NamingEntry objects
*/
@@ -878,14 +878,14 @@
content.retrieve(slideToken, revisionDescriptors);
if (!isCollection(revisionDescriptor)) {
- object = new SlideResource(revisionDescriptors,
+ object = new SlideResource(revisionDescriptors,
revisionDescriptor);
}
}
if (object == null) {
- object = new SlideDirContext(env, getNamespaceName(),
+ object = new SlideDirContext(env, getNamespaceName(),
token, childName);
}
@@ -893,7 +893,7 @@
}
if (object != null) {
- entry = new NamingEntry(childObjectName, object,
+ entry = new NamingEntry(childObjectName, object,
NamingEntry.ENTRY);
entries.addElement(entry);
}
@@ -918,7 +918,7 @@
// -------------------------------------------------------- Constructor
- public SlideResource(NodeRevisionDescriptors rds,
+ public SlideResource(NodeRevisionDescriptors rds,
NodeRevisionDescriptor rd) {
this.rds = rds;
this.rd = rd;
@@ -937,14 +937,14 @@
/**
* Content accessor.
- *
+ *
* @return InputStream
*/
public InputStream streamContent()
throws IOException {
if (binaryContent == null) {
try {
- NodeRevisionContent rc =
+ NodeRevisionContent rc =
content.retrieve(slideToken, rds, rd);
inputStream = rc.streamContent();
} catch (SlideException e) {