Return-Path: Delivered-To: apmail-incubator-directory-cvs-archive@www.apache.org Received: (qmail 59327 invoked from network); 14 Dec 2003 19:33:14 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 14 Dec 2003 19:33:14 -0000 Received: (qmail 72264 invoked by uid 500); 14 Dec 2003 19:33:04 -0000 Delivered-To: apmail-incubator-directory-cvs-archive@incubator.apache.org Received: (qmail 72221 invoked by uid 500); 14 Dec 2003 19:33:04 -0000 Mailing-List: contact directory-cvs-help@incubator.apache.org; run by ezmlm Precedence: bulk Reply-To: directory-dev@incubator.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list directory-cvs@incubator.apache.org Received: (qmail 72207 invoked from network); 14 Dec 2003 19:33:04 -0000 Received: from unknown (HELO minotaur.apache.org) (209.237.227.194) by daedalus.apache.org with SMTP; 14 Dec 2003 19:33:04 -0000 Received: (qmail 59272 invoked by uid 65534); 14 Dec 2003 19:33:13 -0000 Date: 14 Dec 2003 19:33:13 -0000 Message-ID: <20031214193313.59270.qmail@minotaur.apache.org> From: akarasulu@apache.org To: directory-cvs@incubator.apache.org Subject: svn commit: rev 1421 - incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N 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 RFC 2252 Section 4.2 + * @see DescriptionUtils#getDescription(AttributeType) * @author Alex Karasulu * @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 RFC 2252 Section 5.4.3 + * + * @see DescriptionUtils#getDescription(ContentRule) * @author Alex Karasulu * @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 Alex Karasulu * @author $LastChangedBy$ @@ -62,26 +62,26 @@ */ public class DescriptionUtils { - /** - * Generates the description using the AttributeTypeDescription syntax. - * See syntax below: - *
-	 * 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 ")"
-	 * 
+ /** + * Generates the description using the AttributeTypeDescription as defined + * by the syntax: 1.3.6.1.4.1.1466.115.121.1.3. + *
+     * 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 ")"
+     * 
* @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. + *
+     *
+     *  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
+     *     ")"
+     * 
+ * @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. + *
+     * MatchingRuleDescription = "(" whsp
+     *    numericoid whsp       ; MatchingRule object identifier
+     *    [ "NAME" qdescrs ]
+     *    [ "DESC" qdstring ]
+     *    [ "OBSOLETE" whsp ]
+     *    "SYNTAX" numericoid
+     * whsp ")"
+     * 
+ * @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. + *
+     * NameFormDescription = "(" whsp
+     *     numericoid whsp                ; NameForm identifier
+     *     [ "NAME" qdescrs ]
+     *     [ "DESC" qdstring ]
+     *     [ "OBSOLETE" whsp ]
+     *     "OC" woid                      ; Structural ObjectClass
+     *     "MUST" oids                    ; AttributeTypes
+     *     [ "MAY" oids ]                 ; AttributeTypes
+     * whsp ")"
+     *
+ * @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 RFC 2252 Section 4.5 + * @see DescriptionUtils#getDescription(MatchingRule) * @author Alex Karasulu * @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. - * - *
-	 * "(" whsp
-	 *    numericoid whsp
-	 *    [ "NAME" qdescrs ]
-	 *    [ "DESC" qdstring ]
-	 *    [ "OBSOLETE" whsp ]
-	 *    "SYNTAX" numericoid
-	 * whsp ")"
-	 * 
- * @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 . + +*/ +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 RFC 2252 Section 5.4.3 + * + * @see DescriptionUtils#getDescription(NameForm) + * @author Alex Karasulu + * @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 Alex Karasulu * @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 Alex Karasulu * @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. - * - * - * "(" whsp numericoid whsp [ "DESC" qdstring ] whsp ")" - * - * @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. + * + * + * "(" whsp numericoid whsp [ "DESC" qdstring ] whsp ")" + * + * @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 ) ; + } }