You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2009/08/25 20:12:12 UTC
svn commit: r807740 -
/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/
Author: elecharny
Date: Tue Aug 25 18:12:12 2009
New Revision: 807740
URL: http://svn.apache.org/viewvc?rev=807740&view=rev
Log:
o Added the AttributeType class
o Fixed many small inconsistencies into the other classes
o Renamed the setRegistries() to applyRegistries() to reflect this method functionality
Modified:
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/AttributeType.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/DITContentRule.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/DITStructureRule.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/MatchingRule.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/MatchingRuleUse.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/NameForm.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SchemaObject.java
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/AttributeType.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/AttributeType.java?rev=807740&r1=807739&r2=807740&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/AttributeType.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/AttributeType.java Tue Aug 25 18:12:12 2009
@@ -22,6 +22,11 @@
import javax.naming.NamingException;
+import org.apache.directory.shared.ldap.schema.registries.AttributeTypeRegistry;
+import org.apache.directory.shared.ldap.schema.registries.LdapSyntaxRegistry;
+import org.apache.directory.shared.ldap.schema.registries.MatchingRuleRegistry;
+import org.apache.directory.shared.ldap.schema.registries.Registries;
+
/**
* An attributeType specification. attributeType specifications describe the
@@ -129,97 +134,410 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public interface AttributeType extends SchemaObject
+public class AttributeType extends SchemaObject
{
+ /** The serialVersionUID */
+ public static final long serialVersionUID = 1L;
+
+ /** The syntax OID associated with this AttributeType */
+ private String syntaxOid;
+
+ /** The syntax associated with the syntaxID */
+ private LdapSyntax syntax;
+
+ /** The equality OID associated with this AttributeType */
+ private String equalityOid;
+
+ /** The equality MatchingRule associated with the equalityID */
+ private MatchingRule equality;
+
+ /** The substring OID associated with this AttributeType */
+ private String substrOid;
+
+ /** The substring MatchingRule associated with the substringID */
+ private MatchingRule substr;
+
+ /** The ordering OID associated with this AttributeType */
+ private String orderingOid;
+
+ /** The ordering MatchingRule associated with the orderingID */
+ private MatchingRule ordering;
+
+ /** The superior AttributeType OID */
+ private String supOid;
+
+ /** The superior AttributeType */
+ private AttributeType sup;
+
+ /** whether or not this type is single valued */
+ private boolean isSingleValue = false;
+
+ /** whether or not this type is a collective attribute */
+ private boolean isCollective = false;
+
+ /** whether or not this type can be modified by directory users */
+ private boolean canUserModify = true;
+
+ /** the usage for this attributeType */
+ private UsageEnum usage = UsageEnum.USER_APPLICATIONS;
+
+ /** the length of this attribute in bytes */
+ private int length = -1;
+
+ /**
+ * Creates a AttributeType object using a unique OID.
+ *
+ * @param oid the OID for this AttributeType
+ */
+ public AttributeType( String oid )
+ {
+ super( SchemaObjectType.ATTRIBUTE_TYPE, oid );
+ }
+
+
+ /**
+ * Inject the registries into this Object, updating the references to
+ * other SchemaObject
+ *
+ * @param registries The Registries
+ */
+ public void applyRegistries( Registries registries ) throws NamingException
+ {
+ if ( registries != null )
+ {
+ AttributeTypeRegistry atRegistry = registries.getAttributeTypeRegistry();
+
+ sup = atRegistry.lookup( supOid );
+
+ MatchingRuleRegistry mrRegistry = registries.getMatchingRuleRegistry();
+
+ equality = mrRegistry.lookup( equalityOid );
+ ordering = mrRegistry.lookup( orderingOid );
+ substr = mrRegistry.lookup( substrOid );
+
+ LdapSyntaxRegistry lsRegistry = registries.getLdapSyntaxRegistry();
+
+ syntax = lsRegistry.lookup( syntaxOid );
+
+ }
+ }
+
+
/**
* Gets whether or not this AttributeType is single-valued.
*
* @return true if only one value can exist for this AttributeType, false
* otherwise
*/
- boolean isSingleValue();
+ public boolean isSingleValue()
+ {
+ return isSingleValue;
+ }
/**
+ * Tells if this AttributeType is SIngle Valued or not
+ *
+ * @param singleValue True if the AttributeType is single-vlaued
+ */
+ public void setSingleValue( boolean singleValue )
+ {
+ if ( !isReadOnly )
+ {
+ this.isSingleValue = singleValue;
+ }
+ }
+
+
+ /**
* 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();
+ public boolean isCanUserModify()
+ {
+ return canUserModify;
+ }
+
+ /**
+ * Tells if this AttributeType can be modified by a user or not
+ *
+ * @param canUserModify The flag to set
+ */
+ public void setCanUserModify( boolean canUserModify )
+ {
+ if ( !isReadOnly )
+ {
+ this.canUserModify = canUserModify;
+ }
+ }
+
+
/**
* Gets whether or not this AttributeType is a collective attribute.
*
* @return true if the attribute is collective, false otherwise
*/
- boolean isCollective();
+ public boolean isCollective()
+ {
+ return isCollective;
+ }
/**
+ * Tells if this AttributeType is a collective attribute or not
+ *
+ * @param collective True if the AttributeType is collective
+ */
+ public void setCollective( boolean collective )
+ {
+ if ( !isReadOnly )
+ {
+ this.isCollective = collective;
+ }
+ }
+
+
+ /**
* Determines the usage for this AttributeType.
*
* @return a type safe UsageEnum
*/
- UsageEnum getUsage();
+ public UsageEnum getUsage()
+ {
+ return usage;
+ }
/**
- * Gets the name of the superior class for this AttributeType.
+ * Sets the AttributeType usage, one of :<br>
+ * <li>USER_APPLICATIONS
+ * <li>DIRECTORY_OPERATION
+ * <li>DISTRIBUTED_OPERATION
+ * <li>DSA_OPERATION
+ * <br>
+ * @see UsageEnum
+ * @param usage The AttributeType usage
+ */
+ public void setUsage( UsageEnum usage )
+ {
+ if ( !isReadOnly )
+ {
+ this.usage = usage;
+ }
+ }
+
+
+ /**
+ * Gets a length limit for this AttributeType.
+ *
+ * @return the length of the attribute
+ */
+ public int getLength()
+ {
+ return length;
+ }
+
+
+ /**
+ * Sets the length limit of this AttributeType based on its associated
+ * syntax.
+ *
+ * @param length the new length to set
+ */
+ public void setLength( int length )
+ {
+ if ( !isReadOnly )
+ {
+ this.length = length;
+ }
+ }
+
+
+ /**
+ * Gets the the superior AttributeType of this AttributeType.
+ *
+ * @return the superior AttributeType for this AttributeType
+ */
+ public AttributeType getSup()
+ {
+ return sup;
+ }
+
+
+ /**
+ * Gets the OID of the superior AttributeType for this AttributeType.
*
- * @return the super class for this AttributeType
- * @throws NamingException
- * if there is a failure to resolve the superior
+ * @return The OID of the superior AttributeType for this AttributeType.
*/
- AttributeType getSuperior() throws NamingException, NamingException;
+ public String getSupOid()
+ {
+ return supOid;
+ }
+
+
+ /**
+ * Sets the superior AttributeType OID of this AttributeType
+ *
+ * @param superiorOid The superior AttributeType OID of this AttributeType
+ */
+ public void setSuperiorOid( String superiorOid ) throws NamingException
+ {
+ if ( !isReadOnly )
+ {
+ this.supOid = superiorOid;
+ }
+ }
/**
- * The Syntax for this AttributeType's values.
+ * Gets the Syntax for this AttributeType's values.
*
* @return the value syntax
- * @throws NamingException
- * if there is a failure to resolve the syntax
*/
- LdapSyntax getSyntax() throws NamingException;
+ public LdapSyntax getSyntax()
+ {
+ return syntax;
+ }
/**
- * Gets a length limit for this AttributeType.
+ * Gets the Syntax OID for this AttributeType's values.
*
- * @return the length of the attribute
+ * @return the value syntax's OID
*/
- int getLength();
+ public String getSyntaxOid()
+ {
+ return syntaxOid;
+ }
/**
+ * Sets the Syntax OID for this AttributeType
+ *
+ * @param superiorOid The syntax OID for this AttributeType
+ * @throws NamingException if there is a failure to resolve the matchingRule
+ */
+ public void setSyntaxOid( String syntaxOid ) throws NamingException
+ {
+ if ( !isReadOnly )
+ {
+ this.syntaxOid = syntaxOid;
+ }
+ }
+
+
+ /**
* Gets the MatchingRule for this AttributeType used for equality matching.
*
* @return the equality matching rule
- * @throws NamingException
- * if there is a failure to resolve the matchingRule
*/
- MatchingRule getEquality() throws NamingException;
+ public MatchingRule getEquality()
+ {
+ return equality;
+ }
/**
- * Gets the MatchingRule for this AttributeType used for ordering.
+ * Gets the Equality OID for this AttributeType's values.
*
- * @return the ordering matching rule
- * @throws NamingException
- * if there is a failure to resolve the matchingRule
+ * @return the value Equality's OID
*/
- MatchingRule getOrdering() throws NamingException;
+ public String getEqualityOid()
+ {
+ return equalityOid;
+ }
+
+ /**
+ * Sets the Equality OID for this AttributeType
+ *
+ * @param equalityOid The Equality OID for this AttributeType
+ * @throws NamingException if there is a failure to resolve the matchingRule
+ */
+ public void setEqualityOid( String equalityOid ) throws NamingException
+ {
+ if ( !isReadOnly )
+ {
+ this.equalityOid = equalityOid;
+ }
+ }
+
/**
- * Gets the MatchingRule for this AttributeType used for substring matching.
+ * Gets the MatchingRule for this AttributeType used for Ordering matching.
*
- * @return the substring matching rule
- * @throws NamingException
- * if there is a failure to resolve the matchingRule
+ * @return the Ordering matching rule
*/
- MatchingRule getSubstr() throws NamingException;
+ public MatchingRule getOrdering()
+ {
+ return ordering;
+ }
+
+
+ /**
+ * Gets the Ordering OID for this AttributeType's values.
+ *
+ * @return the value Equality's OID
+ */
+ public String getOrderingOid()
+ {
+ return orderingOid;
+ }
+
+
+ /**
+ * Sets the Ordering OID for this AttributeType
+ *
+ * @param orderingOid The Ordering OID for this AttributeType
+ * @throws NamingException if there is a failure to resolve the matchingRule
+ */
+ public void setOrderingOid( String orderingOid ) throws NamingException
+ {
+ if ( !isReadOnly )
+ {
+ this.orderingOid = orderingOid;
+ }
+ }
+
+
+ /**
+ * Gets the MatchingRule for this AttributeType used for Substr matching.
+ *
+ * @return the Substr matching rule
+ */
+ public MatchingRule getSubstr()
+ {
+ return substr;
+ }
+
+
+ /**
+ * Gets the Substr OID for this AttributeType's values.
+ *
+ * @return the value Substr's OID
+ */
+ public String getSubstrOid()
+ {
+ return substrOid;
+ }
+
+
+ /**
+ * Sets the Substr OID for this AttributeType
+ *
+ * @param substrOid The Substr OID for this AttributeType
+ * @throws NamingException if there is a failure to resolve the matchingRule
+ */
+ public void setSubstrOid( String substrOid ) throws NamingException
+ {
+ if ( !isReadOnly )
+ {
+ this.substrOid = substrOid;
+ }
+ }
/**
@@ -230,9 +548,17 @@
* @return true if the descendant is truely a derived from this AttributeType
* @throws NamingException if there are problems resolving superior types
*/
- boolean isAncestorOf( AttributeType descendant ) throws NamingException;
+ public boolean isAncestorOf( AttributeType descendant ) throws NamingException
+ {
+ if ( ( descendant == null ) || this.equals( descendant ) )
+ {
+ return false;
+ }
+ return isAncestorOrEqual( this, descendant );
+ }
+
/**
* Checks to see if this AttributeType is the descendant of another
* attributeType.
@@ -241,5 +567,41 @@
* @return true if this AttributeType truely descends from the ancestor
* @throws NamingException if there are problems resolving superior types
*/
- boolean isDescendantOf( AttributeType ancestor ) throws NamingException;
+ public boolean isDescendantOf( AttributeType ancestor ) throws NamingException
+ {
+ if ( ( ancestor == null ) || equals( ancestor ) )
+ {
+ return false;
+ }
+
+ return isAncestorOrEqual( ancestor, this );
+ }
+
+
+
+
+ /**
+ * Recursive method which checks to see if a descendant is really an ancestor or if the two
+ * are equal.
+ *
+ * @param ancestor the possible ancestor of the descendant
+ * @param descendant the possible descendant of the ancestor
+ * @return true if the ancestor equals the descendant or if the descendant is really
+ * a subtype of the ancestor. otherwise false
+ * @throws NamingException if there are issues with superior attribute resolution
+ */
+ private boolean isAncestorOrEqual( AttributeType ancestor, AttributeType descendant ) throws NamingException
+ {
+ if ( ( ancestor == null ) || ( descendant == null ) )
+ {
+ return false;
+ }
+
+ if ( ancestor.equals( descendant ) )
+ {
+ return true;
+ }
+
+ return isAncestorOrEqual( ancestor, descendant.getSup() );
+ }
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/DITContentRule.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/DITContentRule.java?rev=807740&r1=807739&r2=807740&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/DITContentRule.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/DITContentRule.java Tue Aug 25 18:12:12 2009
@@ -20,8 +20,15 @@
package org.apache.directory.shared.ldap.schema;
+import java.util.ArrayList;
+import java.util.List;
+
import javax.naming.NamingException;
+import org.apache.directory.shared.ldap.schema.registries.AttributeTypeRegistry;
+import org.apache.directory.shared.ldap.schema.registries.ObjectClassRegistry;
+import org.apache.directory.shared.ldap.schema.registries.Registries;
+
/**
* A ditContentRule specification. ditContentRules identify the content of
@@ -109,59 +116,223 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public interface DITContentRule extends SchemaObject
+public class DITContentRule extends SchemaObject
{
+ /** The serialVersionUID */
+ public static final long serialVersionUID = 1L;
+
+ /** The list of Auxiliary ObjectClass OIDs entries may belong to */
+ private List<String> auxObjectClassOids;
+
+ /** The list of Auxiliary ObjectClass entries may belong to */
+ private List<ObjectClass> auxObjectClasses;
+
+ /** The list of allowed AttributeType OIDs */
+ private List<String> mayAttributeTypeOids;
+
+ /** The list of allowed AttributeTypes */
+ private List<AttributeType> mayAttributeTypes;
+
+ /** The list of required AttributeType OIDs */
+ private List<String> mustAttributeTypeOids;
+
+ /** The list of required AttributeTypes */
+ private List<AttributeType> mustAttributeTypes;
+
+ /** The list of precluded AttributeType OIDs */
+ private List<String> notAttributeTypeOids;
+
+ /** The list of precluded AttributeTypes */
+ private List<AttributeType> notAttributeTypes;
+
/**
- * Gets the STRUCTURAL ObjectClass this DITContentRule specifies attributes
- * for.
+ * Creates a DITContentRule object using a unique OID.
*
- * @return the ObjectClass this DITContentRule specifies attributes for
- * @throws NamingException
- * if there is a failure resolving the object
+ * @param oid the OID for this DITContentRule
+ */
+ public DITContentRule( String oid )
+ {
+ super( SchemaObjectType.DIT_CONTENT_RULE, oid );
+
+ mayAttributeTypeOids = new ArrayList<String>();
+ mustAttributeTypeOids = new ArrayList<String>();
+ notAttributeTypeOids = new ArrayList<String>();
+ auxObjectClassOids = new ArrayList<String>();
+ }
+
+
+ /**
+ * @return the auxObjectClassOids
*/
- ObjectClass getObjectClass() throws NamingException;
+ public List<String> getAuxObjectClassOids()
+ {
+ return auxObjectClassOids;
+ }
/**
- * Gets all the AUXILIARY ObjectClasses this DITContentRule specifies for
- * the given STRUCTURAL objectClass.
- *
- * @return the extra AUXILIARY ObjectClasses
- * @throws NamingException
- * if there is a failure resolving the object
+ * @param auxObjectClassOids the auxObjectClassOids to set
*/
- ObjectClass[] getAuxObjectClasses() throws NamingException;
+ public void setAuxObjectClassOids( List<String> auxObjectClassOids )
+ {
+ if ( !isReadOnly )
+ {
+ this.auxObjectClassOids = auxObjectClassOids;
+ }
+ }
/**
- * Gets all the AttributeTypes of the "must" attribute names this
- * DITContentRule specifies for the given STRUCTURAL objectClass.
- *
- * @return the AttributeTypes of attributes that must be included in entries
- * @throws NamingException
- * if there is a failure resolving the object
+ * @return the auxObjectClasses
+ */
+ public List<ObjectClass> getAuxObjectClasses()
+ {
+ return auxObjectClasses;
+ }
+
+
+ /**
+ * @return the mayAttributeTypeOids
*/
- AttributeType[] getMustNames() throws NamingException;
+ public List<String> getMayAttributeTypeOids()
+ {
+ return mayAttributeTypeOids;
+ }
/**
- * Gets all the AttributeTypes of the "may" attribute names this
- * DITContentRule specifies for the given STRUCTURAL objectClass.
- *
- * @return the AttributeTypes of attributes that may be included in entries
- * @throws NamingException
- * if there is a failure resolving the object
+ * @param mayAttributeTypeOids the mayAttributeTypeOids to set
*/
- AttributeType[] getMayNames() throws NamingException;
+ public void setMayAttributeTypeOids( List<String> mayAttributeTypeOids )
+ {
+ if ( !isReadOnly )
+ {
+ this.mayAttributeTypeOids = mayAttributeTypeOids;
+ }
+ }
/**
- * Gets all the AttributeTypes of the "not" attribute names this
- * DITContentRule specifies for the given STRUCTURAL objectClass.
- *
- * @return the AttributeTypes of attributes that are excluded in entries
- * @throws NamingException
- * if there is a failure resolving the object
+ * @return the mayAttributeTypes
+ */
+ public List<AttributeType> getMayAttributeTypes()
+ {
+ return mayAttributeTypes;
+ }
+
+
+ /**
+ * @return the mustAttributeTypeOids
+ */
+ public List<String> getMustAttributeTypeOids()
+ {
+ return mustAttributeTypeOids;
+ }
+
+
+ /**
+ * @param mustAttributeTypeOids the mustAttributeTypeOids to set
+ */
+ public void setMustAttributeTypeOids( List<String> mustAttributeTypeOids )
+ {
+ if ( !isReadOnly )
+ {
+ this.mustAttributeTypeOids = mustAttributeTypeOids;
+ }
+ }
+
+
+ /**
+ * @return the mustAttributeTypes
+ */
+ public List<AttributeType> getMustAttributeTypes()
+ {
+ return mustAttributeTypes;
+ }
+
+
+ /**
+ * @return the notAttributeTypeOids
+ */
+ public List<String> getNotAttributeTypeOids()
+ {
+ return notAttributeTypeOids;
+ }
+
+
+ /**
+ * @param notAttributeTypeOids the notAttributeTypeOids to set
+ */
+ public void setNotAttributeTypeOids( List<String> notAttributeTypeOids )
+ {
+ if ( !isReadOnly )
+ {
+ this.notAttributeTypeOids = notAttributeTypeOids;
+ }
+ }
+
+
+ /**
+ * @return the notAttributeTypes
+ */
+ public List<AttributeType> getNotAttributeTypes()
+ {
+ return notAttributeTypes;
+ }
+
+
+ /**
+ * Inject the registries into this Object, updating the references to
+ * other SchemaObject
+ *
+ * @param registries The Registries
*/
- AttributeType[] getNotNames() throws NamingException;
+ public void applyRegistries( Registries registries ) throws NamingException
+ {
+ if ( registries != null )
+ {
+ AttributeTypeRegistry atRegistry = registries.getAttributeTypeRegistry();
+ ObjectClassRegistry ocRegistry = registries.getObjectClassRegistry();
+
+ if ( mayAttributeTypeOids != null )
+ {
+ mayAttributeTypes = new ArrayList<AttributeType>( mayAttributeTypeOids.size() );
+
+ for ( String oid : mayAttributeTypeOids )
+ {
+ mayAttributeTypes.add( atRegistry.lookup( oid ) );
+ }
+ }
+
+ if ( mustAttributeTypeOids != null )
+ {
+ mustAttributeTypes = new ArrayList<AttributeType>( mustAttributeTypeOids.size() );
+
+ for ( String oid : mustAttributeTypeOids )
+ {
+ mustAttributeTypes.add( atRegistry.lookup( oid ) );
+ }
+ }
+
+ if ( notAttributeTypeOids != null )
+ {
+ notAttributeTypes = new ArrayList<AttributeType>( notAttributeTypeOids.size() );
+
+ for ( String oid : notAttributeTypeOids )
+ {
+ notAttributeTypes.add( atRegistry.lookup( oid ) );
+ }
+ }
+
+ if ( auxObjectClassOids != null )
+ {
+ auxObjectClasses = new ArrayList<ObjectClass>( auxObjectClassOids.size() );
+
+ for ( String oid : auxObjectClassOids )
+ {
+ auxObjectClasses.add( ocRegistry.lookup( oid ) );
+ }
+ }
+ }
+ }
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/DITStructureRule.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/DITStructureRule.java?rev=807740&r1=807739&r2=807740&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/DITStructureRule.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/DITStructureRule.java Tue Aug 25 18:12:12 2009
@@ -122,7 +122,10 @@
*/
public void setForm( String form )
{
- this.form = form;
+ if ( !isReadOnly )
+ {
+ this.form = form;
+ }
}
@@ -142,7 +145,10 @@
*/
public void setRuleId( int ruleId )
{
- this.ruleId = ruleId;
+ if ( !isReadOnly )
+ {
+ this.ruleId = ruleId;
+ }
}
@@ -162,7 +168,10 @@
*/
public void setSuperRules( List<Integer> superRules )
{
- this.superRules = superRules;
+ if ( !isReadOnly )
+ {
+ this.superRules = superRules;
+ }
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/MatchingRule.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/MatchingRule.java?rev=807740&r1=807739&r2=807740&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/MatchingRule.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/MatchingRule.java Tue Aug 25 18:12:12 2009
@@ -111,7 +111,7 @@
*
* @param registries The Registries
*/
- public void setRegistries( Registries registries ) throws NamingException
+ public void applyRegistries( Registries registries ) throws NamingException
{
if ( registries != null )
{
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/MatchingRuleUse.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/MatchingRuleUse.java?rev=807740&r1=807739&r2=807740&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/MatchingRuleUse.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/MatchingRuleUse.java Tue Aug 25 18:12:12 2009
@@ -20,8 +20,14 @@
package org.apache.directory.shared.ldap.schema;
+import java.util.ArrayList;
import java.util.List;
+import javax.naming.NamingException;
+
+import org.apache.directory.shared.ldap.schema.registries.AttributeTypeRegistry;
+import org.apache.directory.shared.ldap.schema.registries.Registries;
+
/**
* Represents an LDAP MatchingRuleUseDescription defined in RFC 2252.
@@ -84,38 +90,78 @@
/** The serialVersionUID */
private static final long serialVersionUID = 1L;
- /** The list of attributes types the matching rule applies to */
- private List<String> applicableAttributes;
+ /** The list of attributes types OID the matching rule applies to */
+ private List<String> applicableAttributeOids;
+ /** The list of attributes types the matching rule applies to */
+ private List<AttributeType> applicableAttributes;
+
/**
* Creates a new instance of MatchingRuleUseDescription
*/
public MatchingRuleUse( String oid )
{
super( SchemaObjectType.MATCHING_RULE_USE, oid );
+
+ applicableAttributeOids = new ArrayList<String>();
}
+
+
/**
- * @return The matchingRule's list of Attribute types the MRU applies to
+ * Inject the registries into this Object, updating the references to
+ * other SchemaObject
+ *
+ * @param registries The Registries
*/
- public List<String> getApplicableAttributes()
+ public void applyRegistries( Registries registries ) throws NamingException
+ {
+ if ( registries != null )
+ {
+ AttributeTypeRegistry atRegistry = registries.getAttributeTypeRegistry();
+
+ if ( applicableAttributeOids != null )
+ {
+ applicableAttributes = new ArrayList<AttributeType>( applicableAttributeOids.size() );
+
+ for ( String oid : applicableAttributeOids )
+ {
+ applicableAttributes.add( atRegistry.lookup( oid ) );
+ }
+ }
+ }
+ }
+
+
+ /**
+ * @return The matchingRule's list of AttributeType OIDs the MRU applies to
+ */
+ public List<String> getApplicableAttributeOids()
+ {
+ return applicableAttributeOids;
+ }
+
+
+ /**
+ * @return The matchingRule's list of AttributeType OIDs the MRU applies to
+ */
+ public List<AttributeType> getApplicableAttributes()
{
return applicableAttributes;
}
/**
- * Set the matchingRule's Attribute types the MRU applies to. description
+ * Set the matchingRule's AttributeType OIDs the MRU applies to. description
*
- * @param applicableAttributes The Attribute types list
+ * @param applicableAttributes The AttributeType OIDs list
*/
- public void setApplicableAttributes( List<String> applicableAttributes )
+ public void setApplicableAttributeOids( List<String> applicableAttributeOids )
{
if ( !isReadOnly )
{
- this.applicableAttributes = applicableAttributes;
+ this.applicableAttributeOids = applicableAttributeOids;
}
}
-
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/NameForm.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/NameForm.java?rev=807740&r1=807739&r2=807740&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/NameForm.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/NameForm.java Tue Aug 25 18:12:12 2009
@@ -27,7 +27,6 @@
import javax.naming.NamingException;
import org.apache.directory.shared.ldap.schema.registries.AttributeTypeRegistry;
-import org.apache.directory.shared.ldap.schema.registries.ObjectClassRegistry;
import org.apache.directory.shared.ldap.schema.registries.Registries;
@@ -119,12 +118,6 @@
/** The set of allowed AttributeTypes for this name form */
private List<AttributeType> mayAttributeTypes;
- /** The associated AttributeType registry */
- private AttributeTypeRegistry atRegistry;
-
- /** The associated ObjectClass registry */
- private ObjectClassRegistry ocRegistry;
-
/**
* Creates a new instance of MatchingRule.
@@ -151,9 +144,9 @@
{
if ( registries != null )
{
- atRegistry = registries.getAttributeTypeRegistry();
- ocRegistry = registries.getObjectClassRegistry();
- structuralObjectClass = ocRegistry.lookup( structuralObjectClassOid );
+ AttributeTypeRegistry atRegistry = registries.getAttributeTypeRegistry();
+
+ structuralObjectClass = registries.getObjectClassRegistry().lookup( structuralObjectClassOid );
if ( mayAttributeTypeOids != null )
{
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SchemaObject.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SchemaObject.java?rev=807740&r1=807739&r2=807740&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SchemaObject.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SchemaObject.java Tue Aug 25 18:12:12 2009
@@ -141,7 +141,10 @@
*/
public void changeOid( String oid )
{
- this.oid = oid;
+ if ( !isReadOnly )
+ {
+ this.oid = oid;
+ }
}