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 2007/07/22 09:16:33 UTC
svn commit: r558464 - in /directory/shared/trunk: convert/ ldap-constants/
ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/
ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/
ldap/src/test/java/org/apache/directo...
Author: akarasulu
Date: Sun Jul 22 00:16:30 2007
New Revision: 558464
URL: http://svn.apache.org/viewvc?view=rev&rev=558464
Log:
changes ...
o added some new syntax checkers for java data types: byte, int, short, char
o added some constants to SchemaConstants for syntaxes
o using constants in SchemaConstants in some syntax checkers instead of SC_OID
o changed SchemaConstants into Interface to do away with public static finals
Added:
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaByteSyntaxChecker.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaByteSyntaxCheckerTest.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaIntegerSyntaxChecker.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaLongSyntaxChecker.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaLongSyntaxCheckerTest.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaShortSyntaxChecker.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaShortSyntaxCheckerTest.java
directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/JavaIntegerSyntaxCheckerTest.java
Modified:
directory/shared/trunk/convert/ (props changed)
directory/shared/trunk/ldap-constants/ (props changed)
directory/shared/trunk/ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/SchemaConstants.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/AbstractSchemaDescription.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BinarySyntaxChecker.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BitStringSyntaxChecker.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BooleanSyntaxChecker.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/GeneralizedTimeSyntaxChecker.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/IntegerSyntaxChecker.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/UtcTimeSyntaxChecker.java
directory/shared/trunk/ldap/xdocs/index.xml
Propchange: directory/shared/trunk/convert/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Sun Jul 22 00:16:30 2007
@@ -1,4 +1,5 @@
target
+*.iml
.classpath
.project
.settings
Propchange: directory/shared/trunk/ldap-constants/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Sun Jul 22 00:16:30 2007
@@ -1,4 +1,5 @@
.classpath
+*.iml
.project
target
.settings
Modified: directory/shared/trunk/ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/SchemaConstants.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/SchemaConstants.java?view=diff&rev=558464&r1=558463&r2=558464
==============================================================================
--- directory/shared/trunk/ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/SchemaConstants.java (original)
+++ directory/shared/trunk/ldap-constants/src/main/java/org/apache/directory/shared/ldap/constants/SchemaConstants.java Sun Jul 22 00:16:30 2007
@@ -27,224 +27,239 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev:$
*/
-public class SchemaConstants
+public interface SchemaConstants
{
// ---- ObjectClasses -----------------------------------------------------
// Top
- public static final String TOP_OC = "top";
- public static final String TOP_OC_OID = "2.5.6.0";
+ String TOP_OC = "top";
+ String TOP_OC_OID = "2.5.6.0";
// Alias
- public static final String ALIAS_OC = "alias";
- public static final String ALIAS_OC_OID = "2.5.6.1";
+ String ALIAS_OC = "alias";
+ String ALIAS_OC_OID = "2.5.6.1";
// Country
- public static final String COUNTRY_OC = "country";
- public static final String COUNTRY_OC_OID = "2.5.6.2";
+ String COUNTRY_OC = "country";
+ String COUNTRY_OC_OID = "2.5.6.2";
// Locality
- public static final String LOCALITY_OC = "locality";
- public static final String LOCALITY_OC_OID = "2.5.6.3";
+ String LOCALITY_OC = "locality";
+ String LOCALITY_OC_OID = "2.5.6.3";
// Organization
- public static final String ORGANIZATION_OC = "organization";
- public static final String ORGANIZATION_OC_OID = "2.5.6.4";
+ String ORGANIZATION_OC = "organization";
+ String ORGANIZATION_OC_OID = "2.5.6.4";
// OrganizationalUnit
- public static final String ORGANIZATIONAL_UNIT_OC = "organizationalUnit";
- public static final String ORGANIZATIONAL_UNIT_OC_OID = "2.5.6.5";
+ String ORGANIZATIONAL_UNIT_OC = "organizationalUnit";
+ String ORGANIZATIONAL_UNIT_OC_OID = "2.5.6.5";
// Person
- public static final String PERSON_OC = "person";
- public static final String PERSON_OC_OID = "2.5.6.6";
+ String PERSON_OC = "person";
+ String PERSON_OC_OID = "2.5.6.6";
// OrganizationalPerson
- public static final String ORGANIZATIONAL_PERSON_OC = "organizationalPerson";
- public static final String ORGANIZATIONAL_PERSON_OC_OID = "2.5.6.7";
+ String ORGANIZATIONAL_PERSON_OC = "organizationalPerson";
+ String ORGANIZATIONAL_PERSON_OC_OID = "2.5.6.7";
// OrganizationalRole
- public static final String ORGANIZATIONAL_ROLE_OC = "organizationalRole";
- public static final String ORGANIZATIONAL_ROLE_OC_OID = "2.5.6.8";
+ String ORGANIZATIONAL_ROLE_OC = "organizationalRole";
+ String ORGANIZATIONAL_ROLE_OC_OID = "2.5.6.8";
// GroupOfNames
- public static final String GROUP_OF_NAMES_OC = "groupOfNames";
- public static final String GROUP_OF_NAMES_OC_OID = "2.5.6.9";
+ String GROUP_OF_NAMES_OC = "groupOfNames";
+ String GROUP_OF_NAMES_OC_OID = "2.5.6.9";
// ResidentialPerson
- public static final String RESIDENTIAL_PERSON_OC = "residentialPerson";
- public static final String RESIDENTIAL_PERSON_OC_OID = "2.5.6.10";
+ String RESIDENTIAL_PERSON_OC = "residentialPerson";
+ String RESIDENTIAL_PERSON_OC_OID = "2.5.6.10";
// GroupOfUniqueNames
- public static final String GROUP_OF_UNIQUE_NAMES_OC = "groupOfUniqueNames";
- public static final String GROUP_OF_UNIQUE_NAMES_OC_OID = "2.5.6.17";
+ String GROUP_OF_UNIQUE_NAMES_OC = "groupOfUniqueNames";
+ String GROUP_OF_UNIQUE_NAMES_OC_OID = "2.5.6.17";
// Subentry
- public static final String SUBENTRY_OC = "subentry";
- public static final String SUBENTRY_OC_OID = "2.5.17.0";
+ String SUBENTRY_OC = "subentry";
+ String SUBENTRY_OC_OID = "2.5.17.0";
// AccessControlSubentry
- public static final String ACCESS_CONTROL_SUBENTRY_OC = "accessControlSubentry";
- public static final String ACCESS_CONTROL_SUBENTRY_OC_OID = "2.5.17.1";
+ String ACCESS_CONTROL_SUBENTRY_OC = "accessControlSubentry";
+ String ACCESS_CONTROL_SUBENTRY_OC_OID = "2.5.17.1";
// Subschema
- public static final String SUBSCHEMA_OC = "subschema";
- public static final String SUBSCHEMA_OC_OID = "2.5.20.1";
+ String SUBSCHEMA_OC = "subschema";
+ String SUBSCHEMA_OC_OID = "2.5.20.1";
// InetOrgPerson
- public static final String INET_ORG_PERSON_OC = "inetOrgPerson";
- public static final String INET_ORG_PERSON_OC_OID = "2.16.840.1.113730.3.2.2";
+ String INET_ORG_PERSON_OC = "inetOrgPerson";
+ String INET_ORG_PERSON_OC_OID = "2.16.840.1.113730.3.2.2";
// ExtensibleObject
- public static final String EXTENSIBLE_OBJECT_OC = "extensibleObject";
- public static final String EXTENSIBLE_OBJECT_OC_OID = "1.3.6.1.4.1.1466.101.120.111";
+ String EXTENSIBLE_OBJECT_OC = "extensibleObject";
+ String EXTENSIBLE_OBJECT_OC_OID = "1.3.6.1.4.1.1466.101.120.111";
// ---- AttributeTypes ----------------------------------------------------
// ObjectClass
- public static final String OBJECT_CLASS_AT = "objectClass";
- public static final String OBJECT_CLASS_AT_OID = "2.5.4.0";
+ String OBJECT_CLASS_AT = "objectClass";
+ String OBJECT_CLASS_AT_OID = "2.5.4.0";
// AliasedObjectName
- public static final String ALIASED_OBJECT_NAME_AT = "aliasedObjectName";
- public static final String ALIASED_OBJECT_NAME_AT_OID = "2.5.4.1";
+ String ALIASED_OBJECT_NAME_AT = "aliasedObjectName";
+ String ALIASED_OBJECT_NAME_AT_OID = "2.5.4.1";
// Cn
- public static final String CN_AT = "cn";
- public static final String COMMON_NAME_AT = "commonName";
- public static final String CN_AT_OID = "2.5.4.3";
+ String CN_AT = "cn";
+ String COMMON_NAME_AT = "commonName";
+ String CN_AT_OID = "2.5.4.3";
// Sn
- public static final String SN_AT = "sn";
- public static final String SURNAME_AT = "surname";
- public static final String SN_AT_OID = "2.5.4.4";
+ String SN_AT = "sn";
+ String SURNAME_AT = "surname";
+ String SN_AT_OID = "2.5.4.4";
// Ou
- public static final String OU_AT = "ou";
- public static final String ORGANIZATIONAL_UNIT_NAME_AT = "organizationalUnitName";
- public static final String OU_AT_OID = "2.5.4.11";
+ String OU_AT = "ou";
+ String ORGANIZATIONAL_UNIT_NAME_AT = "organizationalUnitName";
+ String OU_AT_OID = "2.5.4.11";
// Member
- public static final String MEMBER_AT = "member";
- public static final String MEMBER_AT_OID = "2.5.4.31";
+ String MEMBER_AT = "member";
+ String MEMBER_AT_OID = "2.5.4.31";
// UserPassword
- public static final String USER_PASSWORD_AT = "userPassword";
- public static final String USER_PASSWORD_AT_OID = "2.5.4.35";
+ String USER_PASSWORD_AT = "userPassword";
+ String USER_PASSWORD_AT_OID = "2.5.4.35";
// UniqueMember
- public static final String UNIQUE_MEMBER_AT = "uniqueMember";
- public static final String UNIQUE_MEMBER_AT_OID = "2.5.4.50";
+ String UNIQUE_MEMBER_AT = "uniqueMember";
+ String UNIQUE_MEMBER_AT_OID = "2.5.4.50";
// CreateTimestamp
- public static final String CREATE_TIMESTAMP_AT = "createTimestamp";
- public static final String CREATE_TIMESTAMP_AT_OID = "2.5.18.1";
+ String CREATE_TIMESTAMP_AT = "createTimestamp";
+ String CREATE_TIMESTAMP_AT_OID = "2.5.18.1";
// ModifyTimestamp
- public static final String MODIFY_TIMESTAMP_AT = "modifyTimestamp";
- public static final String MODIFY_TIMESTAMP_AT_OID = "2.5.18.2";
+ String MODIFY_TIMESTAMP_AT = "modifyTimestamp";
+ String MODIFY_TIMESTAMP_AT_OID = "2.5.18.2";
// CreatorsName
- public static final String CREATORS_NAME_AT = "creatorsName";
- public static final String CREATORS_NAME_AT_OID = "2.5.18.3";
+ String CREATORS_NAME_AT = "creatorsName";
+ String CREATORS_NAME_AT_OID = "2.5.18.3";
// ModifiersName
- public static final String MODIFIERS_NAME_AT = "modifiersName";
- public static final String MODIFIERS_NAME_AT_OID = "2.5.18.4";
+ String MODIFIERS_NAME_AT = "modifiersName";
+ String MODIFIERS_NAME_AT_OID = "2.5.18.4";
// SubtreeSpecification
- public static final String SUBTREE_SPECIFICATION_AT = "subtreeSpecification";
- public static final String SUBTREE_SPECIFICATION_AT_OID = "2.5.18.6";
+ String SUBTREE_SPECIFICATION_AT = "subtreeSpecification";
+ String SUBTREE_SPECIFICATION_AT_OID = "2.5.18.6";
// SubschemaSubentry
- public static final String SUBSCHEMA_SUBENTRY_AT = "subschemaSubentry";
- public static final String SUBSCHEMA_SUBENTRY_AT_OID = "2.5.18.10";
+ String SUBSCHEMA_SUBENTRY_AT = "subschemaSubentry";
+ String SUBSCHEMA_SUBENTRY_AT_OID = "2.5.18.10";
// CollectiveAttributeSubentries
- public static final String COLLECTIVE_ATTRIBUTE_SUBENTRIES_AT = "collectiveAttributeSubentries";
- public static final String COLLECTIVE_ATTRIBUTE_SUBENTRIES_AT_OID = "2.5.18.12";
+ String COLLECTIVE_ATTRIBUTE_SUBENTRIES_AT = "collectiveAttributeSubentries";
+ String COLLECTIVE_ATTRIBUTE_SUBENTRIES_AT_OID = "2.5.18.12";
// DitStructureRules
- public static final String DIT_STRUCTURE_RULES_AT = "ditStructureRules";
- public static final String DIT_STRUCTURE_RULES_AT_OID = "2.5.21.1";
+ String DIT_STRUCTURE_RULES_AT = "ditStructureRules";
+ String DIT_STRUCTURE_RULES_AT_OID = "2.5.21.1";
// DitContentRules
- public static final String DIT_CONTENT_RULES_AT = "ditContentRules";
- public static final String DIT_CONTENT_RULES_AT_OID = "2.5.21.2";
+ String DIT_CONTENT_RULES_AT = "ditContentRules";
+ String DIT_CONTENT_RULES_AT_OID = "2.5.21.2";
// MatchingRules
- public static final String MATCHING_RULES_AT = "matchingRules";
- public static final String MATCHING_RULES_AT_OID = "2.5.21.4";
+ String MATCHING_RULES_AT = "matchingRules";
+ String MATCHING_RULES_AT_OID = "2.5.21.4";
// AttributeTypes
- public static final String ATTRIBUTE_TYPES_AT = "attributeTypes";
- public static final String ATTRIBUTE_TYPES_AT_OID = "2.5.21.5";
+ String ATTRIBUTE_TYPES_AT = "attributeTypes";
+ String ATTRIBUTE_TYPES_AT_OID = "2.5.21.5";
// ObjectClasses
- public static final String OBJECT_CLASSES_AT = "objectClasses";
- public static final String OBJECT_CLASSES_AT_OID = "2.5.21.6";
+ String OBJECT_CLASSES_AT = "objectClasses";
+ String OBJECT_CLASSES_AT_OID = "2.5.21.6";
// NameForms
- public static final String NAME_FORMS_AT = "nameForms";
- public static final String NAME_FORMS_AT_OID = "2.5.21.7";
+ String NAME_FORMS_AT = "nameForms";
+ String NAME_FORMS_AT_OID = "2.5.21.7";
// MatchingRuleUse
- public static final String MATCHING_RULE_USE_AT = "matchingRuleUse";
- public static final String MATCHING_RULE_USE_AT_OID = "2.5.21.8";
+ String MATCHING_RULE_USE_AT = "matchingRuleUse";
+ String MATCHING_RULE_USE_AT_OID = "2.5.21.8";
// StructuralObjectClass
- public static final String STRUCTURAL_OBJECT_CLASS_AT = "structuralObjectClass";
- public static final String STRUCTURAL_OBJECT_CLASS_AT_OID = "2.5.21.9";
+ String STRUCTURAL_OBJECT_CLASS_AT = "structuralObjectClass";
+ String STRUCTURAL_OBJECT_CLASS_AT_OID = "2.5.21.9";
// AccessControlScheme
- public static final String ACCESS_CONTROL_SCHEME_AT = "accessControlScheme";
- public static final String ACCESS_CONTROL_SCHEME_OID = "2.5.24.1";
+ String ACCESS_CONTROL_SCHEME_AT = "accessControlScheme";
+ String ACCESS_CONTROL_SCHEME_OID = "2.5.24.1";
// PrescriptiveACI
- public static final String PRESCRIPTIVE_ACI_AT = "prescriptiveACI";
- public static final String PRESCRIPTIVE_ACI_AT_OID = "2.5.24.4";
+ String PRESCRIPTIVE_ACI_AT = "prescriptiveACI";
+ String PRESCRIPTIVE_ACI_AT_OID = "2.5.24.4";
// EntryACI
- public static final String ENTRY_ACI_AT = "entryACI";
- public static final String ENTRY_ACI_AT_OID = "2.5.24.5";
+ String ENTRY_ACI_AT = "entryACI";
+ String ENTRY_ACI_AT_OID = "2.5.24.5";
// SubentryACI
- public static final String SUBENTRY_ACI_AT = "subentryACI";
- public static final String SUBENTRY_ACI_AT_OID = "2.5.24.6";
+ String SUBENTRY_ACI_AT = "subentryACI";
+ String SUBENTRY_ACI_AT_OID = "2.5.24.6";
// Uid
- public static final String UID_AT = "uid";
- public static final String USER_ID_AT = "userid";
- public static final String UID_AT_OID = "0.9.2342.19200300.100.1.1";
+ String UID_AT = "uid";
+ String USER_ID_AT = "userid";
+ String UID_AT_OID = "0.9.2342.19200300.100.1.1";
// UidObject
- public static final String UID_OBJECT_AT = "uidObject";
- public static final String UID_OBJECT_AT_OID = "1.3.6.1.1.3.1";
+ String UID_OBJECT_AT = "uidObject";
+ String UID_OBJECT_AT_OID = "1.3.6.1.1.3.1";
// LdapSyntaxes
- public static final String LDAP_SYNTAXES_AT = "ldapSyntaxes";
- public static final String LDAP_SYNTAXES_AT_OID = "1.3.6.1.4.1.1466.101.120.16";
+ String LDAP_SYNTAXES_AT = "ldapSyntaxes";
+ String LDAP_SYNTAXES_AT_OID = "1.3.6.1.4.1.1466.101.120.16";
// AccessControlSubentries
- public static final String ACCESS_CONTROL_SUBENTRIES_AT = "accessControlSubentries";
- public static final String ACCESS_CONTROL_SUBENTRIES_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.11";
+ String ACCESS_CONTROL_SUBENTRIES_AT = "accessControlSubentries";
+ String ACCESS_CONTROL_SUBENTRIES_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.11";
// TriggerExecutionSubentries
- public static final String TRIGGER_EXECUTION_SUBENTRIES_AT = "triggerExecutionSubentries";
- public static final String TRIGGER_EXECUTION_SUBENTRIES_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.27";
+ String TRIGGER_EXECUTION_SUBENTRIES_AT = "triggerExecutionSubentries";
+ String TRIGGER_EXECUTION_SUBENTRIES_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.27";
// Comparators
- public static final String COMPARATORS_AT = "comparators";
- public static final String COMPARATORS_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.32";
+ String COMPARATORS_AT = "comparators";
+ String COMPARATORS_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.32";
// Normalizers
- public static final String NORMALIZERS_AT = "normalizers";
- public static final String NORMALIZERS_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.33";
+ String NORMALIZERS_AT = "normalizers";
+ String NORMALIZERS_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.33";
// SyntaxCheckers
- public static final String SYNTAX_CHECKERS_AT = "syntaxCheckers";
- public static final String SYNTAX_CHECKERS_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.34";
+ String SYNTAX_CHECKERS_AT = "syntaxCheckers";
+ String SYNTAX_CHECKERS_AT_OID = "1.3.6.1.4.1.18060.0.4.1.2.34";
// DisplayName
- public static final String DISPLAY_NAME_AT = "displayName";
- public static final String DISPLAY_NAME_AT_OID = "2.16.840.1.113730.3.1.241";
+ String DISPLAY_NAME_AT = "displayName";
+ String DISPLAY_NAME_AT_OID = "2.16.840.1.113730.3.1.241";
+
+ // ---- Syntaxes -----------------------------------------------------
+
+ String BINARY_SYNTAX = "1.3.6.1.4.1.1466.115.121.1.5";
+ String BIT_STRING_SYNTAX = "1.3.6.1.4.1.1466.115.121.1.6";
+ String BOOLEAN_SYNTAX = "1.3.6.1.4.1.1466.115.121.1.7";
+ String GENERALIZED_TIME_SYNTAX = "1.3.6.1.4.1.1466.115.121.1.24";
+ String INTEGER_SYNTAX = "1.3.6.1.4.1.1466.115.121.1.27";
+ String UTC_TIME_SYNTAX = "1.3.6.1.4.1.1466.115.121.1.53";
+
+ String JAVA_BYTE_SYNTAX = "1.3.6.1.4.1.18060.0.4.1.0.0";
+ String JAVA_CHAR_SYNTAX = "1.3.6.1.4.1.18060.0.4.1.0.1";
+ String JAVA_SHORT_SYNTAX = "1.3.6.1.4.1.18060.0.4.1.0.2";
+ String JAVA_LONG_SYNTAX = "1.3.6.1.4.1.18060.0.4.1.0.3";
+ String JAVA_INT_SYNTAX = "1.3.6.1.4.1.18060.0.4.1.0.4";
}
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/AbstractSchemaDescription.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/AbstractSchemaDescription.java?view=diff&rev=558464&r1=558463&r2=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/AbstractSchemaDescription.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/AbstractSchemaDescription.java Sun Jul 22 00:16:30 2007
@@ -92,4 +92,20 @@
extensions.put( key, values );
}
+
+ public int hashCode()
+ {
+ return numericOid.hashCode();
+ }
+
+
+ public boolean equals( Object obj )
+ {
+ if ( ! ( obj instanceof AbstractSchemaDescription ) )
+ {
+ return false;
+ }
+
+ return ( ( AbstractSchemaDescription ) obj ).numericOid.equals( numericOid );
+ }
}
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BinarySyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BinarySyntaxChecker.java?view=diff&rev=558464&r1=558463&r2=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BinarySyntaxChecker.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BinarySyntaxChecker.java Sun Jul 22 00:16:30 2007
@@ -19,6 +19,8 @@
*/
package org.apache.directory.shared.ldap.schema.syntax;
+import org.apache.directory.shared.ldap.constants.SchemaConstants;
+
/**
* A binary value (universal value acceptor) syntax checker.
@@ -29,8 +31,6 @@
public class BinarySyntaxChecker extends AbstractSyntaxChecker
{
/** the Apache assigned internal OID for this syntax checker */
- private static final String SC_OID = "1.3.6.1.4.1.1466.115.121.1.5";
-
public static final SyntaxChecker INSTANCE = new BinarySyntaxChecker();
@@ -39,7 +39,7 @@
*/
public BinarySyntaxChecker()
{
- super( SC_OID );
+ super( SchemaConstants.BINARY_SYNTAX );
}
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BitStringSyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BitStringSyntaxChecker.java?view=diff&rev=558464&r1=558463&r2=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BitStringSyntaxChecker.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BitStringSyntaxChecker.java Sun Jul 22 00:16:30 2007
@@ -21,6 +21,7 @@
import org.apache.directory.shared.ldap.util.StringTools;
+import org.apache.directory.shared.ldap.constants.SchemaConstants;
/**
@@ -38,9 +39,6 @@
*/
public class BitStringSyntaxChecker extends AbstractSyntaxChecker
{
- /** The Syntax OID, according to RFC 4517, par. 3.3.2 */
- private static final String SC_OID = "1.3.6.1.4.1.1466.115.121.1.6";
-
/**
*
* Creates a new instance of BitStringSyntaxChecker.
@@ -48,7 +46,7 @@
*/
public BitStringSyntaxChecker()
{
- super( SC_OID );
+ super( SchemaConstants.BIT_STRING_SYNTAX );
}
/**
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BooleanSyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BooleanSyntaxChecker.java?view=diff&rev=558464&r1=558463&r2=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BooleanSyntaxChecker.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/BooleanSyntaxChecker.java Sun Jul 22 00:16:30 2007
@@ -21,6 +21,7 @@
import org.apache.directory.shared.ldap.util.StringTools;
+import org.apache.directory.shared.ldap.constants.SchemaConstants;
/**
@@ -36,9 +37,6 @@
*/
public class BooleanSyntaxChecker extends AbstractSyntaxChecker
{
- /** The Syntax OID, according to RFC 4517, par. 3.3.3 */
- private static final String SC_OID = "1.3.6.1.4.1.1466.115.121.1.7";
-
/**
*
* Creates a new instance of BooleanSyntaxChecker.
@@ -46,7 +44,7 @@
*/
public BooleanSyntaxChecker()
{
- super( SC_OID );
+ super( SchemaConstants.BOOLEAN_SYNTAX );
}
/**
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/GeneralizedTimeSyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/GeneralizedTimeSyntaxChecker.java?view=diff&rev=558464&r1=558463&r2=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/GeneralizedTimeSyntaxChecker.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/GeneralizedTimeSyntaxChecker.java Sun Jul 22 00:16:30 2007
@@ -23,6 +23,7 @@
import java.util.regex.Pattern;
import org.apache.directory.shared.ldap.util.StringTools;
+import org.apache.directory.shared.ldap.constants.SchemaConstants;
/**
@@ -66,9 +67,6 @@
*/
public class GeneralizedTimeSyntaxChecker extends AbstractSyntaxChecker
{
- /** The Syntax OID, according to RFC 4517, par. 3.3.13 */
- private static final String SC_OID = "1.3.6.1.4.1.1466.115.121.1.24";
-
/** The GeneralizedDate pattern matching */
private static final String GENERALIZED_TIME_PATTERN =
"^\\d{4}" + // century + year : 0000 to 9999
@@ -92,7 +90,7 @@
*/
public GeneralizedTimeSyntaxChecker()
{
- super( SC_OID );
+ super( SchemaConstants.GENERALIZED_TIME_SYNTAX );
}
/**
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/IntegerSyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/IntegerSyntaxChecker.java?view=diff&rev=558464&r1=558463&r2=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/IntegerSyntaxChecker.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/IntegerSyntaxChecker.java Sun Jul 22 00:16:30 2007
@@ -21,6 +21,7 @@
import org.apache.directory.shared.ldap.util.StringTools;
+import org.apache.directory.shared.ldap.constants.SchemaConstants;
/**
@@ -42,9 +43,6 @@
*/
public class IntegerSyntaxChecker extends AbstractSyntaxChecker
{
- /** The Syntax OID, according to RFC 4517, par. 3.3.16 */
- private static final String SC_OID = "1.3.6.1.4.1.1466.115.121.1.27";
-
/**
*
* Creates a new instance of IntegerSyntaxChecker.
@@ -52,7 +50,7 @@
*/
public IntegerSyntaxChecker()
{
- super( SC_OID );
+ super( SchemaConstants.INTEGER_SYNTAX );
}
Added: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaByteSyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaByteSyntaxChecker.java?view=auto&rev=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaByteSyntaxChecker.java (added)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaByteSyntaxChecker.java Sun Jul 22 00:16:30 2007
@@ -0,0 +1,159 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.shared.ldap.schema.syntax;
+
+import org.apache.directory.shared.ldap.constants.SchemaConstants;
+import org.apache.directory.shared.ldap.util.StringTools;
+
+/**
+ * A SyntaxChecker which verifies that a value is a valid Java primitive short or
+ * the Short wrapper. Essentially this constrains the min and max values of
+ * the Integer.
+ *
+ * From RFC 4517 :
+ *
+ * Integer = ( HYPHEN LDIGIT *DIGIT ) | number
+ *
+ * From RFC 4512 :
+ * number = DIGIT | ( LDIGIT 1*DIGIT )
+ * DIGIT = %x30 | LDIGIT ; "0"-"9"
+ * LDIGIT = %x31-39 ; "1"-"9"
+ * HYPHEN = %x2D ; hyphen ("-")
+ *
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class JavaByteSyntaxChecker extends AbstractSyntaxChecker
+{
+ /**
+ *
+ * Creates a new instance of JavaByteSyntaxChecker.
+ *
+ */
+ public JavaByteSyntaxChecker()
+ {
+ super( SchemaConstants.JAVA_BYTE_SYNTAX );
+ }
+
+
+ /**
+ *
+ * Creates a new instance of JavaByteSyntaxChecker.
+ *
+ * @param oid the oid to associate with this new SyntaxChecker
+ *
+ */
+ protected JavaByteSyntaxChecker( String oid )
+ {
+ super( oid );
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.directory.shared.ldap.schema.SyntaxChecker#isValidSyntax(java.lang.Object)
+ */
+ public boolean isValidSyntax( Object value )
+ {
+ String strValue;
+
+ if ( value == null )
+ {
+ return false;
+ }
+
+ if ( value instanceof String )
+ {
+ strValue = ( String ) value;
+ }
+ else if ( value instanceof byte[] )
+ {
+ strValue = StringTools.utf8ToString( ( byte[] ) value );
+ }
+ else
+ {
+ strValue = value.toString();
+ }
+
+ if ( strValue.length() == 0 )
+ {
+ return false;
+ }
+
+ // The first char must be either a '-' or in [0..9].
+ // If it's a '0', then there should be any other char after
+ int pos = 0;
+ char c = strValue.charAt( pos );
+
+ if ( c == '-' )
+ {
+ pos = 1;
+ }
+ else if ( !StringTools.isDigit( c ) )
+ {
+ return false;
+ }
+ else if ( c == '0' )
+ {
+ if ( strValue.length() > 1 )
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ // We must have at least a digit which is not '0'
+ if ( !StringTools.isDigit( strValue, pos ) )
+ {
+ return false;
+ }
+ else if ( StringTools.isCharASCII( strValue, pos, '0' ) )
+ {
+ return false;
+ }
+ else
+ {
+ pos++;
+ }
+
+ while ( StringTools.isDigit( strValue, pos) )
+ {
+ pos++;
+ }
+
+ if ( pos != strValue.length() )
+ {
+ return false;
+ }
+
+ // Should get a NumberFormatException for Byte values out of range
+ try
+ {
+ Byte.valueOf( strValue );
+ return true;
+ }
+ catch ( NumberFormatException e )
+ {
+ return false;
+ }
+ }
+}
Added: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaByteSyntaxCheckerTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaByteSyntaxCheckerTest.java?view=auto&rev=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaByteSyntaxCheckerTest.java (added)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaByteSyntaxCheckerTest.java Sun Jul 22 00:16:30 2007
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.shared.ldap.schema.syntax;
+
+import junit.framework.TestCase;
+
+/**
+ * Test cases for JavaByteSyntaxChecker.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class JavaByteSyntaxCheckerTest extends TestCase
+{
+ JavaByteSyntaxChecker checker = new JavaByteSyntaxChecker();
+
+
+ public void testNullString()
+ {
+ assertFalse( checker.isValidSyntax( null ) );
+ }
+
+
+ public void testEmptyString()
+ {
+ assertFalse( checker.isValidSyntax( "" ) );
+ }
+
+
+ public void testOneCharString()
+ {
+ assertFalse( checker.isValidSyntax( "f" ) );
+ assertFalse( checker.isValidSyntax( "-" ) );
+ }
+
+
+ public void testWrongCase()
+ {
+ assertFalse( checker.isValidSyntax( "000" ) );
+ assertFalse( checker.isValidSyntax( "-0" ) );
+ assertFalse( checker.isValidSyntax( " 1" ) );
+ assertFalse( checker.isValidSyntax( "1 " ) );
+ }
+
+
+ public void testCorrectCase()
+ {
+ assertTrue( checker.isValidSyntax( "1" ) );
+ assertTrue( checker.isValidSyntax( "10" ) );
+ assertTrue( checker.isValidSyntax( "111" ) );
+ assertTrue( checker.isValidSyntax( "-1" ) );
+ assertTrue( checker.isValidSyntax( "-123" ) );
+ assertTrue( checker.isValidSyntax( "123" ) );
+ }
+
+
+ public void testMinValueBoundry()
+ {
+ int min = Byte.MIN_VALUE;
+ assertTrue( checker.isValidSyntax( Integer.toString( min ) ) );
+ min--;
+ assertFalse( checker.isValidSyntax( Integer.toString( min ) ) );
+ min--;
+ assertFalse( checker.isValidSyntax( Integer.toString( min ) ) );
+ }
+
+
+ public void testMaxValueBoundry()
+ {
+ int max = Byte.MAX_VALUE;
+ assertTrue( checker.isValidSyntax( Integer.toString( max ) ) );
+ max++;
+ assertFalse( checker.isValidSyntax( Integer.toString( max ) ) );
+ max++;
+ assertFalse( checker.isValidSyntax( Integer.toString( max ) ) );
+ }
+}
Added: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaIntegerSyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaIntegerSyntaxChecker.java?view=auto&rev=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaIntegerSyntaxChecker.java (added)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaIntegerSyntaxChecker.java Sun Jul 22 00:16:30 2007
@@ -0,0 +1,152 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.shared.ldap.schema.syntax;
+
+import org.apache.directory.shared.ldap.constants.SchemaConstants;
+import org.apache.directory.shared.ldap.util.StringTools;
+
+
+/**
+ * A SyntaxChecker which verifies that a value is a valid Java primitive int or
+ * the Integer wrapper. Essentially this constrains the min and max values of
+ * the Integer.
+ *
+ * From RFC 4517 :
+ *
+ * Integer = ( HYPHEN LDIGIT *DIGIT ) | number
+ *
+ * From RFC 4512 :
+ * number = DIGIT | ( LDIGIT 1*DIGIT )
+ * DIGIT = %x30 | LDIGIT ; "0"-"9"
+ * LDIGIT = %x31-39 ; "1"-"9"
+ * HYPHEN = %x2D ; hyphen ("-")
+ *
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class JavaIntegerSyntaxChecker extends AbstractSyntaxChecker
+{
+ /**
+ *
+ * Creates a new instance of IntegerSyntaxChecker.
+ *
+ */
+ public JavaIntegerSyntaxChecker()
+ {
+ super( SchemaConstants.JAVA_INT_SYNTAX );
+ }
+
+
+ /**
+ *
+ * Creates a new instance of IntegerSyntaxChecker.
+ *
+ * @param oid the oid to associate with this new SyntaxChecker
+ *
+ */
+ protected JavaIntegerSyntaxChecker( String oid )
+ {
+ super( oid );
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.directory.shared.ldap.schema.SyntaxChecker#isValidSyntax(java.lang.Object)
+ */
+ public boolean isValidSyntax( Object value )
+ {
+ String strValue;
+
+ if ( value == null )
+ {
+ return false;
+ }
+
+ if ( value instanceof String )
+ {
+ strValue = ( String ) value;
+ }
+ else if ( value instanceof byte[] )
+ {
+ strValue = StringTools.utf8ToString( ( byte[] ) value );
+ }
+ else
+ {
+ strValue = value.toString();
+ }
+
+ if ( strValue.length() == 0 )
+ {
+ return false;
+ }
+
+ // The first char must be either a '-' or in [0..9].
+ // If it's a '0', then there should be any other char after
+ int pos = 0;
+ char c = strValue.charAt( pos );
+
+ if ( c == '-' )
+ {
+ pos = 1;
+ }
+ else if ( !StringTools.isDigit( c ) )
+ {
+ return false;
+ }
+ else if ( c == '0' )
+ {
+ return strValue.length() <= 1;
+ }
+
+ // We must have at least a digit which is not '0'
+ if ( !StringTools.isDigit( strValue, pos ) )
+ {
+ return false;
+ }
+ else if ( StringTools.isCharASCII( strValue, pos, '0' ) )
+ {
+ return false;
+ }
+ else
+ {
+ pos++;
+ }
+
+ while ( StringTools.isDigit( strValue, pos) )
+ {
+ pos++;
+ }
+
+ if ( pos != strValue.length() )
+ {
+ return false;
+ }
+
+ try
+ {
+ Integer.valueOf( strValue );
+ return true;
+ }
+ catch ( NumberFormatException e )
+ {
+ return false;
+ }
+ }
+}
Added: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaLongSyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaLongSyntaxChecker.java?view=auto&rev=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaLongSyntaxChecker.java (added)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaLongSyntaxChecker.java Sun Jul 22 00:16:30 2007
@@ -0,0 +1,159 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.shared.ldap.schema.syntax;
+
+import org.apache.directory.shared.ldap.constants.SchemaConstants;
+import org.apache.directory.shared.ldap.util.StringTools;
+
+/**
+ * A SyntaxChecker which verifies that a value is a valid Java primitive long or
+ * the Long wrapper. Essentially this constrains the min and max values of
+ * the Integer.
+ *
+ * From RFC 4517 :
+ *
+ * Integer = ( HYPHEN LDIGIT *DIGIT ) | number
+ *
+ * From RFC 4512 :
+ * number = DIGIT | ( LDIGIT 1*DIGIT )
+ * DIGIT = %x30 | LDIGIT ; "0"-"9"
+ * LDIGIT = %x31-39 ; "1"-"9"
+ * HYPHEN = %x2D ; hyphen ("-")
+ *
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class JavaLongSyntaxChecker extends AbstractSyntaxChecker
+{
+ /**
+ *
+ * Creates a new instance of JavaLongSyntaxChecker.
+ *
+ */
+ public JavaLongSyntaxChecker()
+ {
+ super( SchemaConstants.JAVA_LONG_SYNTAX );
+ }
+
+
+ /**
+ *
+ * Creates a new instance of JavaLongSyntaxChecker.
+ *
+ * @param oid the oid to associate with this new SyntaxChecker
+ *
+ */
+ protected JavaLongSyntaxChecker( String oid )
+ {
+ super( oid );
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.directory.shared.ldap.schema.SyntaxChecker#isValidSyntax(java.lang.Object)
+ */
+ public boolean isValidSyntax( Object value )
+ {
+ String strValue;
+
+ if ( value == null )
+ {
+ return false;
+ }
+
+ if ( value instanceof String )
+ {
+ strValue = ( String ) value;
+ }
+ else if ( value instanceof byte[] )
+ {
+ strValue = StringTools.utf8ToString( ( byte[] ) value );
+ }
+ else
+ {
+ strValue = value.toString();
+ }
+
+ if ( strValue.length() == 0 )
+ {
+ return false;
+ }
+
+ // The first char must be either a '-' or in [0..9].
+ // If it's a '0', then there should be any other char after
+ int pos = 0;
+ char c = strValue.charAt( pos );
+
+ if ( c == '-' )
+ {
+ pos = 1;
+ }
+ else if ( !StringTools.isDigit( c ) )
+ {
+ return false;
+ }
+ else if ( c == '0' )
+ {
+ if ( strValue.length() > 1 )
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ // We must have at least a digit which is not '0'
+ if ( !StringTools.isDigit( strValue, pos ) )
+ {
+ return false;
+ }
+ else if ( StringTools.isCharASCII( strValue, pos, '0' ) )
+ {
+ return false;
+ }
+ else
+ {
+ pos++;
+ }
+
+ while ( StringTools.isDigit( strValue, pos) )
+ {
+ pos++;
+ }
+
+ if ( pos != strValue.length() )
+ {
+ return false;
+ }
+
+ // Should get a NumberFormatException for Byte values out of range
+ try
+ {
+ Long.valueOf( strValue );
+ return true;
+ }
+ catch ( NumberFormatException e )
+ {
+ return false;
+ }
+ }
+}
Added: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaLongSyntaxCheckerTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaLongSyntaxCheckerTest.java?view=auto&rev=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaLongSyntaxCheckerTest.java (added)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaLongSyntaxCheckerTest.java Sun Jul 22 00:16:30 2007
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.shared.ldap.schema.syntax;
+
+import junit.framework.TestCase;
+
+import java.math.BigInteger;
+
+/**
+ * Test cases for JavaLongSyntaxChecker.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class JavaLongSyntaxCheckerTest extends TestCase
+{
+ JavaLongSyntaxChecker checker = new JavaLongSyntaxChecker();
+
+
+ public void testNullString()
+ {
+ assertFalse( checker.isValidSyntax( null ) );
+ }
+
+
+ public void testEmptyString()
+ {
+ assertFalse( checker.isValidSyntax( "" ) );
+ }
+
+
+ public void testOneCharString()
+ {
+ assertFalse( checker.isValidSyntax( "f" ) );
+ assertFalse( checker.isValidSyntax( "-" ) );
+ }
+
+
+ public void testWrongCase()
+ {
+ assertFalse( checker.isValidSyntax( "000" ) );
+ assertFalse( checker.isValidSyntax( "-0" ) );
+ assertFalse( checker.isValidSyntax( " 1" ) );
+ assertFalse( checker.isValidSyntax( "1 " ) );
+ }
+
+
+ public void testCorrectCase()
+ {
+ assertTrue( checker.isValidSyntax( "1" ) );
+ assertTrue( checker.isValidSyntax( "10" ) );
+ assertTrue( checker.isValidSyntax( "111" ) );
+ assertTrue( checker.isValidSyntax( "-1" ) );
+ assertTrue( checker.isValidSyntax( "-123" ) );
+ assertTrue( checker.isValidSyntax( "123" ) );
+ }
+
+
+ public void testMinValueBoundry()
+ {
+ BigInteger min = new BigInteger( Long.toString( Long.MIN_VALUE ) );
+ assertTrue( checker.isValidSyntax( min.toString() ) );
+ min = min.subtract( BigInteger.ONE );
+ assertFalse( checker.isValidSyntax( min.toString() ) );
+ min = min.subtract( BigInteger.ONE );
+ assertFalse( checker.isValidSyntax( min.toString() ) );
+ }
+
+
+ public void testMaxValueBoundry()
+ {
+ BigInteger max = new BigInteger( Long.toString( Long.MAX_VALUE ) );
+ assertTrue( checker.isValidSyntax( max.toString() ) );
+ max = max.add( BigInteger.ONE );
+ assertFalse( checker.isValidSyntax( max.toString() ) );
+ max = max.add( BigInteger.ONE );
+ assertFalse( checker.isValidSyntax( max.toString() ) );
+ }
+}
Added: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaShortSyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaShortSyntaxChecker.java?view=auto&rev=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaShortSyntaxChecker.java (added)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaShortSyntaxChecker.java Sun Jul 22 00:16:30 2007
@@ -0,0 +1,159 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.shared.ldap.schema.syntax;
+
+import org.apache.directory.shared.ldap.constants.SchemaConstants;
+import org.apache.directory.shared.ldap.util.StringTools;
+
+/**
+ * A SyntaxChecker which verifies that a value is a valid Java primitive int or
+ * the Integer wrapper. Essentially this constrains the min and max values of
+ * the Integer.
+ *
+ * From RFC 4517 :
+ *
+ * Integer = ( HYPHEN LDIGIT *DIGIT ) | number
+ *
+ * From RFC 4512 :
+ * number = DIGIT | ( LDIGIT 1*DIGIT )
+ * DIGIT = %x30 | LDIGIT ; "0"-"9"
+ * LDIGIT = %x31-39 ; "1"-"9"
+ * HYPHEN = %x2D ; hyphen ("-")
+ *
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class JavaShortSyntaxChecker extends AbstractSyntaxChecker
+{
+ /**
+ *
+ * Creates a new instance of IntegerSyntaxChecker.
+ *
+ */
+ public JavaShortSyntaxChecker()
+ {
+ super( SchemaConstants.JAVA_SHORT_SYNTAX );
+ }
+
+
+ /**
+ *
+ * Creates a new instance of IntegerSyntaxChecker.
+ *
+ * @param oid the oid to associate with this new SyntaxChecker
+ *
+ */
+ protected JavaShortSyntaxChecker( String oid )
+ {
+ super( oid );
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.directory.shared.ldap.schema.SyntaxChecker#isValidSyntax(java.lang.Object)
+ */
+ public boolean isValidSyntax( Object value )
+ {
+ String strValue;
+
+ if ( value == null )
+ {
+ return false;
+ }
+
+ if ( value instanceof String )
+ {
+ strValue = ( String ) value;
+ }
+ else if ( value instanceof byte[] )
+ {
+ strValue = StringTools.utf8ToString( ( byte[] ) value );
+ }
+ else
+ {
+ strValue = value.toString();
+ }
+
+ if ( strValue.length() == 0 )
+ {
+ return false;
+ }
+
+ // The first char must be either a '-' or in [0..9].
+ // If it's a '0', then there should be any other char after
+ int pos = 0;
+ char c = strValue.charAt( pos );
+
+ if ( c == '-' )
+ {
+ pos = 1;
+ }
+ else if ( !StringTools.isDigit( c ) )
+ {
+ return false;
+ }
+ else if ( c == '0' )
+ {
+ if ( strValue.length() > 1 )
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ // We must have at least a digit which is not '0'
+ if ( !StringTools.isDigit( strValue, pos ) )
+ {
+ return false;
+ }
+ else if ( StringTools.isCharASCII( strValue, pos, '0' ) )
+ {
+ return false;
+ }
+ else
+ {
+ pos++;
+ }
+
+ while ( StringTools.isDigit( strValue, pos) )
+ {
+ pos++;
+ }
+
+ if ( pos != strValue.length() )
+ {
+ return false;
+ }
+
+ // Should get a NumberFormatException for Byte values out of range
+ try
+ {
+ Short.valueOf( strValue );
+ return true;
+ }
+ catch ( NumberFormatException e )
+ {
+ return false;
+ }
+ }
+}
Added: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaShortSyntaxCheckerTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaShortSyntaxCheckerTest.java?view=auto&rev=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaShortSyntaxCheckerTest.java (added)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/JavaShortSyntaxCheckerTest.java Sun Jul 22 00:16:30 2007
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.shared.ldap.schema.syntax;
+
+import junit.framework.TestCase;
+
+/**
+ * Test cases for JavaShortSyntaxChecker.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class JavaShortSyntaxCheckerTest extends TestCase
+{
+ JavaShortSyntaxChecker checker = new JavaShortSyntaxChecker();
+
+
+ public void testNullString()
+ {
+ assertFalse( checker.isValidSyntax( null ) );
+ }
+
+
+ public void testEmptyString()
+ {
+ assertFalse( checker.isValidSyntax( "" ) );
+ }
+
+
+ public void testOneCharString()
+ {
+ assertFalse( checker.isValidSyntax( "f" ) );
+ assertFalse( checker.isValidSyntax( "-" ) );
+ }
+
+
+ public void testWrongCase()
+ {
+ assertFalse( checker.isValidSyntax( "000" ) );
+ assertFalse( checker.isValidSyntax( "-0" ) );
+ assertFalse( checker.isValidSyntax( " 1" ) );
+ assertFalse( checker.isValidSyntax( "1 " ) );
+ }
+
+
+ public void testCorrectCase()
+ {
+ assertTrue( checker.isValidSyntax( "1" ) );
+ assertTrue( checker.isValidSyntax( "10" ) );
+ assertTrue( checker.isValidSyntax( "111" ) );
+ assertTrue( checker.isValidSyntax( "-1" ) );
+ assertTrue( checker.isValidSyntax( "-123" ) );
+ assertTrue( checker.isValidSyntax( "123" ) );
+ }
+
+
+ public void testMinValueBoundry()
+ {
+ int min = Short.MIN_VALUE;
+ assertTrue( checker.isValidSyntax( Integer.toString( min ) ) );
+ min--;
+ assertFalse( checker.isValidSyntax( Integer.toString( min ) ) );
+ min--;
+ assertFalse( checker.isValidSyntax( Integer.toString( min ) ) );
+ }
+
+
+ public void testMaxValueBoundry()
+ {
+ int max = Short.MAX_VALUE;
+ assertTrue( checker.isValidSyntax( Integer.toString( max ) ) );
+ max++;
+ assertFalse( checker.isValidSyntax( Integer.toString( max ) ) );
+ max++;
+ assertFalse( checker.isValidSyntax( Integer.toString( max ) ) );
+ }
+}
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/UtcTimeSyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/UtcTimeSyntaxChecker.java?view=diff&rev=558464&r1=558463&r2=558464
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/UtcTimeSyntaxChecker.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/syntax/UtcTimeSyntaxChecker.java Sun Jul 22 00:16:30 2007
@@ -23,6 +23,7 @@
import java.util.regex.Pattern;
import org.apache.directory.shared.ldap.util.StringTools;
+import org.apache.directory.shared.ldap.constants.SchemaConstants;
/**
@@ -60,9 +61,6 @@
*/
public class UtcTimeSyntaxChecker extends AbstractSyntaxChecker
{
- /** The Syntax OID, according to RFC 4517, par. 3.3.34 */
- private static final String SC_OID = "1.3.6.1.4.1.1466.115.121.1.53";
-
/** The GeneralizedDate pattern matching */
private static final String UTC_TIME_PATTERN =
"^\\d{2}" + // year : 00 to 99
@@ -85,7 +83,7 @@
*/
public UtcTimeSyntaxChecker()
{
- super( SC_OID );
+ super( SchemaConstants.UTC_TIME_SYNTAX );
}
Added: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/JavaIntegerSyntaxCheckerTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/JavaIntegerSyntaxCheckerTest.java?view=auto&rev=558464
==============================================================================
--- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/JavaIntegerSyntaxCheckerTest.java (added)
+++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/schema/syntax/JavaIntegerSyntaxCheckerTest.java Sun Jul 22 00:16:30 2007
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.shared.ldap.schema.syntax;
+
+import junit.framework.TestCase;
+
+import java.math.BigInteger;
+
+/**
+ * Test cases for IntegerSyntaxChecker.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$
+ */
+public class JavaIntegerSyntaxCheckerTest extends TestCase
+{
+ JavaIntegerSyntaxChecker checker = new JavaIntegerSyntaxChecker();
+
+
+ public void testNullString()
+ {
+ assertFalse( checker.isValidSyntax( null ) );
+ }
+
+
+ public void testEmptyString()
+ {
+ assertFalse( checker.isValidSyntax( "" ) );
+ }
+
+
+ public void testOneCharString()
+ {
+ assertFalse( checker.isValidSyntax( "f" ) );
+ assertFalse( checker.isValidSyntax( "-" ) );
+ }
+
+
+ public void testWrongCase()
+ {
+ assertFalse( checker.isValidSyntax( "000" ) );
+ assertFalse( checker.isValidSyntax( "-0" ) );
+ assertFalse( checker.isValidSyntax( " 1" ) );
+ assertFalse( checker.isValidSyntax( "1 " ) );
+ }
+
+
+ public void testCorrectCase()
+ {
+ assertTrue( checker.isValidSyntax( "1" ) );
+ assertTrue( checker.isValidSyntax( "10" ) );
+ assertTrue( checker.isValidSyntax( "1111" ) );
+ assertTrue( checker.isValidSyntax( "-1" ) );
+ assertTrue( checker.isValidSyntax( "-1234567891" ) );
+ assertTrue( checker.isValidSyntax( "123456789" ) );
+ }
+
+
+ public void testMinValueBoundry()
+ {
+ BigInteger min = new BigInteger( Integer.toString( Integer.MIN_VALUE ) );
+ assertTrue( checker.isValidSyntax( min.toString() ) );
+ min = min.subtract( BigInteger.ONE );
+ assertFalse( checker.isValidSyntax( min.toString() ) );
+ min = min.subtract( BigInteger.ONE );
+ assertFalse( checker.isValidSyntax( min.toString() ) );
+ }
+
+
+ public void testMaxValueBoundry()
+ {
+ BigInteger max = new BigInteger( Integer.toString( Integer.MAX_VALUE ) );
+ assertTrue( checker.isValidSyntax( max.toString() ) );
+ max = max.add( BigInteger.ONE );
+ assertFalse( checker.isValidSyntax( max.toString() ) );
+ max = max.add( BigInteger.ONE );
+ assertFalse( checker.isValidSyntax( max.toString() ) );
+ }
+}
Modified: directory/shared/trunk/ldap/xdocs/index.xml
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/xdocs/index.xml?view=diff&rev=558464&r1=558463&r2=558464
==============================================================================
--- directory/shared/trunk/ldap/xdocs/index.xml (original)
+++ directory/shared/trunk/ldap/xdocs/index.xml Sun Jul 22 00:16:30 2007
@@ -24,11 +24,11 @@
<p>
The The LDAP Data Interchange Format (LDIF) parsing
package Parses an LDIF into a multimap or a JNDI
- Attributes instance of attribute key/value pairs with
- potential more than one attribute value per attribute.
+ Attributes instance of attributeToPropertyMapping key/value pairs with
+ potential more than one attributeToPropertyMapping value per attributeToPropertyMapping.
This parser populates the MultiMap or Attributes
- instance with all attributes within the LDIF including
- control attributes like the 'dn' and the changeType.
+ instance with all attributeToPropertyMappings within the LDIF including
+ control attributeToPropertyMappings like the 'dn' and the changeType.
</p>
<p>
The package contain an LDIF entry class that can be used. Along