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/10/17 06:13:05 UTC

svn commit: r826174 - /directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/

Author: elecharny
Date: Sat Oct 17 04:13:04 2009
New Revision: 826174

URL: http://svn.apache.org/viewvc?rev=826174&view=rev
Log:
Added clone metods to all those objects

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/LdapComparator.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LdapSyntax.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LoadableSchemaObject.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/Normalizer.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/ObjectClass.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SchemaObject.java
    directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SyntaxChecker.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=826174&r1=826173&r2=826174&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 Sat Oct 17 04:13:04 2009
@@ -136,7 +136,7 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$
  */
-public class AttributeType extends SchemaObject
+public class AttributeType extends SchemaObject implements Cloneable
 {
     /** The serialVersionUID */
     public static final long serialVersionUID = 1L;
@@ -823,4 +823,22 @@
     {
         return DescriptionUtils.getDescription( this );
     }
+    
+    
+    /**
+     * Clone an AttributeType
+     */
+    public AttributeType clone() throws CloneNotSupportedException
+    {
+        AttributeType clone = (AttributeType)super.clone();
+        
+        // All the references to other Registries object are set to null.
+        clone.equality = null;
+        clone.ordering = null;
+        clone.substring = null;
+        clone.superior = null;
+        clone.syntax = null;
+        
+        return clone;
+    }
 }

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=826174&r1=826173&r2=826174&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 Sat Oct 17 04:13:04 2009
@@ -563,4 +563,56 @@
     {
         return DescriptionUtils.getDescription( this );
     }
+
+
+    /**
+     * Clone a DITContentRule
+     */
+    public DITContentRule clone() throws CloneNotSupportedException
+    {
+        DITContentRule clone = (DITContentRule)super.clone();
+        
+        // Clone the AUX ObjectClasses
+        clone.auxObjectClassOids = new ArrayList<String>();
+        
+        for ( String oid : auxObjectClassOids )
+        {
+            clone.auxObjectClassOids.add( oid );
+        }
+        
+        clone.auxObjectClasses = new ArrayList<ObjectClass>();
+        
+        // Clone the MAY AttributeTypes
+        clone.mayAttributeTypeOids = new ArrayList<String>();
+        
+        for ( String oid : mayAttributeTypeOids )
+        {
+            clone.mayAttributeTypeOids.add( oid );
+        }
+        
+        clone.mayAttributeTypes = new ArrayList<AttributeType>();
+        
+        // Clone the MUST AttributeTypes
+        clone.mustAttributeTypeOids = new ArrayList<String>();
+        
+        for ( String oid : mustAttributeTypeOids )
+        {
+            clone.mustAttributeTypeOids.add( oid );
+        }
+        
+        clone.mustAttributeTypes = new ArrayList<AttributeType>();
+        
+        // Clone the NOT AttributeTypes
+        clone.notAttributeTypeOids = new ArrayList<String>();
+        
+        for ( String oid : notAttributeTypeOids )
+        {
+            clone.notAttributeTypeOids.add( oid );
+        }
+        
+        clone.notAttributeTypes = new ArrayList<AttributeType>();
+        
+        
+        return clone;
+    }
 }

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=826174&r1=826173&r2=826174&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 Sat Oct 17 04:13:04 2009
@@ -202,4 +202,23 @@
     {
         return DescriptionUtils.getDescription( this );
     }
+
+
+    /**
+     * Clone a DITStructureRule
+     */
+    public DITStructureRule clone() throws CloneNotSupportedException
+    {
+        DITStructureRule clone = (DITStructureRule)super.clone();
+        
+        // Clone the Superiors rules
+        clone.superRules = new ArrayList<Integer>();
+        
+        for ( int ruleId : superRules )
+        {
+            clone.superRules.add( ruleId );
+        }
+        
+        return clone;
+    }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LdapComparator.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LdapComparator.java?rev=826174&r1=826173&r2=826174&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LdapComparator.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LdapComparator.java Sat Oct 17 04:13:04 2009
@@ -52,4 +52,15 @@
     {
         super( SchemaObjectType.COMPARATOR );
     }
+
+
+    /**
+     * Clone a LdapComparator
+     */
+    public LdapComparator<T> clone() throws CloneNotSupportedException
+    {
+        LdapComparator<T> clone = (LdapComparator<T>)super.clone();
+        
+        return clone;
+    }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LdapSyntax.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LdapSyntax.java?rev=826174&r1=826173&r2=826174&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LdapSyntax.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LdapSyntax.java Sat Oct 17 04:13:04 2009
@@ -198,4 +198,18 @@
             }
         }
     }
+
+
+    /**
+     * Clone a LdapSyntax
+     */
+    public LdapSyntax clone() throws CloneNotSupportedException
+    {
+        LdapSyntax clone = (LdapSyntax)super.clone();
+        
+        // All the references to other Registries object are set to null.
+        clone.syntaxChecker = null;
+        
+        return clone;
+    }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LoadableSchemaObject.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LoadableSchemaObject.java?rev=826174&r1=826173&r2=826174&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LoadableSchemaObject.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/LoadableSchemaObject.java Sat Oct 17 04:13:04 2009
@@ -112,4 +112,15 @@
             this.fqcn = fqcn;
         }
     }
+
+
+    /**
+     * Clone a LoadableSchemaObject
+     */
+    public LoadableSchemaObject clone() throws CloneNotSupportedException
+    {
+        LoadableSchemaObject clone = (LoadableSchemaObject)super.clone();
+        
+        return clone;
+    }
 }

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=826174&r1=826173&r2=826174&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 Sat Oct 17 04:13:04 2009
@@ -267,4 +267,20 @@
     {
         return DescriptionUtils.getDescription( this );
     }
+    
+    
+    /**
+     * Clone an MatchingRule
+     */
+    public MatchingRule clone() throws CloneNotSupportedException
+    {
+        MatchingRule clone = (MatchingRule)super.clone();
+        
+        // All the references to other Registries object are set to null.
+        clone.ldapComparator = null;
+        clone.ldapSyntax = null;
+        clone.normalizer = null;
+        
+        return clone;
+    }
 }

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=826174&r1=826173&r2=826174&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 Sat Oct 17 04:13:04 2009
@@ -229,4 +229,26 @@
     {
         return DescriptionUtils.getDescription( this );
     }
+    
+    
+    /**
+     * Clone an MatchingRuleUse
+     */
+    public MatchingRuleUse clone() throws CloneNotSupportedException
+    {
+        MatchingRuleUse clone = (MatchingRuleUse)super.clone();
+        
+        // Clone the APPLY AttributeTypes
+        clone.applicableAttributeOids = new ArrayList<String>();
+        
+        for ( String oid : applicableAttributeOids )
+        {
+            clone.applicableAttributeOids.add( oid );
+        }
+        
+        clone.applicableAttributes = new ArrayList<AttributeType>();
+        
+        
+        return clone;
+    }
 }

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=826174&r1=826173&r2=826174&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 Sat Oct 17 04:13:04 2009
@@ -425,4 +425,38 @@
     {
         return DescriptionUtils.getDescription( this );
     }
+    
+    
+    /**
+     * Clone a NameForm
+     */
+    public NameForm clone() throws CloneNotSupportedException
+    {
+        NameForm clone = (NameForm)super.clone();
+        
+        // Clone the MAY AttributeTypes
+        clone.mayAttributeTypeOids = new ArrayList<String>();
+        
+        for ( String oid : mayAttributeTypeOids )
+        {
+            clone.mayAttributeTypeOids.add( oid );
+        }
+        
+        clone.mayAttributeTypes = new ArrayList<AttributeType>();
+        
+        // Clone the MUST AttributeTypes
+        clone.mustAttributeTypeOids = new ArrayList<String>();
+        
+        for ( String oid : mustAttributeTypeOids )
+        {
+            clone.mustAttributeTypeOids.add( oid );
+        }
+        
+        clone.mustAttributeTypes = new ArrayList<AttributeType>();
+
+        // All the references to other Registries object are set to null.
+        clone.structuralObjectClass = null;
+        
+        return clone;
+    }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/Normalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/Normalizer.java?rev=826174&r1=826173&r2=826174&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/Normalizer.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/Normalizer.java Sat Oct 17 04:13:04 2009
@@ -87,4 +87,15 @@
     {
         // Do nothing. The extended class will store the Registries if needed
     }
+
+
+    /**
+     * Clone a Normalizer
+     */
+    public Normalizer clone() throws CloneNotSupportedException
+    {
+        Normalizer clone = (Normalizer)super.clone();
+        
+        return clone;
+    }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/ObjectClass.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/ObjectClass.java?rev=826174&r1=826173&r2=826174&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/ObjectClass.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/ObjectClass.java Sat Oct 17 04:13:04 2009
@@ -505,4 +505,45 @@
     {
         return DescriptionUtils.getDescription( this );
     }
+
+    
+    /**
+     * Clone an ObjectClass
+     */
+    public ObjectClass clone() throws CloneNotSupportedException
+    {
+        ObjectClass clone = (ObjectClass)super.clone();
+        
+        // Clone the Superiors ObjectClasses
+        clone.superiorOids = new ArrayList<String>();
+        
+        for ( String oid : superiorOids )
+        {
+            clone.superiorOids.add( oid );
+        }
+        
+        clone.superiors = new ArrayList<ObjectClass>();
+        
+        // Clone the MAY AttributeTypes
+        clone.mayAttributeTypeOids = new ArrayList<String>();
+        
+        for ( String oid : mayAttributeTypeOids )
+        {
+            clone.mayAttributeTypeOids.add( oid );
+        }
+        
+        clone.mayAttributeTypes = new ArrayList<AttributeType>();
+        
+        // Clone the MUST AttributeTypes
+        clone.mustAttributeTypeOids = new ArrayList<String>();
+        
+        for ( String oid : mustAttributeTypeOids )
+        {
+            clone.mustAttributeTypeOids.add( oid );
+        }
+        
+        clone.mustAttributeTypes = new ArrayList<AttributeType>();
+        
+        return clone;
+    }
 }
\ No newline at end of file

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=826174&r1=826173&r2=826174&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 Sat Oct 17 04:13:04 2009
@@ -71,7 +71,7 @@
  * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
  * @version $Rev$
  */
-public abstract class SchemaObject implements Serializable
+public abstract class SchemaObject implements Serializable, Cloneable
 {
     /** The serialVersionUID */
     public static final long serialVersionUID = 1L;
@@ -706,4 +706,40 @@
         
         return false;
     }
+    
+
+    /**
+     * Clone a SchemaObject
+     */
+    public SchemaObject clone() throws CloneNotSupportedException
+    {
+        SchemaObject clone = (SchemaObject)super.clone();
+
+        //Clone the names
+        clone.names = new ArrayList<String>();
+        
+        for ( String name : names )
+        {
+            clone.names.add( name );
+        }
+
+        // Clone the extensions
+        clone.extensions = new HashMap<String, List<String>>();
+        
+        for ( String key : extensions.keySet() )
+        {
+            List<String> extensionValues = extensions.get( key );
+            
+            List<String> cloneExtension = new ArrayList<String>();
+            
+            for ( String value : extensionValues )
+            {
+                cloneExtension.add( value );
+            }
+            
+            clone.extensions.put( key, cloneExtension );
+        }
+        
+        return clone;
+    }
 }

Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SyntaxChecker.java?rev=826174&r1=826173&r2=826174&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SyntaxChecker.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/SyntaxChecker.java Sat Oct 17 04:13:04 2009
@@ -82,4 +82,15 @@
             throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX );
         }
     }
+
+
+    /**
+     * Clone a SyntaxChecker
+     */
+    public SyntaxChecker clone() throws CloneNotSupportedException
+    {
+        SyntaxChecker clone = (SyntaxChecker)super.clone();
+        
+        return clone;
+    }
 }