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 10:36:41 UTC
svn commit: r826194 -
/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/
Author: elecharny
Date: Sat Oct 17 08:36:40 2009
New Revision: 826194
URL: http://svn.apache.org/viewvc?rev=826194&view=rev
Log:
Added the missing Registries clone methods
Modified:
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ComparatorRegistry.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITContentRuleRegistry.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITStructureRuleRegistry.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/LdapSyntaxRegistry.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleRegistry.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleUseRegistry.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NameFormRegistry.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NormalizerRegistry.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ObjectClassRegistry.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java
directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SyntaxCheckerRegistry.java
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ComparatorRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ComparatorRegistry.java?rev=826194&r1=826193&r2=826194&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ComparatorRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ComparatorRegistry.java Sat Oct 17 08:36:40 2009
@@ -153,4 +153,15 @@
}
}
}
+
+
+ /**
+ * Clone the ComparatorRegistry
+ */
+ public ComparatorRegistry clone() throws CloneNotSupportedException
+ {
+ ComparatorRegistry clone = (ComparatorRegistry)super.clone();
+
+ return clone;
+ }
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITContentRuleRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITContentRuleRegistry.java?rev=826194&r1=826193&r2=826194&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITContentRuleRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITContentRuleRegistry.java Sat Oct 17 08:36:40 2009
@@ -41,4 +41,15 @@
{
super( SchemaObjectType.DIT_CONTENT_RULE, oidRegistry );
}
+
+
+ /**
+ * Clone the DITContentRuleRegistry
+ */
+ public DITContentRuleRegistry clone() throws CloneNotSupportedException
+ {
+ DITContentRuleRegistry clone = (DITContentRuleRegistry)super.clone();
+
+ return clone;
+ }
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITStructureRuleRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITStructureRuleRegistry.java?rev=826194&r1=826193&r2=826194&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITStructureRuleRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/DITStructureRuleRegistry.java Sat Oct 17 08:36:40 2009
@@ -20,9 +20,9 @@
package org.apache.directory.shared.ldap.schema.registries;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
import javax.naming.NamingException;
@@ -48,7 +48,7 @@
private static final boolean DEBUG = LOG.isDebugEnabled();
/** a map of DITStructureRule looked up by RuleId */
- protected final Map<Integer, DITStructureRule> byRuleId;
+ protected Map<Integer, DITStructureRule> byRuleId;
/**
* Creates a new default NormalizerRegistry instance.
@@ -58,7 +58,7 @@
public DITStructureRuleRegistry( OidRegistry oidRegistry )
{
super( SchemaObjectType.DIT_STRUCTURE_RULE, oidRegistry );
- byRuleId = new ConcurrentHashMap<Integer, DITStructureRule>();
+ byRuleId = new HashMap<Integer, DITStructureRule>();
}
@@ -246,4 +246,18 @@
}
}
}
+
+
+ /**
+ * Clone the DITStructureRuleRegistry
+ */
+ public DITStructureRuleRegistry clone() throws CloneNotSupportedException
+ {
+ DITStructureRuleRegistry clone = (DITStructureRuleRegistry)super.clone();
+
+ // Clone the RuleId map
+ clone.byRuleId = new HashMap<Integer, DITStructureRule>();
+
+ return clone;
+ }
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/LdapSyntaxRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/LdapSyntaxRegistry.java?rev=826194&r1=826193&r2=826194&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/LdapSyntaxRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/LdapSyntaxRegistry.java Sat Oct 17 08:36:40 2009
@@ -40,4 +40,15 @@
{
super( SchemaObjectType.LDAP_SYNTAX, oidRegistry );
}
+
+
+ /**
+ * Clone the LdapSyntaxRegistry
+ */
+ public LdapSyntaxRegistry clone() throws CloneNotSupportedException
+ {
+ LdapSyntaxRegistry clone = (LdapSyntaxRegistry)super.clone();
+
+ return clone;
+ }
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleRegistry.java?rev=826194&r1=826193&r2=826194&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleRegistry.java Sat Oct 17 08:36:40 2009
@@ -41,4 +41,15 @@
{
super( SchemaObjectType.MATCHING_RULE, oidRegistry );
}
+
+
+ /**
+ * Clone the MatchingRuleRegistry
+ */
+ public MatchingRuleRegistry clone() throws CloneNotSupportedException
+ {
+ MatchingRuleRegistry clone = (MatchingRuleRegistry)super.clone();
+
+ return clone;
+ }
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleUseRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleUseRegistry.java?rev=826194&r1=826193&r2=826194&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleUseRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/MatchingRuleUseRegistry.java Sat Oct 17 08:36:40 2009
@@ -43,4 +43,15 @@
{
super( SchemaObjectType.MATCHING_RULE_USE, oidRegistry );
}
+
+
+ /**
+ * Clone the MatchingRuleUseRegistry
+ */
+ public MatchingRuleUseRegistry clone() throws CloneNotSupportedException
+ {
+ MatchingRuleUseRegistry clone = (MatchingRuleUseRegistry)super.clone();
+
+ return clone;
+ }
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NameFormRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NameFormRegistry.java?rev=826194&r1=826193&r2=826194&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NameFormRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NameFormRegistry.java Sat Oct 17 08:36:40 2009
@@ -41,4 +41,15 @@
{
super( SchemaObjectType.NAME_FORM, oidRegistry );
}
+
+
+ /**
+ * Clone the DITContentRuleRegistry
+ */
+ public NameFormRegistry clone() throws CloneNotSupportedException
+ {
+ NameFormRegistry clone = (NameFormRegistry)super.clone();
+
+ return clone;
+ }
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NormalizerRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NormalizerRegistry.java?rev=826194&r1=826193&r2=826194&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NormalizerRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/NormalizerRegistry.java Sat Oct 17 08:36:40 2009
@@ -153,4 +153,15 @@
}
}
}
+
+
+ /**
+ * Clone the NormalizerRegistry
+ */
+ public NormalizerRegistry clone() throws CloneNotSupportedException
+ {
+ NormalizerRegistry clone = (NormalizerRegistry)super.clone();
+
+ return clone;
+ }
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ObjectClassRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ObjectClassRegistry.java?rev=826194&r1=826193&r2=826194&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ObjectClassRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/ObjectClassRegistry.java Sat Oct 17 08:36:40 2009
@@ -21,12 +21,12 @@
import java.util.Collections;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
import javax.naming.NamingException;
import javax.naming.directory.NoSuchAttributeException;
@@ -52,7 +52,7 @@
private static final boolean IS_DEBUG = LOG.isDebugEnabled();
/** maps OIDs to a Set of descendants for that OID */
- private final Map<String,Set<ObjectClass>> oidToDescendantSet;
+ private Map<String,Set<ObjectClass>> oidToDescendants;
/**
* Creates a new default ObjectClassRegistry instance.
@@ -62,7 +62,7 @@
public ObjectClassRegistry( OidRegistry oidRegistry )
{
super( SchemaObjectType.OBJECT_CLASS, oidRegistry );
- oidToDescendantSet= new ConcurrentHashMap<String,Set<ObjectClass>>();
+ oidToDescendants = new HashMap<String,Set<ObjectClass>>();
}
@@ -80,7 +80,7 @@
try
{
String oid = getOidByName( ancestorId );
- Set<ObjectClass> descendants = oidToDescendantSet.get( oid );
+ Set<ObjectClass> descendants = oidToDescendants.get( oid );
return (descendants != null) && !descendants.isEmpty();
}
catch ( NamingException ne )
@@ -106,7 +106,7 @@
try
{
String oid = getOidByName( ancestorId );
- Set<ObjectClass> descendants = oidToDescendantSet.get( oid );
+ Set<ObjectClass> descendants = oidToDescendants.get( oid );
if ( descendants == null )
{
@@ -141,13 +141,13 @@
for ( ObjectClass ancestor : ancestors )
{
// Get the ancestor's descendant, if any
- Set<ObjectClass> descendants = oidToDescendantSet.get( ancestor.getOid() );
+ Set<ObjectClass> descendants = oidToDescendants.get( ancestor.getOid() );
// Initialize the descendant Set to store the descendants for the attributeType
if ( descendants == null )
{
descendants = new HashSet<ObjectClass>( 1 );
- oidToDescendantSet.put( ancestor.getOid(), descendants );
+ oidToDescendants.put( ancestor.getOid(), descendants );
}
// Add the current ObjectClass as a descendant
@@ -186,7 +186,7 @@
for ( ObjectClass ancestor : ancestors )
{
// Get the ancestor's descendant, if any
- Set<ObjectClass> descendants = oidToDescendantSet.get( ancestor.getOid() );
+ Set<ObjectClass> descendants = oidToDescendants.get( ancestor.getOid() );
if ( descendants != null )
{
@@ -194,7 +194,7 @@
if ( descendants.size() == 0 )
{
- oidToDescendantSet.remove( descendants );
+ oidToDescendants.remove( descendants );
}
}
@@ -255,7 +255,7 @@
// Deleting an ObjectClass which might be used as a superior means we have
// to recursively update the descendant map. We also have to remove
// the at.oid -> descendant relation
- oidToDescendantSet.remove( numericOid );
+ oidToDescendants.remove( numericOid );
// Now recurse if needed
unregisterDescendants( removed, removed.getSuperiors() );
@@ -267,4 +267,18 @@
throw new NoSuchAttributeException( ne.getMessage() );
}
}
+
+
+ /**
+ * Clone the ObjectClassRegistry
+ */
+ public ObjectClassRegistry clone() throws CloneNotSupportedException
+ {
+ ObjectClassRegistry clone = (ObjectClassRegistry)super.clone();
+
+ // Clone the oidToDescendantSet (will be empty)
+ clone.oidToDescendants = new HashMap<String, Set<ObjectClass>>();
+
+ return clone;
+ }
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java?rev=826194&r1=826193&r2=826194&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/Registries.java Sat Oct 17 08:36:40 2009
@@ -56,7 +56,7 @@
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class Registries implements SchemaLoaderListener
+public class Registries implements SchemaLoaderListener, Cloneable
{
/** A logger for this class */
private static final Logger LOG = LoggerFactory.getLogger( Registries.class );
@@ -1723,4 +1723,46 @@
{
this.acceptDisabled = acceptDisabled;
}
+
+
+ /**
+ * Clone the Registries
+ */
+ public Registries clone() throws CloneNotSupportedException
+ {
+ // First clone the structure
+ Registries clone = (Registries)super.clone();
+
+ // We have to clone every SchemaObject registries now
+ clone.attributeTypeRegistry = attributeTypeRegistry.clone();
+ clone.comparatorRegistry = comparatorRegistry.clone();
+ clone.ditContentRuleRegistry = ditContentRuleRegistry.clone();
+ clone.ditStructureRuleRegistry = ditStructureRuleRegistry.clone();
+ clone.ldapSyntaxRegistry = ldapSyntaxRegistry.clone();
+ clone.matchingRuleRegistry = matchingRuleRegistry.clone();
+ clone.matchingRuleUseRegistry = matchingRuleUseRegistry.clone();
+ clone.nameFormRegistry = nameFormRegistry.clone();
+ clone.normalizerRegistry = normalizerRegistry.clone();
+ clone.objectClassRegistry = objectClassRegistry.clone();
+ clone.syntaxCheckerRegistry = syntaxCheckerRegistry.clone();
+
+ // Now, clone the oidRegistry
+ clone.oidRegistry = oidRegistry.clone();
+
+ // Clone the schema list
+ clone.loadedSchemas = new HashMap<String, Schema>();
+
+ for ( String schemaName : loadedSchemas.keySet() )
+ {
+ // We don't cone the schemas
+ clone.loadedSchemas.put( schemaName, loadedSchemas.get( schemaName ) );
+ }
+
+ // Last, not least, clone the Using and usedBy structures
+ // They will be empty
+ clone.using = new HashMap<SchemaWrapper, Set<SchemaWrapper>>();
+ clone.usedBy = new HashMap<SchemaWrapper, Set<SchemaWrapper>>();
+
+ return clone;
+ }
}
Modified: directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SyntaxCheckerRegistry.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SyntaxCheckerRegistry.java?rev=826194&r1=826193&r2=826194&view=diff
==============================================================================
--- directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SyntaxCheckerRegistry.java (original)
+++ directory/shared/branches/shared-schema/ldap/src/main/java/org/apache/directory/shared/ldap/schema/registries/SyntaxCheckerRegistry.java Sat Oct 17 08:36:40 2009
@@ -153,4 +153,15 @@
}
}
}
+
+
+ /**
+ * Clone the SyntaxCheckerRegistry
+ */
+ public SyntaxCheckerRegistry clone() throws CloneNotSupportedException
+ {
+ SyntaxCheckerRegistry clone = (SyntaxCheckerRegistry)super.clone();
+
+ return clone;
+ }
}