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 ) ;
+ }
}