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 05:27:42 UTC
svn commit: rev 1412 - in incubator/directory/ldap/trunk/eve/backend/schema/api: . src src/java src/java/org src/java/org/apache src/java/org/apache/eve src/java/org/apache/eve/schema
Author: akarasulu
Date: Sat Dec 13 20:27:42 2003
New Revision: 1412
Added:
incubator/directory/ldap/trunk/eve/backend/schema/api/
incubator/directory/ldap/trunk/eve/backend/schema/api/project.xml
incubator/directory/ldap/trunk/eve/backend/schema/api/src/
incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/
incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/
incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/
incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/
incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/
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/MatchingRule.java
incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/NameForms.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
incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/package.html
Log:
initial checkin - not complete yet
Added: incubator/directory/ldap/trunk/eve/backend/schema/api/project.xml
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/project.xml Sat Dec 13 20:27:42 2003
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<project>
+ <extend>${basedir}/../../../project.xml</extend>
+ <groupId>directory</groupId>
+ <id>eve-backend-schema-api</id>
+
+ <name>Eve Backend Schema API</name>
+ <package>org.apache.eve.schema</package>
+ <currentVersion>SNAPSHOT</currentVersion>
+ <inceptionYear>2002</inceptionYear>
+
+ <shortDescription>Eve Backend Schema API</shortDescription>
+
+ <description>
+ Set of public interfaces dealing with LDAP and X.500 schema objects.
+ </description>
+
+ <dependencies>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.0</version>
+ <url>http://jakarta.apache.org/commons/lang/api</url>
+ </dependencies>
+</project>
+
Added: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/AttributeType.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/AttributeType.java Sat Dec 13 20:27:42 2003
@@ -0,0 +1,252 @@
+/*
+
+ ============================================================================
+ 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 ;
+
+
+import java.util.ArrayList ;
+import java.util.Collection ;
+import java.util.Comparator ;
+
+
+/**
+ * An LDAP and X.500 attribute type definition interface.
+ *
+ * @author <a href="mailto:aok123@bellsouth.net">Alex Karasulu</a>
+ * @author $Author$
+ * @version $Revision$
+ */
+public interface AttributeType
+{
+ /**
+ * 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 all the names for this AttributeType.
+ *
+ * @return a Collection of String names for this AttributeType
+ */
+ Collection getAllNames() ;
+
+ /**
+ * Gets a description for this AttributeType.
+ *
+ * @return the verbal description
+ */
+ String getDescription() ;
+
+ /**
+ * Gets the OID of the Syntax specified for this AttributeType.
+ *
+ * @return the OID of the Syntax
+ */
+ String getSyntaxOid() ;
+
+ /**
+ * 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() ;
+
+ /**
+ * 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
+ */
+ String getSuperior() ;
+
+ /**
+ * Returns the OID of this attribute.
+ *
+ * @see java.lang.Object#toString()
+ */
+ String toString() ;
+
+ /**
+ * Gets whether or not this AttributeType is binary.
+ *
+ * @return true if this AttributeType is binary.
+ */
+ boolean isBinary() ;
+
+ /**
+ * Gets whether or not this AttributeType is an integer type.
+ *
+ * @return true if this AttributeType is an integer type
+ */
+ boolean isInteger() ;
+
+ /**
+ * Gets whether or not this AttributeType is a String type.
+ *
+ * @return true if this AttributeType is a String type
+ */
+ boolean isString() ;
+
+ /**
+ * Gets the normalizer
+ *
+ * @return TODO
+ */
+ Normalizer getNormalizer() ;
+
+ /**
+ * TODO Document me!
+ *
+ * @return the sytax checker
+ */
+ SyntaxChecker getSyntaxChecker() ;
+
+ /**
+ *
+ * TODO Document me!
+ *
+ * @return TODO
+ */
+ Comparator getComparator() ;
+
+ /**
+ * TODO Document me!
+ *
+ * @return TODO
+ */
+ ArrayList getChildren() ;
+
+ /**
+ * TODO Document me!
+ *
+ * @return TODO
+ */
+ String getDesc() ;
+
+ /**
+ * TODO Document me!
+ *
+ * @return TODO
+ */
+ MatchingRule getEquality() ;
+
+ /**
+ * TODO Document me!
+ *
+ * @return TODO
+ */
+ ArrayList getNameList() ;
+
+ /**
+ * TODO Document me!
+ *
+ * @return TODO
+ */
+ MatchingRule getOrdering() ;
+
+ /**
+ * TODO Document me!
+ *
+ * @return TODO
+ */
+ MatchingRule getSubstr() ;
+
+ /**
+ * TODO Document me!
+ *
+ * @return TODO
+ */
+ Syntax getSyntax() ;
+
+ /**
+ * TODO Document me!
+ *
+ * @return the length of the attribute
+ */
+ int getLength() ;
+
+ /**
+ * TODO Document me!
+ *
+ * @return true if the attribute is collective, false otherwise
+ */
+ boolean isCollective() ;
+
+
+ /**
+ * Generates the description using the AttributeTypeDescription syntax.
+ *
+ * @return this AttributeType instances specification in the
+ * AttributeTypeDescription Syntax.
+ */
+ String getAttributeTypeDescription() ;
+}
\ No newline at end of file
Added: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ContentRule.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ContentRule.java Sat Dec 13 20:27:42 2003
@@ -0,0 +1,63 @@
+/*
+
+ ============================================================================
+ 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 ;
+
+
+/**
+ * An LDAP and X.500 DIT ContentRule definition interface.
+ *
+ * @author <a href="mailto:aok123@bellsouth.net">Alex Karasulu</a>
+ * @author $Author$
+ * @version $Revision$
+ */
+public interface ContentRule
+{
+
+}
Added: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/MatchingRule.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/MatchingRule.java Sat Dec 13 20:27:42 2003
@@ -0,0 +1,132 @@
+/*
+
+ ============================================================================
+ 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 ;
+
+
+import java.util.Comparator ;
+
+
+/**
+ * An LDAP and X.500 matching rule definition interface.
+ *
+ * @author <a href="mailto:aok123@bellsouth.net">Alex Karasulu</a>
+ * @author $Author$
+ * @version $Revision$
+ */
+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
Added: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/NameForms.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/NameForms.java Sat Dec 13 20:27:42 2003
@@ -0,0 +1,62 @@
+/*
+
+ ============================================================================
+ 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 ;
+
+/**
+ * An LDAP and X.500 NameForm definition interface.
+ *
+ * @author <a href="mailto:aok123@bellsouth.net">Alex Karasulu</a>
+ * @author $Author$
+ * @version $Revision$
+ */
+public interface NameForms
+{
+
+}
Added: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/Normalizer.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/Normalizer.java Sat Dec 13 20:27:42 2003
@@ -0,0 +1,81 @@
+/*
+
+ ============================================================================
+ 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 ;
+
+
+import javax.naming.NamingException ;
+
+
+/**
+ * Normalizes attribute values according to the matching rule used to evaluate
+ * attribute value assertions.
+ *
+ * @author <a href="mailto:aok123@bellsouth.net">Alex Karasulu</a>
+ * @author $Author$
+ * @version $Revision$
+ */
+public interface Normalizer
+{
+ /**
+ * 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 ;
+}
Added: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ObjectClass.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ObjectClass.java Sat Dec 13 20:27:42 2003
@@ -0,0 +1,127 @@
+/*
+
+ ============================================================================
+ 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 ;
+
+
+import java.util.Collection ;
+
+
+/**
+ * An LDAP and X.500 ObjectClass definition interface.
+ *
+ * @author <a href="mailto:aok123@bellsouth.net">Alex Karasulu</a>
+ * @author $Author$
+ * @version $Revision$
+ */
+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() ;
+}
\ No newline at end of file
Added: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ObjectClassTypeEnum.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/ObjectClassTypeEnum.java Sat Dec 13 20:27:42 2003
@@ -0,0 +1,158 @@
+/*
+
+ ============================================================================
+ 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 ;
+
+
+import java.util.Map ;
+import java.util.List ;
+
+import org.apache.commons.lang.enum.EnumUtils ;
+import org.apache.commons.lang.enum.ValuedEnum ;
+
+
+/**
+ * Type safe enumerations for an ObjectClasses type. An ObjectClass type can
+ * be one of the following types:
+ * <ul>
+ * <li>ABSTRACT</li>
+ * <li>AUXILLARY</li>
+ * <li>STRUCTURAL</li>
+ * </ul>
+ *
+ * @author <a href="mailto:aok123@bellsouth.net">Alex Karasulu</a>
+ * @author $Author$
+ * @version $Revision$
+ */
+public class ObjectClassTypeEnum extends ValuedEnum
+{
+ /** The enumeration constant value for the abstract objectClasses */
+ public static final int ABSTRACT_VAL = 0 ;
+ /** The enumeration constant value for the auxillary objectClasses */
+ public static final int AUXILLARY_VAL = 1 ;
+ /** The enumeration constant value for the structural objectClasses */
+ public static final int STRUCTURAL_VAL = 2 ;
+
+ /** ValuedEnum for abstract objectClasses */
+ public static final ObjectClassTypeEnum ABSTRACT =
+ new ObjectClassTypeEnum( "ABSTRACT", ABSTRACT_VAL ) ;
+
+ /** ValuedEnum for auxillary objectClasses */
+ public static final ObjectClassTypeEnum AUXILLARY =
+ new ObjectClassTypeEnum( "AUXILLARY", AUXILLARY_VAL ) ;
+
+ /** ValuedEnum for structural objectClasses */
+ public static final ObjectClassTypeEnum STRUCTURAL =
+ new ObjectClassTypeEnum( "STRUCTURAL", STRUCTURAL_VAL ) ;
+
+
+ /**
+ * Private constructor 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 ObjectClassTypeEnum( final String a_name, final int a_value )
+ {
+ super( a_name, a_value ) ;
+ }
+
+
+ /**
+ * Gets the objectClass type enumeration of AUXILLARY, STRUCTURAL, or,
+ * ABSTRACT.
+ *
+ * @param a_name options are AUXILLARY, STRUCTURAL, or, ABSTRACT
+ * @return the type safe enumeration for the objectClass type
+ */
+ public static ObjectClassTypeEnum getClassType( String a_name )
+ {
+ String l_upperCase = a_name.trim().toUpperCase() ;
+
+ if ( l_upperCase.equals( "STRUCTURAL" ) )
+ {
+ return ABSTRACT ;
+ }
+ else if ( l_upperCase.equals( "AUXILLARY" ) )
+ {
+ return AUXILLARY ;
+ }
+ else if ( l_upperCase.equals( "ABSTRACT" ) )
+ {
+ return ABSTRACT ;
+ }
+
+ throw new IllegalArgumentException( "Unknown objectClass type name '"
+ + a_name + "': options are AUXILLARY, STRUCTURAL, ABSTRACT." ) ;
+ }
+
+
+ /**
+ * 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 ) ;
+ }
+}
Added: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/StructureRule.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/StructureRule.java Sat Dec 13 20:27:42 2003
@@ -0,0 +1,62 @@
+/*
+
+ ============================================================================
+ 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 ;
+
+/**
+ * An LDAP and X.500 DIT StructureRule definition interface.
+ *
+ * @author <a href="mailto:aok123@bellsouth.net">Alex Karasulu</a>
+ * @author $Author$
+ * @version $Revision$
+ */
+public interface StructureRule
+{
+
+}
Added: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/Syntax.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/Syntax.java Sat Dec 13 20:27:42 2003
@@ -0,0 +1,117 @@
+/*
+
+ ============================================================================
+ 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 ;
+
+
+/**
+ * An LDAP and X.500 syntax definition interface.
+ *
+ * Each attribute stored in a directory has a defined syntax (i.e. data type)
+ * which constrains the structure and format of its values. The description
+ * of each syntax specifies how attribute or assertion values conforming to
+ * the syntax are normally represented when transferred in LDAP operations.
+ * This representation is referred to as the LDAP-specific encoding to
+ * distinguish it from other methods of encoding attribute values.
+ *
+ * @see <a href="http://www.faqs.org/rfcs/rfc2252.html">RFC 2252</a>
+ *
+ * @author <a href="mailto:aok123@bellsouth.net">Alex Karasulu</a>
+ * @author $Author$
+ * @version $Revision$
+ */
+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 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 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 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() ;
+}
Added: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/SyntaxChecker.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/SyntaxChecker.java Sat Dec 13 20:27:42 2003
@@ -0,0 +1,91 @@
+/*
+
+ ============================================================================
+ 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 ;
+
+
+import javax.naming.NamingException ;
+
+
+/**
+ * Used to validate values of a particular syntax. This interface does not
+ * correlate to any LDAP or X.500 construct. It has been created as a means
+ * to enforce a syntax within the Eve server.
+ *
+ * @author <a href="mailto:aok123@bellsouth.net">Alex Karasulu</a>
+ * @author $Author$
+ * @version $Revision$
+ */
+public interface SyntaxChecker
+{
+ /**
+ * 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 ) ;
+
+ /**
+ * 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 ;
+}
Added: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/UsageEnum.java
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/UsageEnum.java Sat Dec 13 20:27:42 2003
@@ -0,0 +1,169 @@
+/*
+
+ ============================================================================
+ 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 ;
+
+
+import java.util.Map ;
+import java.util.List ;
+
+import org.apache.commons.lang.enum.EnumUtils ;
+import org.apache.commons.lang.enum.ValuedEnum ;
+
+
+/**
+ * Type safe enum for an AttributeType definition's usage string. This can be
+ * take one of the following four values:
+ * <ul>
+ * <li>userApplications</li>
+ * <li>directoryOperation</li>
+ * <li>distributedOperation</li>
+ * <li>dSAOperation</li>
+ * </ul>
+ *
+ * @author <a href="mailto:aok123@bellsouth.net">Alex Karasulu</a>
+ * @author $Author: akarasulu $
+ * @version $Revision: 1.2 $
+ */
+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 ;
+
+
+ /** 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 ;
+ }
+
+ 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.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 ) ;
+ }
+}
Added: incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/package.html
==============================================================================
--- (empty file)
+++ incubator/directory/ldap/trunk/eve/backend/schema/api/src/java/org/apache/eve/schema/package.html Sat Dec 13 20:27:42 2003
@@ -0,0 +1,3 @@
+<p>
+Schema objects used by the Eve directory server.
+</p>
\ No newline at end of file