You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2003/12/14 20:33:13 UTC

svn commit: rev 1421 - incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema

Author: akarasulu
Date: Sun Dec 14 11:33:12 2003
New Revision: 1421

Added:
   incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/NameForm.java
Removed:
   incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/NameForms.java
Modified:
   incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/AttributeType.java
   incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ContentRule.java
   incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/DescriptionUtils.java
   incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/MatchingRule.java
   incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/Normalizer.java
   incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ObjectClass.java
   incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ObjectClassTypeEnum.java
   incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/StructureRule.java
   incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/Syntax.java
   incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/SyntaxChecker.java
   incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/UsageEnum.java
Log:
further refinement and documentation

Modified: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/AttributeType.java
==============================================================================
--- incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/AttributeType.java	(original)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/AttributeType.java	Sun Dec 14 11:33:12 2003
@@ -50,127 +50,122 @@
 package org.apache.eve.schema ;
 
 
-import java.util.List ;
-
-
 /**
- * AttributeType definition interface.  The attributes held in a directory, 
- * must belong to an entry.  These attributes have representations for 
- * assigning encoding rules (syntax), and thus associated rules for comparison 
- * and matching.  The schema services provide for the resolution of a value to 
- * it's normalization methods, comparison methods and encoding rules through 
- * the attributeType specification.
+ * An attributeType specification.  AttributeType specifications describe the
+ * nature of attributes within the directory.  The attributeType specification's
+ * properties are accessible through this interface.
  * 
  * @see <a href="http://www.faqs.org/rfcs/rfc2252.html">RFC 2252 Section 4.2</a>
+ * @see DescriptionUtils#getDescription(AttributeType)
  * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
  * @author $LastChangedBy$
  * @version $LastChangedRevision$
  */
 public interface AttributeType
 {
-	/**
-	 * Gets the object identifier for this AttributeType.
-	 * 
-	 * @return the object identifier for this AttributeType
-	 */
-	String getOid() ;
+    /**
+     * Gets the object identifier for this AttributeType.
+     * 
+     * @return the object identifier for this AttributeType
+     */
+    String getOid() ;
     
-	/**
-	 * Gets the first name in the list of names for this AttributeTypeImpl.
-	 *
-	 * @return the first name in the list of names
-	 */
-	String getName() ;
+    /**
+     * Gets the first name in the list of names for this AttributeTypeImpl.
+     *
+     * @return the first name in the list of names
+     */
+    String getName() ;
     
-	/**
-	 * Gets all the names for this AttributeType.
-	 *
-	 * @return a Collection of String names for this AttributeType
-	 */
-	List getAllNames() ;
-
-	/**
-	 * Gets a description for this AttributeType.
-	 *
-	 * @return the verbal description
-	 */
-	String getDescription() ;
-
-	/**
-	 * Gets whether or not this AttributeType is single-valued.
-	 *
-	 * @return true if only one value can exist for this AttributeType, false
-	 *      otherwise
-	 */
-	boolean isSingleValue() ;
-
-	/**
-	 * Gets whether or not this AttributeType can be modified by a user.
-	 *
-	 * @return true if users can modify it, false if only the directory can.
-	 */
-	boolean isCanUserModify() ;
-
-	/**
-	 * Gets whether or not this AttributeType is a collective attribute.
-	 * 
-	 * @return true if the attribute is collective, false otherwise
-	 */
-	boolean isCollective() ;
+    /**
+     * Gets all the names for this AttributeType.
+     *
+     * @return String names for this AttributeType
+     */
+    String[] getAllNames() ;
+
+    /**
+     * Gets a description for this AttributeType.
+     *
+     * @return the verbal description
+     */
+    String getDescription() ;
+
+    /**
+     * Gets whether or not this AttributeType is single-valued.
+     *
+     * @return true if only one value can exist for this AttributeType, false
+     *      otherwise
+     */
+    boolean isSingleValue() ;
+
+    /**
+     * Gets whether or not this AttributeType can be modified by a user.
+     *
+     * @return true if users can modify it, false if only the directory can.
+     */
+    boolean isCanUserModify() ;
+
+    /**
+     * Gets whether or not this AttributeType is a collective attribute.
+     * 
+     * @return true if the attribute is collective, false otherwise
+     */
+    boolean isCollective() ;
     
-	/**
-	 * Gets whether or not this AttributeType is obsolete.
-	 *
-	 * @return true if obsolete, false if not.
-	 */
-	boolean isObsolete() ;
-
-	/**
-	 * Determines the usage for this AttributeType.
-	 *
-	 * @return a type safe UsageEnum
-	 */
-	UsageEnum getUsage() ;
-
-	/**
-	 * Gets the name of the superior class for this AttributeType.
-	 *
-	 * @return the super class for this AttributeType 
-	 */
-	AttributeType getSuperior() ;
-
-	/**
-	 * The Syntax for this AttributeType's values.
-	 *
-	 * @return the value syntax
-	 */
-	Syntax getSyntax() ;
-
-	/**
-	 * Gets a length limit for this AttributeType.
-	 * 
-	 * @return the length of the attribute
-	 */
-	int getLength() ;
-
-	/**
-	 * Gets the MatchingRule for this AttributeType used for equality matching.
-	 *
-	 * @return the equality matching rule
-	 */
-	MatchingRule getEquality() ;
-
-	/**
-	 * Gets the MatchingRule for this AttributeType used for ordering.
-	 *
-	 * @return the ordering matching rule
-	 */
-	MatchingRule getOrdering() ;
-
-	/**
-	 * Gets the MatchingRule for this AttributeType used for substring matching.
-	 *
-	 * @return the substring matching rule
-	 */
-	MatchingRule getSubstr() ;
+    /**
+     * Gets whether or not this AttributeType is obsolete.
+     *
+     * @return true if obsolete, false if not.
+     */
+    boolean isObsolete() ;
+
+    /**
+     * Determines the usage for this AttributeType.
+     *
+     * @return a type safe UsageEnum
+     */
+    UsageEnum getUsage() ;
+
+    /**
+     * Gets the name of the superior class for this AttributeType.
+     *
+     * @return the super class for this AttributeType 
+     */
+    AttributeType getSuperior() ;
+
+    /**
+     * The Syntax for this AttributeType's values.
+     *
+     * @return the value syntax
+     */
+    Syntax getSyntax() ;
+
+    /**
+     * Gets a length limit for this AttributeType.
+     * 
+     * @return the length of the attribute
+     */
+    int getLength() ;
+
+    /**
+     * Gets the MatchingRule for this AttributeType used for equality matching.
+     *
+     * @return the equality matching rule
+     */
+    MatchingRule getEquality() ;
+
+    /**
+     * Gets the MatchingRule for this AttributeType used for ordering.
+     *
+     * @return the ordering matching rule
+     */
+    MatchingRule getOrdering() ;
+
+    /**
+     * Gets the MatchingRule for this AttributeType used for substring matching.
+     *
+     * @return the substring matching rule
+     */
+    MatchingRule getSubstr() ;
 }

Modified: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ContentRule.java
==============================================================================
--- incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ContentRule.java	(original)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ContentRule.java	Sun Dec 14 11:33:12 2003
@@ -51,13 +51,85 @@
 
 
 /**
- * An LDAP and X.500 DIT ContentRule definition interface.
+ * A DIT ContentRule specification.  DIT Content Rules identify the content of 
+ * entries of a particular structural objectClass.  They specify the AUXILLARY 
+ * objectClasses and additional attribute types permitted to appear, or excluded
+ * from appearing in entries of the indicated STRUCTURAL objectClass. 
  *
+ * @see <a href="http://www.faqs.org/rfcs/rfc2252.html">RFC 2252 Section 5.4.3
+ * </a>
+ * @see DescriptionUtils#getDescription(ContentRule)
  * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
  * @author $LastChangedBy$
  * @version $LastChangedRevision$
  */
 public interface ContentRule
 {
+    /**
+     * Gets a description of this ContentRule.
+     *
+     * @return a description
+     */
+    String getDescription() ;
 
+    /**
+     * Gets a short descriptive name for the ContentRule.
+     *
+     * @return a short name.
+     */
+    String getName() ;
+
+    /**
+     * Gets the oid for this ContentRule.
+     *
+     * @return the object identifier
+     */
+    String getOid() ;
+
+    /**
+     * Gets whether or not this ContentRule is obsolete.
+     *
+     * @return true if obsolete, false if not.
+     */
+    boolean isObsolete() ;
+
+    /**
+     * Gets the STRUCTURAL ObjectClass this ContentRule specifies attributes 
+     * for.
+     *
+     * @return the ObjectClass this ContentRule specifies attributes for
+     */
+    ObjectClass getObjectClass() ;
+
+    /**
+     * Gets all the AUXILLARY ObjectClasses this ContentRule specifies for the 
+     * given STRUCTURAL objectClass.
+     *
+     * @return the extra AUXILLARY ObjectClasses
+     */
+    ObjectClass[] getAuxObjectClasses() ;
+
+    /**
+     * Gets all the AttributeTypes of the "must" attribute names this 
+     * ContentRule specifies for the given STRUCTURAL objectClass.
+     *
+     * @return the AttributeTypes of attributes that must be included in entries
+     */
+    AttributeType[] getMustNames() ;
+
+    /**
+     * Gets all the AttributeTypes of the "may" attribute names this ContentRule
+     * specifies for the given STRUCTURAL objectClass.
+     *
+     * @return the AttributeTypes of attributes that may be included in entries
+     */
+    AttributeType[] getMayNames() ;
+
+    /**
+     * Gets all the AttributeTypes of the "not" attribute names this ContentRule
+     * specifies for the given STRUCTURAL objectClass.
+     *
+     * @return the AttributeTypes of attributes that are excluded in entries
+     */
+    AttributeType[] getNotNames() ;
 }

Modified: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/DescriptionUtils.java
==============================================================================
--- incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/DescriptionUtils.java	(original)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/DescriptionUtils.java	Sun Dec 14 11:33:12 2003
@@ -54,7 +54,7 @@
 
 
 /**
- * Utility used to generate descriptions
+ * Utility class used to generate schema object specifications.
  *
  * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
  * @author $LastChangedBy$
@@ -62,26 +62,26 @@
  */
 public class DescriptionUtils
 {
-	/**
-	 * Generates the description using the AttributeTypeDescription syntax. 
-	 * See syntax below:
-	 * <pre>
-	 * AttributeTypeDescription = "(" whsp
-	 *    numericoid whsp                 ; AttributeType identifier
-	 *    [ "NAME" qdescrs ]              ; name used in AttributeType
-	 *    [ "DESC" qdstring ]             ; description
-	 *    [ "OBSOLETE" whsp ]
-	 *    [ "SUP" woid ]                  ; derived from parent AttributeType
-	 *    [ "EQUALITY" woid               ; Matching Rule name
-	 *    [ "ORDERING" woid               ; Matching Rule name
-	 *    [ "SUBSTR" woid ]               ; Matching Rule name
-	 *    [ "SYNTAX" whsp noidlen whsp ]  ; see section 4.3 RFC 2252
-	 *    [ "SINGLE-VALUE" whsp ]         ; default multi-valued
-	 *    [ "COLLECTIVE" whsp ]           ; default not collective
-	 *    [ "NO-USER-MODIFICATION" whsp ] ; default user modifiable
-	 *    [ "USAGE" whsp AttributeUsage ] ; default userApplications
-	 *    whsp ")"
-	 * </pre>
+    /**
+     * Generates the description using the AttributeTypeDescription as defined
+     * by the syntax: 1.3.6.1.4.1.1466.115.121.1.3.
+     * <pre>
+     * AttributeTypeDescription = "(" whsp
+     *    numericoid whsp                 ; AttributeType identifier
+     *    [ "NAME" qdescrs ]              ; name used in AttributeType
+     *    [ "DESC" qdstring ]             ; description
+     *    [ "OBSOLETE" whsp ]
+     *    [ "SUP" woid ]                  ; derived from parent AttributeType
+     *    [ "EQUALITY" woid               ; Matching Rule name
+     *    [ "ORDERING" woid               ; Matching Rule name
+     *    [ "SUBSTR" woid ]               ; Matching Rule name
+     *    [ "SYNTAX" whsp noidlen whsp ]  ; see section 4.3 RFC 2252
+     *    [ "SINGLE-VALUE" whsp ]         ; default multi-valued
+     *    [ "COLLECTIVE" whsp ]           ; default not collective
+     *    [ "NO-USER-MODIFICATION" whsp ] ; default user modifiable
+     *    [ "USAGE" whsp AttributeUsage ] ; default userApplications
+     *    whsp ")"
+     * </pre>
      * @param a_type the attributeType to generate a description for
      * @return the AttributeTypeDescription Syntax for the attributeType in a
      * pretty formated string
@@ -89,6 +89,82 @@
      */
     public String getDescription( AttributeType a_type ) 
     {
-        throw new NotImplementedException( "AttributeTypeDescription Syntax" ) ;
+        throw new NotImplementedException( 
+                "AttributeTypeDescription Syntax" ) ;
+    }
+    
+    
+    /**
+     * Generates the DITContentRuleDescription for a ContentRule as defined by
+     * the syntax: 1.3.6.1.4.1.1466.115.121.1.16. 
+     * <pre>
+     *
+     *  DITContentRuleDescription = "("
+     *      numericoid          ; Structural ObjectClass identifier
+     *      [ "NAME" qdescrs ]
+     *      [ "DESC" qdstring ]
+     *      [ "OBSOLETE" ]
+     *      [ "AUX" oids ]      ; Auxiliary ObjectClasses
+     *      [ "MUST" oids ]     ; AttributeType identifiers
+     *      [ "MAY" oids ]      ; AttributeType identifiers
+     *      [ "NOT" oids ]      ; AttributeType identifiers
+     *     ")"
+     * </pre>
+     * @param a_crule the DIT content rule specification 
+     * @return the specification according to the DITContentRuleDescription
+     * syntax 
+     * @todo Implement me!
+     */
+    public String getDescription( ContentRule a_crule )
+    {
+        throw new NotImplementedException( 
+                "DITContentRuleDescription Syntax" ) ;
+    }
+    
+    
+    /**
+     * Generates the MatchingRuleDescription for a MatchingRule as defined by 
+     * the syntax: 1.3.6.1.4.1.1466.115.121.1.30.
+     * <pre>
+     * MatchingRuleDescription = "(" whsp
+     *    numericoid whsp       ; MatchingRule object identifier
+     *    [ "NAME" qdescrs ]
+     *    [ "DESC" qdstring ]
+     *    [ "OBSOLETE" whsp ]
+     *    "SYNTAX" numericoid
+     * whsp ")"
+     * </pre>
+     * @param a_mrule the MatchingRule to generate the description for
+     * @return the MatchingRuleDescription string
+     * @todo Implement me!
+     */
+    public String getDescription( MatchingRule a_mrule )
+    {
+        throw new NotImplementedException( 
+                "MatchingRuleDescription Syntax" ) ;
+    }
+    
+    
+    /**
+     * Generates the NameFormDescription for a NameForm as defined by the 
+     * syntax: 1.3.6.1.4.1.1466.115.121.1.35.
+     * <pre>
+     * NameFormDescription = "(" whsp
+     *     numericoid whsp                ; NameForm identifier
+     *     [ "NAME" qdescrs ]
+     *     [ "DESC" qdstring ]
+     *     [ "OBSOLETE" whsp ]
+     *     "OC" woid                      ; Structural ObjectClass
+     *     "MUST" oids                    ; AttributeTypes
+     *     [ "MAY" oids ]                 ; AttributeTypes
+     * whsp ")"
+     *</pre>
+     * @param a_nameForm the NameForm to generate the description for
+     * @return the NameFormDescription string
+     * @todo Implement me!
+     */
+    public String getDescription( NameForm a_nameForm )
+    {
+        throw new NotImplementedException( "NameFormDescription Syntax" ) ;
     }
 }

Modified: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/MatchingRule.java
==============================================================================
--- incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/MatchingRule.java	(original)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/MatchingRule.java	Sun Dec 14 11:33:12 2003
@@ -54,79 +54,67 @@
 
 
 /**
- * An LDAP and X.500 matching rule definition interface.
+ * A matching rule definition.  Matching Rules associate a comparator and a 
+ * normalizer, forming the basic tools necessary to assert actions against 
+ * attribute values.  Matching rules are associated with a specific Syntax 
+ * for the purpose of resolving a normalized form and for comparisons.  
  *
+ * @see <a href="http://www.faqs.org/rfcs/rfc2252.html">RFC 2252 Section 4.5</a>
+ * @see DescriptionUtils#getDescription(MatchingRule)
  * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
  * @author $LastChangedBy$
  * @version $LastChangedRevision$
  */
 public interface MatchingRule
 {
-	/**
-	 * Gets a long description for the MatchingRule.
-	 * 
-	 * @return a long description
-	 */
-	String getDesc() ;
-
-	/**
-	 * Gets a short descriptive name for the MatchingRule. 
-	 * 
-	 * @return a short name
-	 */
-	String getName() ;
-
-	/**
-	 * Gets the oid for this MatchingRule.
-	 * 
-	 * @return the object identifier
-	 */
-	String getOid() ;
-
-	/**
-	 * Gets the SyntaxImpl used by this MatchingRule.
-	 * 
-	 * @return the SyntaxImpl of this MatchingRule
-	 */
-	Syntax getSyntax() ;
-
-	/**
-	 * Gets whether or not this MatchingRule has been obsoleted for another.
-	 * 
-	 * @return true if it is obsolete false otherwise
-	 */
-	boolean isObsolete() ;
-
-	/**
-	 * Gets the Comparator enabling the use of this MatchingRule for ORDERING
-	 * and sorted indexing. 
-	 * 
-	 * @return the ordering Comparator 
-	 */
-	Comparator getComparator() ;
-
-	/**
-	 * Gets the Normalizer enabling the use of this MatchingRule for EQUALITY
-	 * matching and indexing. 
-	 * 
-	 * @return the ordering Comparator 
-	 */
-	Normalizer getNormalizer() ;
-
-	/**
-	 * Gets or generates the MatchingRuleDescription for this MatchingRule as 
-	 * defined by the SyntaxImpl 1.3.6.1.4.1.1466.115.121.1.30.
-	 * 
-	 * <pre>
-	 * "(" whsp
-	 *    numericoid whsp
-	 *    [ "NAME" qdescrs ]
-	 *    [ "DESC" qdstring ]
-	 *    [ "OBSOLETE" whsp ]
-	 *    "SYNTAX" numericoid
-	 * whsp ")"
-	 * </pre>
-	 * @return the MatchingRuleDescription string
-	 */
-	String getMatchingRuleDescription() ;
-}
\ No newline at end of file
+    /**
+     * Gets a long description for the MatchingRule.
+     * 
+     * @return a long description
+     */
+    String getDescription() ;
+
+    /**
+     * Gets a short descriptive name for the MatchingRule. 
+     * 
+     * @return a short name
+     */
+    String getName() ;
+
+    /**
+     * Gets the oid for this MatchingRule.
+     * 
+     * @return the object identifier
+     */
+    String getOid() ;
+
+    /**
+     * Gets the SyntaxImpl used by this MatchingRule.
+     * 
+     * @return the SyntaxImpl of this MatchingRule
+     */
+    Syntax getSyntax() ;
+
+    /**
+     * Gets whether or not this MatchingRule has been obsoleted for another.
+     * 
+     * @return true if it is obsolete false otherwise
+     */
+    boolean isObsolete() ;
+
+    /**
+     * Gets the Comparator enabling the use of this MatchingRule for ORDERING
+     * and sorted indexing. 
+     * 
+     * @return the ordering Comparator 
+     */
+    Comparator getComparator() ;
+
+    /**
+     * Gets the Normalizer enabling the use of this MatchingRule for EQUALITY
+     * matching and indexing. 
+     * 
+     * @return the ordering Comparator 
+     */
+    Normalizer getNormalizer() ;
+}

Added: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/NameForm.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/NameForm.java	Sun Dec 14 11:33:12 2003
@@ -0,0 +1,111 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+
+ Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of  source code must  retain the above copyright  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 the documentation
+    and/or other materials provided with the distribution.
+
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
+
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation. For more  information on the
+ Apache Software Foundation, please see <http://www.apache.org/>.
+
+*/
+package org.apache.eve.schema ;
+
+
+/**
+ * A NameForm description interface.  NameForms define the relationship between 
+ * a structural objectClass definition and the attributeTypes allowed to be used
+ * for the naming of an Entry of that objectClass: it defines which attributes 
+ * can be used for the RDN.
+ *
+ * @see <a href="http://www.faqs.org/rfcs/rfc2252.html">RFC 2252 Section 5.4.3
+ * </a>
+ * @see DescriptionUtils#getDescription(NameForm)
+ * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
+ * @author $LastChangedBy: akarasulu $
+ * @version $LastChangedRevision: 1418 $
+ */
+public interface NameForm
+{
+    /**
+     * Gets a description of this NameForm.
+     *
+     * @return a description
+     */
+    String getDescription() ;
+
+    /**
+     * Gets a short descriptive name for the NameForm.
+     *
+     * @return a short name.
+     */
+    String getName() ;
+
+    /**
+     * Gets the oid for this NameForm.
+     *
+     * @return the object identifier
+     */
+    String getOid() ;
+
+    /**
+     * Gets whether or not this NameForm is obsolete.
+     *
+     * @return true if obsolete, false if not.
+     */
+    boolean isObsolete() ;
+
+    /**
+     * Gets the STRUCTURAL ObjectClass this name form specifies naming 
+     * attributes for.
+     *
+     * @return the ObjectClass this NameForm is for
+     */
+    ObjectClass getObjectClass() ;
+
+    /**
+     * Gets all the AttributeTypes of the attribute this NameForm specifies as 
+     * useable in the given objectClass for naming: as part of the Rdn.
+     *
+     * @return the AttributeTypes of the attributes
+     */
+    AttributeType [] getNames() ;
+}

Modified: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/Normalizer.java
==============================================================================
--- incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/Normalizer.java	(original)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/Normalizer.java	Sun Dec 14 11:33:12 2003
@@ -63,19 +63,19 @@
  */
 public interface Normalizer
 {
-	/**
-	 * Gets the equality match OID associated with this normalizer.
-	 *
-	 * @return the OID for the equality match used
-	 */
-	String getMatchingRule() ;
+    /**
+     * Gets the equality match OID associated with this normalizer.
+     *
+     * @return the OID for the equality match used
+     */
+    String getMatchingRule() ;
     
-	/**
-	 * Gets the normalizer associated with the equality matching rule.
-	 *
-	 * @param a_value the value to normalize
-	 * @return the normalized form for a_value
-	 * @throws NamingException if an error results during normalization
-	 */
-	Object normalize( Object a_value ) throws NamingException ;
+    /**
+     * Gets the normalizer associated with the equality matching rule.
+     *
+     * @param a_value the value to normalize
+     * @return the normalized form for a_value
+     * @throws NamingException if an error results during normalization
+     */
+    Object normalize( Object a_value ) throws NamingException ;
 }

Modified: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ObjectClass.java
==============================================================================
--- incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ObjectClass.java	(original)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ObjectClass.java	Sun Dec 14 11:33:12 2003
@@ -50,11 +50,8 @@
 package org.apache.eve.schema ;
 
 
-import java.util.Collection ;
-
-
 /**
- * An LDAP and X.500 ObjectClass definition interface.
+ * An ObjectClass definition.
  *
  * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
  * @author $LastChangedBy$
@@ -62,66 +59,56 @@
  */
 public interface ObjectClass
 {
-	/**
-	 * 
-	 * TODO Document me!
-	 *
-	 * @return TODO
-	 */
-	String getDesc() ;
-
-	/**
-	 * 
-	 * TODO Document me!
-	 *
-	 * @return TODO
-	 */
-	Collection getSuperClasses() ;
-
-	/**
-	 * 
-	 * TODO Document me!
-	 *
-	 * @return TODO
-	 */
-	ObjectClassTypeEnum getType() ;
-
-	/**
-	 * 
-	 * TODO Document me!
-	 *
-	 * @return TODO
-	 */
-	Collection getMustList() ;
-
-	/**
-	 * 
-	 * TODO Document me!
-	 *
-	 * @return TODO
-	 */
-	Collection getMayList() ;
-
-	/**
-	 * 
-	 * TODO Document me!
-	 *
-	 * @return TODO
-	 */
-	String getOid() ;
-
-	/**
-	 * 
-	 * TODO Document me!
-	 *
-	 * @return TODO
-	 */
-	String getName() ;
-
-	/**
-	 * Document me!
-	 *
-	 * @return the objectClass description syntax for this object class.
-	 */
-	String getObjectClassDescription() ;
+    /**
+     * Gets a verbal description of this ObjectClass.
+     *
+     * @return a verbal description
+     */
+    String getDescription() ;
+
+    /**
+     * Gets the object identifier for this ObjectClass definition.
+     *
+     * @return the OID for this ObjectClass
+     */
+    String getOid() ;
+
+    /**
+     * Gets the human readable name of this ObjectClass.
+     *
+     * @return the name of this ObjectClass
+     */
+    String getName() ;
+
+    /**
+     * Gets the superclasses of this ObjectClass.
+     *
+     * @return the superclasses
+     */
+    ObjectClass [] getSuperClasses() ;
+
+    /**
+     * Gets the type of this ObjectClass as a type safe enum.
+     *
+     * @return the ObjectClass type as an enum
+     */
+    ObjectClassTypeEnum getType() ;
+
+    /**
+     * Gets the AttributeTypes whose attributes must be present within an entry
+     * of this ObjectClass.
+     *
+     * @return the AttributeTypes of attributes that must be within entries of
+     * this ObjectClass
+     */
+    AttributeType [] getMustList() ;
+
+    /**
+     * Gets the AttributeTypes whose attributes may be present within an entry
+     * of this ObjectClass.
+     *
+     * @return the AttributeTypes of attributes that may be within entries of
+     * this ObjectClass
+     */
+    AttributeType [] getMayList() ;
 }

Modified: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ObjectClassTypeEnum.java
==============================================================================
--- incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ObjectClassTypeEnum.java	(original)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ObjectClassTypeEnum.java	Sun Dec 14 11:33:12 2003
@@ -1,7 +1,7 @@
 /*
 
  ============================================================================
-				   The Apache Software License, Version 1.1
+                   The Apache Software License, Version 1.1
  ============================================================================
 
  Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
@@ -10,26 +10,26 @@
  tion, are permitted provided that the following conditions are met:
 
  1. Redistributions of  source code must  retain the above copyright  notice,
-	this list of conditions and the following disclaimer.
+    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 the documentation
-	and/or other materials provided with the distribution.
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
 
  3. The end-user documentation included with the redistribution, if any, must
-	include  the following  acknowledgment:  "This product includes  software
-	developed  by the  Apache Software Foundation  (http://www.apache.org/)."
-	Alternately, this  acknowledgment may  appear in the software itself,  if
-	and wherever such third-party acknowledgments normally appear.
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
 
  4. The names "Eve Directory Server", "Apache Directory Project", "Apache Eve" 
-	and "Apache Software Foundation"  must not be used to endorse or promote
-	products derived  from this  software without  prior written
-	permission. For written permission, please contact apache@apache.org.
+    and "Apache Software Foundation"  must not be used to endorse or promote
+    products derived  from this  software without  prior written
+    permission. For written permission, please contact apache@apache.org.
 
  5. Products  derived from this software may not  be called "Apache", nor may
-	"Apache" appear  in their name,  without prior written permission  of the
-	Apache Software Foundation.
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
 
  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
@@ -134,25 +134,25 @@
     }
 
 
-	/**
-	 * Gets a List of the enumerations for the ObjectClass type.
-	 * 
-	 * @return the List of enumerations possible for ObjectClass types
-	 */
-	public static List list()
-	{
-		return EnumUtils.getEnumList( ObjectClassTypeEnum.class ) ;
-	}
-	
-	
-	/**
-	 * Gets the Map of ClassTypeEnum objects by name using the ClassTypeEnum 
-	 * class.
-	 * 
-	 * @return the Map by name of ClassTypeEnums
-	 */
-	public static Map map()
-	{
-		return EnumUtils.getEnumMap( ObjectClassTypeEnum.class ) ;
-	}
+    /**
+     * Gets a List of the enumerations for the ObjectClass type.
+     * 
+     * @return the List of enumerations possible for ObjectClass types
+     */
+    public static List list()
+    {
+        return EnumUtils.getEnumList( ObjectClassTypeEnum.class ) ;
+    }
+    
+    
+    /**
+     * Gets the Map of ClassTypeEnum objects by name using the ClassTypeEnum 
+     * class.
+     * 
+     * @return the Map by name of ClassTypeEnums
+     */
+    public static Map map()
+    {
+        return EnumUtils.getEnumMap( ObjectClassTypeEnum.class ) ;
+    }
 }

Modified: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/StructureRule.java
==============================================================================
--- incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/StructureRule.java	(original)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/StructureRule.java	Sun Dec 14 11:33:12 2003
@@ -49,8 +49,14 @@
 */
 package org.apache.eve.schema ;
 
+
 /**
- * An LDAP and X.500 DIT StructureRule definition interface.
+ * A DIT StructureRule definition.  DIT StructureRules are rules governing the 
+ * structure of the DIT by specifying a permitted superior to subordinate entry 
+ * relationship.  A structure rule relates a NameForm, and therefore a 
+ * STRUCTURAL ObjectClass, to superior structure rules.  This permits entries of
+ * the STRUCTURAL ObjectClass identified by the NameForm to exist in the DIT as 
+ * subordinates to entries governed by the indicated superior structure rules.
  *
  * @author <a href="mailto:akarasulu@apache.org">Alex Karasulu</a>
  * @author $LastChangedBy$
@@ -58,5 +64,55 @@
  */
 public interface StructureRule
 {
+    /**
+     * Gets a description of this StructureRule.
+     *
+     * @return a description
+     */
+    String getDescription() ;
+
+    /**
+     * Gets a short descriptive name for the StructureRule.
+     *
+     * @return a short name.
+     */
+    String getName() ;
+
+    /**
+     * Gets the oid for this StructureRule.
+     *
+     * @return the object identifier
+     */
+    String getOid() ;
+
+    /**
+     * Gets whether or not this StructureRule is obsolete.
+     *
+     * @return true if obsolete, false if not.
+     */
+    boolean isObsolete() ;
+
+    /**
+     * Gets the OID of the objectClass this ContentRule specifies
+     * attributes for..
+     *
+     * @return the OID of this stucture rule NameForm
+     */
+    NameForm getNameForm() ;
+
+    /**
+     * Gets the superior StructureRule of this StructureRule.
+     *
+     * @return StructureRule superior to this StructureRule
+     */
+    StructureRule getSuperClass() ;
 
+    /**
+     * Gets a collection of all the superior StructureRules. The difference 
+     * with getSuperClass is this method will resolve the entire superior 
+     * class chain.
+     *
+     * @return the chain of StructureRules 
+     */
+    StructureRule [] getSuperClassChain() ;
 }

Modified: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/Syntax.java
==============================================================================
--- incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/Syntax.java	(original)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/Syntax.java	Sun Dec 14 11:33:12 2003
@@ -68,50 +68,50 @@
  */
 public interface Syntax
 {
-	/**
-	 * Gets whether or not the Syntax is human readable.
-	 * 
-	 * @return true if the syntax can be interpretted by humans, false otherwise
-	 */
-	boolean isHumanReadable() ;
+    /**
+     * Gets whether or not the Syntax is human readable.
+     * 
+     * @return true if the syntax can be interpretted by humans, false otherwise
+     */
+    boolean isHumanReadable() ;
     
-	/**
-	 * Gets a description of this Syntax.
-	 * 
-	 * @return a description
-	 */
-	String getDesc() ;
+    /**
+     * Gets a description of this Syntax.
+     * 
+     * @return a description
+     */
+    String getDesc() ;
     
-	/**
-	 * Gets a short descriptive name for the Syntax. 
-	 * 
-	 * @return a short name
-	 */
-	String getName() ;
+    /**
+     * Gets a short descriptive name for the Syntax. 
+     * 
+     * @return a short name
+     */
+    String getName() ;
     
-	/**
-	 * Gets the oid for this Syntax.
-	 * 
-	 * @return the object identifier
-	 */
-	String getOid() ;
+    /**
+     * Gets the oid for this Syntax.
+     * 
+     * @return the object identifier
+     */
+    String getOid() ;
     
-	/**
-	 * Gets the SyntaxChecker used to validate values in accordance with this
-	 * Syntax.
-	 * 
-	 * @return the SyntaxChecker
-	 */
-	SyntaxChecker getSyntaxChecker() ;
+    /**
+     * Gets the SyntaxChecker used to validate values in accordance with this
+     * Syntax.
+     * 
+     * @return the SyntaxChecker
+     */
+    SyntaxChecker getSyntaxChecker() ;
 
-	/**
-	 * Gets or generates the Syntax Description for this Syntax as defined by 
-	 * the Syntax 1.3.6.1.4.1.1466.115.121.1.54.
-	 * 
-	 * <code>
-	 * "(" whsp numericoid whsp [ "DESC" qdstring ] whsp ")"
-	 * </code>
-	 * @return the Syntax Description
-	 */
-	String getSyntaxDescription() ;
+    /**
+     * Gets or generates the Syntax Description for this Syntax as defined by 
+     * the Syntax 1.3.6.1.4.1.1466.115.121.1.54.
+     * 
+     * <code>
+     * "(" whsp numericoid whsp [ "DESC" qdstring ] whsp ")"
+     * </code>
+     * @return the Syntax Description
+     */
+    String getSyntaxDescription() ;
 }

Modified: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/SyntaxChecker.java
==============================================================================
--- incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/SyntaxChecker.java	(original)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/SyntaxChecker.java	Sun Dec 14 11:33:12 2003
@@ -64,28 +64,28 @@
  */
 public interface SyntaxChecker
 {
-	/**
-	 * Gets the OID of the attribute syntax.
-	 *
-	 * @return the object identifier of the Syntax this SyntaxChecker validates
-	 */
-	String getSyntaxOid() ;
+    /**
+     * Gets the OID of the attribute syntax.
+     *
+     * @return the object identifier of the Syntax this SyntaxChecker validates
+     */
+    String getSyntaxOid() ;
 
-	/**
-	 * Determines if the attribute's value conforms to the attribute syntax.
-	 *
-	 * @param a_value the value of some attribute with the syntax
-	 * @return true if the value is in the valid syntax, false otherwise
-	 */
-	boolean isValidSyntax( Object a_value ) ;
+    /**
+     * Determines if the attribute's value conforms to the attribute syntax.
+     *
+     * @param a_value the value of some attribute with the syntax
+     * @return true if the value is in the valid syntax, false otherwise
+     */
+    boolean isValidSyntax( Object a_value ) ;
     
-	/**
-	 * Asserts whether or not the attribute's value conforms to the attribute 
-	 * syntax.
-	 *
-	 * @param a_value the value of some attribute with the syntax
-	 * @throws NamingException if the value does not conform to the attribute
-	 * syntax.
-	 */    
-	void assertSyntax( Object a_value ) throws NamingException ;
+    /**
+     * Asserts whether or not the attribute's value conforms to the attribute 
+     * syntax.
+     *
+     * @param a_value the value of some attribute with the syntax
+     * @throws NamingException if the value does not conform to the attribute
+     * syntax.
+     */    
+    void assertSyntax( Object a_value ) throws NamingException ;
 }

Modified: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/UsageEnum.java
==============================================================================
--- incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/UsageEnum.java	(original)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/UsageEnum.java	Sun Dec 14 11:33:12 2003
@@ -73,97 +73,97 @@
  */
 public class UsageEnum extends ValuedEnum
 {
-	/** value for attributes with userApplications usage */
-	public static final int USERAPPLICATIONS_VAL = 0 ;
-	/** value for attributes with directoryOperation usage */
-	public static final int DIRECTORYOPERATION_VAL = 1 ;
-	/** value for attributes with distributedOperation usage */
-	public static final int DISTRIBUTEDOPERATION_VAL = 2 ;
-	/** value for attributes with dSAOperation usage */
-	public static final int DSAOPERATION_VAL = 3 ;
+    /** value for attributes with userApplications usage */
+    public static final int USERAPPLICATIONS_VAL = 0 ;
+    /** value for attributes with directoryOperation usage */
+    public static final int DIRECTORYOPERATION_VAL = 1 ;
+    /** value for attributes with distributedOperation usage */
+    public static final int DISTRIBUTEDOPERATION_VAL = 2 ;
+    /** value for attributes with dSAOperation usage */
+    public static final int DSAOPERATION_VAL = 3 ;
 
 
-	/** enum for attributes with userApplications usage */
-	public static final UsageEnum USERAPPLICATIONS = 
-		new UsageEnum( "userApplications", USERAPPLICATIONS_VAL ) ;
-	/** enum for attributes with directoryOperation usage */
-	public static final UsageEnum DIRECTORYOPERATION = 
-		new UsageEnum( "directoryOperation", DIRECTORYOPERATION_VAL ) ;
-	/** enum for attributes with distributedOperation usage */
-	public static final UsageEnum DISTRIBUTEDOPERATION = 
-		new UsageEnum( "distributedOperation", DISTRIBUTEDOPERATION_VAL ) ;
-	/** enum for attributes with dSAOperation usage */
-	public static final UsageEnum DSAOPERATION = 
-		new UsageEnum( "dSAOperation", DSAOPERATION_VAL ) ;
+    /** enum for attributes with userApplications usage */
+    public static final UsageEnum USERAPPLICATIONS = 
+        new UsageEnum( "userApplications", USERAPPLICATIONS_VAL ) ;
+    /** enum for attributes with directoryOperation usage */
+    public static final UsageEnum DIRECTORYOPERATION = 
+        new UsageEnum( "directoryOperation", DIRECTORYOPERATION_VAL ) ;
+    /** enum for attributes with distributedOperation usage */
+    public static final UsageEnum DISTRIBUTEDOPERATION = 
+        new UsageEnum( "distributedOperation", DISTRIBUTEDOPERATION_VAL ) ;
+    /** enum for attributes with dSAOperation usage */
+    public static final UsageEnum DSAOPERATION = 
+        new UsageEnum( "dSAOperation", DSAOPERATION_VAL ) ;
 
 
-	/**
-	 * Private construct so no other instances can be created other than the
-	 * public static constants in this class.
-	 *
-	 * @param a_name a string name for the enumeration value.
-	 * @param a_value the integer value of the enumeration.
-	 */
-	private UsageEnum( final String a_name, final int a_value )
-	{
-		super( a_name, a_value ) ;
-	}
-    
-    
-	/**
-	 * Gets the enumeration type for the attributeType usage string regardless 
-	 * of case.
-	 * 
-	 * @param a_usage the usage string
-	 * @return the usage enumeration type
-	 */
-	public static UsageEnum getUsage( String a_usage )
-	{
-		if ( a_usage.equalsIgnoreCase( UsageEnum.USERAPPLICATIONS.getName() ) )
-		{
-			return UsageEnum.USERAPPLICATIONS ;
-		}
+    /**
+     * Private construct so no other instances can be created other than the
+     * public static constants in this class.
+     *
+     * @param a_name a string name for the enumeration value.
+     * @param a_value the integer value of the enumeration.
+     */
+    private UsageEnum( final String a_name, final int a_value )
+    {
+        super( a_name, a_value ) ;
+    }
+    
+    
+    /**
+     * Gets the enumeration type for the attributeType usage string regardless 
+     * of case.
+     * 
+     * @param a_usage the usage string
+     * @return the usage enumeration type
+     */
+    public static UsageEnum getUsage( String a_usage )
+    {
+        if ( a_usage.equalsIgnoreCase( UsageEnum.USERAPPLICATIONS.getName() ) )
+        {
+            return UsageEnum.USERAPPLICATIONS ;
+        }
         
-		if ( a_usage.equalsIgnoreCase( 
-			UsageEnum.DIRECTORYOPERATION.getName() ) )
-		{
-			return UsageEnum.DIRECTORYOPERATION ;
-		}
+        if ( a_usage.equalsIgnoreCase( 
+            UsageEnum.DIRECTORYOPERATION.getName() ) )
+        {
+            return UsageEnum.DIRECTORYOPERATION ;
+        }
         
-		if ( a_usage.equalsIgnoreCase( 
-			UsageEnum.DISTRIBUTEDOPERATION.getName() ) )
-		{
-			return UsageEnum.DISTRIBUTEDOPERATION ;
-		}
+        if ( a_usage.equalsIgnoreCase( 
+            UsageEnum.DISTRIBUTEDOPERATION.getName() ) )
+        {
+            return UsageEnum.DISTRIBUTEDOPERATION ;
+        }
         
-		if ( a_usage.equalsIgnoreCase( UsageEnum.DSAOPERATION.getName() ) )
-		{
-			return UsageEnum.DSAOPERATION ;
-		}
+        if ( a_usage.equalsIgnoreCase( UsageEnum.DSAOPERATION.getName() ) )
+        {
+            return UsageEnum.DSAOPERATION ;
+        }
         
-		throw new IllegalArgumentException( "Unknown attributeType usage string"
-			+ a_usage ) ;
-	}
-	
-	
-	/**
-	 * Gets a List of the enumerations for attributeType usage.
-	 * 
-	 * @return the List of enumerations possible for usage
-	 */
-	public static List list()
-	{
-	    return EnumUtils.getEnumList( UsageEnum.class ) ;
-	}
-	
-	
-	/**
-	 * Gets the Map of UsageEnum objects by name using the UsageEnum class.
-	 * 
-	 * @return the Map by name of UsageEnums
-	 */
-	public static Map map()
-	{
-	    return EnumUtils.getEnumMap( UsageEnum.class ) ;
-	}
+        throw new IllegalArgumentException( "Unknown attributeType usage string"
+            + a_usage ) ;
+    }
+    
+    
+    /**
+     * Gets a List of the enumerations for attributeType usage.
+     * 
+     * @return the List of enumerations possible for usage
+     */
+    public static List list()
+    {
+        return EnumUtils.getEnumList( UsageEnum.class ) ;
+    }
+    
+    
+    /**
+     * Gets the Map of UsageEnum objects by name using the UsageEnum class.
+     * 
+     * @return the Map by name of UsageEnums
+     */
+    public static Map map()
+    {
+        return EnumUtils.getEnumMap( UsageEnum.class ) ;
+    }
 }