From 388f25a9dc58704ea19a333ba9a28054d48590b1 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Tue, 15 Dec 2009 21:58:47 +0000
Subject: [PATCH] Various changes:
---
sdk/src/org/opends/sdk/schema/SchemaBuilder.java | 133 ++++++++++++++++++++++++++-----------------
1 files changed, 80 insertions(+), 53 deletions(-)
diff --git a/sdk/src/org/opends/sdk/schema/SchemaBuilder.java b/sdk/src/org/opends/sdk/schema/SchemaBuilder.java
index 8516737..cd54d12 100644
--- a/sdk/src/org/opends/sdk/schema/SchemaBuilder.java
+++ b/sdk/src/org/opends/sdk/schema/SchemaBuilder.java
@@ -33,13 +33,16 @@
import static org.opends.sdk.schema.SchemaConstants.*;
import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Pattern;
import org.opends.sdk.DecodeException;
-import org.opends.sdk.LocalizedIllegalArgumentException;
import org.opends.sdk.LocalizableMessage;
+import org.opends.sdk.LocalizedIllegalArgumentException;
-import com.sun.opends.sdk.util.*;
+import com.sun.opends.sdk.util.StaticUtils;
+import com.sun.opends.sdk.util.SubstringReader;
+import com.sun.opends.sdk.util.Validator;
@@ -90,6 +93,10 @@
private Schema schema;
+ // A unique ID which can be used to uniquely identify schemas
+ // constructed without a name.
+ private final AtomicInteger nextSchemaID = new AtomicInteger();
+
/**
@@ -98,7 +105,7 @@
*/
public SchemaBuilder()
{
- initBuilder();
+ initBuilder(null);
}
@@ -106,7 +113,7 @@
/**
* Creates a new schema builder containing all of the schema elements
* from the provided schema and its compatibility options.
- *
+ *
* @param schema
* The initial contents of the schema builder.
* @throws NullPointerException
@@ -114,8 +121,7 @@
*/
public SchemaBuilder(Schema schema) throws NullPointerException
{
- Validator.ensureNotNull(schema);
- initBuilder();
+ initBuilder(schema.getSchemaName());
setSchemaCompatOptions(schema.getSchemaCompatOptions());
addSchema(schema, true);
}
@@ -123,8 +129,23 @@
/**
+ * Creates a new schema builder with no schema elements and default
+ * compatibility options.
+ *
+ * @param schemaName
+ * The user-friendly name of this schema which may be used
+ * for debugging purposes.
+ */
+ public SchemaBuilder(String schemaName)
+ {
+ initBuilder(schemaName);
+ }
+
+
+
+ /**
* Adds the provided attribute type definition to this schema builder.
- *
+ *
* @param definition
* The attribute type definition.
* @param overwrite
@@ -386,7 +407,7 @@
/**
* Adds the provided attribute type definition to this schema builder.
- *
+ *
* @param oid
* The OID of the attribute type definition.
* @param names
@@ -465,7 +486,7 @@
/**
* Adds the provided DIT content rule definition to this schema
* builder.
- *
+ *
* @param definition
* The DIT content rule definition.
* @param overwrite
@@ -622,7 +643,7 @@
/**
* Adds the provided DIT content rule definition to this schema
* builder.
- *
+ *
* @param structuralClass
* The name of the structural object class to which the DIT
* content rule applies.
@@ -677,7 +698,7 @@
/**
* Adds the provided DIT structure rule definition to this schema
* builder.
- *
+ *
* @param ruleID
* The rule identifier of the DIT structure rule.
* @param names
@@ -721,7 +742,7 @@
/**
* Adds the provided DIT structure rule definition to this schema
* builder.
- *
+ *
* @param definition
* The DIT structure rule definition.
* @param overwrite
@@ -874,7 +895,7 @@
/**
* Adds the provided enumeration syntax definition to this schema
* builder.
- *
+ *
* @param oid
* The OID of the enumeration syntax definition.
* @param description
@@ -923,7 +944,7 @@
/**
* Adds the provided matching rule definition to this schema builder.
- *
+ *
* @param definition
* The matching rule definition.
* @param overwrite
@@ -1070,7 +1091,7 @@
/**
* Adds the provided matching rule definition to this schema builder.
- *
+ *
* @param oid
* The OID of the matching rule definition.
* @param names
@@ -1114,7 +1135,7 @@
/**
* Adds the provided matching rule use definition to this schema
* builder.
- *
+ *
* @param definition
* The matching rule use definition.
* @param overwrite
@@ -1263,7 +1284,7 @@
/**
* Adds the provided matching rule use definition to this schema
* builder.
- *
+ *
* @param oid
* The OID of the matching rule use definition.
* @param names
@@ -1303,7 +1324,7 @@
/**
* Adds the provided name form definition to this schema builder.
- *
+ *
* @param definition
* The name form definition.
* @param overwrite
@@ -1468,7 +1489,7 @@
/**
* Adds the provided name form definition to this schema builder.
- *
+ *
* @param oid
* The OID of the name form definition.
* @param names
@@ -1514,7 +1535,7 @@
/**
* Adds the provided object class definition to this schema builder.
- *
+ *
* @param definition
* The object class definition.
* @param overwrite
@@ -1699,7 +1720,7 @@
/**
* Adds the provided object class definition to this schema builder.
- *
+ *
* @param oid
* The OID of the object class definition.
* @param names
@@ -1762,7 +1783,7 @@
/**
* Adds the provided pattern syntax definition to this schema builder.
- *
+ *
* @param oid
* The OID of the pattern syntax definition.
* @param description
@@ -1795,7 +1816,7 @@
/**
* Adds all of the schema elements in the provided schema to this
* schema builder.
- *
+ *
* @param schema
* The schema to be copied into this schema builder.
* @param overwrite
@@ -1862,7 +1883,7 @@
/**
* Adds the provided substitution syntax definition to this schema
* builder.
- *
+ *
* @param oid
* The OID of the substitution syntax definition.
* @param description
@@ -1894,7 +1915,7 @@
/**
* Adds the provided syntax definition to this schema builder.
- *
+ *
* @param definition
* The syntax definition.
* @param overwrite
@@ -2034,7 +2055,7 @@
/**
* Adds the provided syntax definition to this schema builder.
- *
+ *
* @param oid
* The OID of the syntax definition.
* @param description
@@ -2068,7 +2089,7 @@
/**
* Removes the named attribute type from this schema builder.
- *
+ *
* @param name
* The name or OID of the attribute type to be removed.
* @return {@code true} if the attribute type was found.
@@ -2087,7 +2108,7 @@
/**
* Removes the named DIT content rule from this schema builder.
- *
+ *
* @param name
* The name or OID of the DIT content rule to be removed.
* @return {@code true} if the DIT content rule was found.
@@ -2106,7 +2127,7 @@
/**
* Removes the specified DIT structure rule from this schema builder.
- *
+ *
* @param ruleID
* The ID of the DIT structure rule to be removed.
* @return {@code true} if the DIT structure rule was found.
@@ -2125,7 +2146,7 @@
/**
* Removes the named matching rule from this schema builder.
- *
+ *
* @param name
* The name or OID of the matching rule to be removed.
* @return {@code true} if the matching rule was found.
@@ -2144,7 +2165,7 @@
/**
* Removes the named matching rule use from this schema builder.
- *
+ *
* @param name
* The name or OID of the matching rule use to be removed.
* @return {@code true} if the matching rule use was found.
@@ -2163,7 +2184,7 @@
/**
* Removes the named name form from this schema builder.
- *
+ *
* @param name
* The name or OID of the name form to be removed.
* @return {@code true} if the name form was found.
@@ -2182,7 +2203,7 @@
/**
* Removes the named object class from this schema builder.
- *
+ *
* @param name
* The name or OID of the object class to be removed.
* @return {@code true} if the object class was found.
@@ -2201,7 +2222,7 @@
/**
* Removes the named syntax from this schema builder.
- *
+ *
* @param numericOID
* The name of the syntax to be removed.
* @return {@code true} if the syntax was found.
@@ -2223,7 +2244,7 @@
* schema builder maintains its own set of compatibility options, so
* subsequent changes to the provided set of options will not impact
* this schema builder.
- *
+ *
* @param options
* The set of schema compatibility options that this schema
* builder should use.
@@ -2248,7 +2269,7 @@
* <p>
* When this method returns this schema builder is empty and contains
* a default set of compatibility options.
- *
+ *
* @return A {@code Schema} containing all of the schema elements
* contained in this schema builder as well as the same set of
* schema compatibility options
@@ -2257,19 +2278,12 @@
{
validate();
final Schema builtSchema = schema;
- initBuilder();
+ initBuilder(null);
return builtSchema;
}
- void addWarning(LocalizableMessage warning)
- {
- warnings.add(warning);
- }
-
-
-
private synchronized void addAttributeType(AttributeType attribute,
boolean overwrite) throws ConflictingSchemaElementException
{
@@ -2589,7 +2603,7 @@
- private void initBuilder()
+ private void initBuilder(String schemaName)
{
numericOID2Syntaxes = new HashMap<String, Syntax>();
numericOID2MatchingRules = new HashMap<String, MatchingRule>();
@@ -2613,14 +2627,20 @@
options = SchemaCompatOptions.defaultOptions();
warnings = new LinkedList<LocalizableMessage>();
- schema = new Schema(numericOID2Syntaxes, numericOID2MatchingRules,
- numericOID2MatchingRuleUses, numericOID2AttributeTypes,
- numericOID2ObjectClasses, numericOID2NameForms,
- numericOID2ContentRules, id2StructureRules, name2MatchingRules,
- name2MatchingRuleUses, name2AttributeTypes, name2ObjectClasses,
- name2NameForms, name2ContentRules, name2StructureRules,
- objectClass2NameForms, nameForm2StructureRules, options,
- warnings);
+ if (schemaName == null)
+ {
+ schemaName = String.format("Schema#%d", nextSchemaID
+ .getAndIncrement());
+ }
+
+ schema = new Schema(schemaName, numericOID2Syntaxes,
+ numericOID2MatchingRules, numericOID2MatchingRuleUses,
+ numericOID2AttributeTypes, numericOID2ObjectClasses,
+ numericOID2NameForms, numericOID2ContentRules,
+ id2StructureRules, name2MatchingRules, name2MatchingRuleUses,
+ name2AttributeTypes, name2ObjectClasses, name2NameForms,
+ name2ContentRules, name2StructureRules, objectClass2NameForms,
+ nameForm2StructureRules, options, warnings);
}
@@ -2973,4 +2993,11 @@
}
}
+
+
+
+ void addWarning(LocalizableMessage warning)
+ {
+ warnings.add(warning);
+ }
}
--
Gitblit v1.10.0