From 87ef404a3f6a48437968110e978da3ca29cc6e64 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 20 Feb 2014 15:03:52 +0000
Subject: [PATCH] OPENDJ-1308 Migrate schema support
---
opendj3-server-dev/src/server/org/opends/server/types/DITContentRule.java | 145 +++---------------------------------
opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java | 40 +++++-----
opendj3-server-dev/src/server/org/opends/server/types/Entry.java | 6
opendj3-server-dev/src/server/org/opends/server/types/Schema.java | 4
4 files changed, 37 insertions(+), 158 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java b/opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java
index 2e52322..d1c890c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java
@@ -1907,7 +1907,7 @@
dcr.getProhibitedAttributes().contains(removeType))
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_REMOVE_AT_IN_DCR.get(
- removeType.getNameOrOID(), dcr.getName());
+ removeType.getNameOrOID(), dcr.getNameOrOID());
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
}
}
@@ -2220,7 +2220,7 @@
dcr.getAuxiliaryClasses().contains(removeClass))
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_REMOVE_OC_IN_DCR.get(
- removeClass.getNameOrOID(), dcr.getName());
+ removeClass.getNameOrOID(), dcr.getNameOrOID());
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
}
}
@@ -2542,8 +2542,8 @@
else
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_MULTIPLE_CONFLICTS_FOR_ADD_DCR.
- get(ditContentRule.getName(), existingDCR.getName(),
- dcr.getName());
+ get(ditContentRule.getNameOrOID(), existingDCR.getNameOrOID(),
+ dcr.getNameOrOID());
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM,
message);
}
@@ -2562,33 +2562,33 @@
if ((existingRuleForClass != null) && (existingRuleForClass != existingDCR))
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_STRUCTURAL_OC_CONFLICT_FOR_ADD_DCR.
- get(ditContentRule.getName(), structuralClass.getNameOrOID(),
- existingRuleForClass.getName());
+ get(ditContentRule.getNameOrOID(), structuralClass.getNameOrOID(),
+ existingRuleForClass.getNameOrOID());
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
}
// Make sure that the new DIT content rule doesn't reference an undefined
- // structural or auxiliaryclass, or an undefined required, optional, or
+ // structural or auxiliary class, or an undefined required, optional, or
// prohibited attribute type.
if (! schema.hasObjectClass(structuralClass.getOID()))
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_DCR_UNDEFINED_STRUCTURAL_OC.get(
- ditContentRule.getName(), structuralClass.getNameOrOID());
+ ditContentRule.getNameOrOID(), structuralClass.getNameOrOID());
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
}
if (structuralClass.getObjectClassType() != ObjectClassType.STRUCTURAL)
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_DCR_OC_NOT_STRUCTURAL.get(
- ditContentRule.getName(), structuralClass.getNameOrOID());
+ ditContentRule.getNameOrOID(), structuralClass.getNameOrOID());
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
}
if (structuralClass.isObsolete())
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_DCR_STRUCTURAL_OC_OBSOLETE.get(
- ditContentRule.getName(), structuralClass.getNameOrOID());
+ ditContentRule.getNameOrOID(), structuralClass.getNameOrOID());
throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, message);
}
@@ -2597,19 +2597,19 @@
if (! schema.hasObjectClass(oc.getOID()))
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_DCR_UNDEFINED_AUXILIARY_OC.get(
- ditContentRule.getName(), oc.getNameOrOID());
+ ditContentRule.getNameOrOID(), oc.getNameOrOID());
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
}
if (oc.getObjectClassType() != ObjectClassType.AUXILIARY)
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_DCR_OC_NOT_AUXILIARY.get(
- ditContentRule.getName(), oc.getNameOrOID());
+ ditContentRule.getNameOrOID(), oc.getNameOrOID());
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
}
if (oc.isObsolete())
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_DCR_OBSOLETE_AUXILIARY_OC.get(
- ditContentRule.getName(), oc.getNameOrOID());
+ ditContentRule.getNameOrOID(), oc.getNameOrOID());
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
}
}
@@ -2619,13 +2619,13 @@
if (! schema.hasAttributeType(at.getOID()))
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_DCR_UNDEFINED_REQUIRED_ATTR.get(
- ditContentRule.getName(), at.getNameOrOID());
+ ditContentRule.getNameOrOID(), at.getNameOrOID());
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
}
else if (at.isObsolete())
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_DCR_OBSOLETE_REQUIRED_ATTR.get(
- ditContentRule.getName(), at.getNameOrOID());
+ ditContentRule.getNameOrOID(), at.getNameOrOID());
throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, message);
}
}
@@ -2635,13 +2635,13 @@
if (! schema.hasAttributeType(at.getOID()))
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_DCR_UNDEFINED_OPTIONAL_ATTR.get(
- ditContentRule.getName(), at.getNameOrOID());
+ ditContentRule.getNameOrOID(), at.getNameOrOID());
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
}
else if (at.isObsolete())
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_DCR_OBSOLETE_OPTIONAL_ATTR.get(
- ditContentRule.getName(), at.getNameOrOID());
+ ditContentRule.getNameOrOID(), at.getNameOrOID());
throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, message);
}
}
@@ -2651,13 +2651,13 @@
if (! schema.hasAttributeType(at.getOID()))
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_DCR_UNDEFINED_PROHIBITED_ATTR.get(
- ditContentRule.getName(), at.getNameOrOID());
+ ditContentRule.getNameOrOID(), at.getNameOrOID());
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
}
else if (at.isObsolete())
{
LocalizableMessage message = ERR_SCHEMA_MODIFY_DCR_OBSOLETE_PROHIBITED_ATTR.get(
- ditContentRule.getName(), at.getNameOrOID());
+ ditContentRule.getNameOrOID(), at.getNameOrOID());
throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, message);
}
}
@@ -2754,7 +2754,7 @@
if ((removeDCR == null) || (! removeDCR.equals(ditContentRule)))
{
LocalizableMessage message =
- ERR_SCHEMA_MODIFY_REMOVE_NO_SUCH_DCR.get(ditContentRule.getName());
+ ERR_SCHEMA_MODIFY_REMOVE_NO_SUCH_DCR.get(ditContentRule.getNameOrOID());
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
}
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/DITContentRule.java b/opendj3-server-dev/src/server/org/opends/server/types/DITContentRule.java
index 5f83b63..d8d4cb4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/DITContentRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/DITContentRule.java
@@ -26,7 +26,6 @@
*/
package org.opends.server.types;
-import org.forgerock.opendj.ldap.ByteString;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
@@ -35,13 +34,12 @@
import java.util.Map;
import java.util.Set;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.ByteString;
import org.opends.server.schema.DITContentRuleSyntax;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
-import static org.opends.server.util.ServerConstants.*;
import static org.forgerock.util.Reject.*;
-
-
+import static org.opends.server.util.ServerConstants.*;
/**
* This class defines a DIT content rule, which defines the set of
@@ -236,6 +234,7 @@
* @return The definition string used to create this DIT content
* rule.
*/
+ @Override
public String getDefinition()
{
return definition;
@@ -246,6 +245,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public DITContentRule recreateFromDefinition(Schema schema)
throws DirectoryException
{
@@ -294,7 +294,7 @@
* @return The primary name to use to reference this DIT content
* rule, or {@code null} if there is none.
*/
- public String getName()
+ public String getNameOrOID()
{
if (names.isEmpty())
{
@@ -334,6 +334,7 @@
* for this DIT content rule, or {@code null} if it is not
* known or if it is not stored in any schema file.
*/
+ @Override
public String getSchemaFile()
{
List<String> values =
@@ -355,6 +356,7 @@
* @param schemaFile The name of the schema file that contains the
* definition for this DIT content rule.
*/
+ @Override
public void setSchemaFile(String schemaFile)
{
setExtraProperty(SCHEMA_PROPERTY_FILENAME, schemaFile);
@@ -363,19 +365,6 @@
/**
- * Retrieves the description for this DIT content rule.
- *
- * @return The description for this DIT content rule, or
- * {@code null} if there is none.
- */
- public String getDescription()
- {
- return description;
- }
-
-
-
- /**
* Retrieves the set of auxiliary objectclasses that may be used for
* entries associated with this DIT content rule.
*
@@ -390,24 +379,6 @@
/**
- * Indicates whether the provided auxiliary objectclass is allowed
- * for use by this DIT content rule.
- *
- * @param auxiliaryClass The auxiliary objectclass for which to
- * make the determination.
- *
- * @return {@code true} if the provided auxiliary objectclass is
- * allowed for use by this DIT content rule, or
- * {@code false} if not.
- */
- public boolean isAllowedAuxiliaryClass(ObjectClass auxiliaryClass)
- {
- return auxiliaryClasses.contains(auxiliaryClass);
- }
-
-
-
- /**
* Retrieves the set of required attributes for this DIT content
* rule.
*
@@ -489,38 +460,6 @@
/**
- * Indicates whether the provided attribute type is in the list of
- * required or optional attributes for this DIT content rule.
- *
- * @param attributeType The attribute type for which to make the
- * determination.
- * @param acceptEmpty Indicates whether an empty list of
- * required or optional attributes should be
- * taken to indicate that all attributes
- * allowed for an objectclass will be
- * acceptable.
- *
- * @return {@code true} if the provided attribute type is required
- * or allowed for this DIT content rule, or {@code false}
- * if it is not.
- */
- public boolean isRequiredOrOptional(AttributeType attributeType,
- boolean acceptEmpty)
- {
- if (acceptEmpty &&
- (requiredAttributes.isEmpty() ||
- optionalAttributes.isEmpty()))
- {
- return true;
- }
-
- return (requiredAttributes.contains(attributeType) ||
- optionalAttributes.contains(attributeType));
- }
-
-
-
- /**
* Retrieves the set of prohibited attributes for this DIT content
* rule.
*
@@ -533,25 +472,6 @@
}
-
- /**
- * Indicates whether the provided attribute type is included in the
- * prohibited attribute list for this DIT content rule.
- *
- * @param attributeType The attribute type for which to make the
- * determination.
- *
- * @return {@code true} if the provided attribute type is
- * prohibited for this DIT content rule, or {@code false}
- * if not.
- */
- public boolean isProhibited(AttributeType attributeType)
- {
- return prohibitedAttributes.contains(attributeType);
- }
-
-
-
/**
* Indicates whether this DIT content rule is declared "obsolete".
*
@@ -582,24 +502,6 @@
/**
- * Retrieves the value of the specified "extra" property for this
- * DIT content rule.
- *
- * @param propertyName The name of the "extra" property for which
- * to retrieve the value.
- *
- * @return The value of the specified "extra" property for this DIT
- * content rule, or {@code null} if no such property is
- * defined.
- */
- public List<String> getExtraProperty(String propertyName)
- {
- return extraProperties.get(propertyName);
- }
-
-
-
- /**
* Specifies the provided "extra" property for this DIT content
* rule.
*
@@ -608,7 +510,7 @@
* @param value The value for the "extra" property, or
* {@code null} if the property is to be removed.
*/
- public void setExtraProperty(String name, String value)
+ private void setExtraProperty(String name, String value)
{
ifNull(name);
@@ -628,32 +530,6 @@
/**
- * Specifies the provided "extra" property for this DIT content
- * rule.
- *
- * @param name The name for the "extra" property. It must not
- * be {@code null}.
- * @param values The set of value for the "extra" property, or
- * {@code null} if the property is to be removed.
- */
- public void setExtraProperty(String name, List<String> values)
- {
- ifNull(name);
-
- if ((values == null) || values.isEmpty())
- {
- extraProperties.remove(name);
- }
- else
- {
- LinkedList<String> valuesCopy = new LinkedList<String>(values);
- extraProperties.put(name, valuesCopy);
- }
- }
-
-
-
- /**
* Indicates whether the provided object is equal to this DIT
* content rule. The object will be considered equal if it is a DIT
* content rule for the same structural objectclass and the same
@@ -667,6 +543,7 @@
* @return {@code true} if the provided object is equal to
* this DIT content rule, or {@code false} if not.
*/
+ @Override
public boolean equals(Object o)
{
if (this == o)
@@ -710,6 +587,7 @@
*
* @return The hash code for this DIT content rule.
*/
+ @Override
public int hashCode()
{
return structuralClass.hashCode();
@@ -724,6 +602,7 @@
* @return The string representation of this DIT content rule in
* the form specified in RFC 2252.
*/
+ @Override
public String toString()
{
StringBuilder buffer = new StringBuilder();
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/Entry.java b/opendj3-server-dev/src/server/org/opends/server/types/Entry.java
index 58cb8f4..647b138 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/Entry.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/Entry.java
@@ -1997,7 +1997,7 @@
ERR_ENTRY_SCHEMA_DISALLOWED_AUXILIARY_CLASS.get(
dn,
o.getNameOrOID(),
- ditContentRule.getName());
+ ditContentRule.getNameOrOID());
if (structuralPolicy == AcceptRejectWarn.REJECT)
{
invalidReason.append(message);
@@ -2207,7 +2207,7 @@
ERR_ENTRY_SCHEMA_MISSING_REQUIRED_ATTR_FOR_DCR.get(
dn,
t.getNameOrOID(),
- ditContentRule.getName());
+ ditContentRule.getNameOrOID());
if (structuralPolicy == AcceptRejectWarn.REJECT)
{
@@ -2231,7 +2231,7 @@
ERR_ENTRY_SCHEMA_PROHIBITED_ATTR_FOR_DCR.get(
dn,
t.getNameOrOID(),
- ditContentRule.getName());
+ ditContentRule.getNameOrOID());
if (structuralPolicy == AcceptRejectWarn.REJECT)
{
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/Schema.java b/opendj3-server-dev/src/server/org/opends/server/types/Schema.java
index 59bc495..85918f4 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/Schema.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/Schema.java
@@ -2507,9 +2507,9 @@
ditContentRules.get(objectClass);
LocalizableMessage message = ERR_SCHEMA_CONFLICTING_DIT_CONTENT_RULE.
- get(ditContentRule.getName(),
+ get(ditContentRule.getNameOrOID(),
objectClass.getNameOrOID(),
- conflictingRule.getName());
+ conflictingRule.getNameOrOID());
throw new DirectoryException(
ResultCode.CONSTRAINT_VIOLATION, message);
}
--
Gitblit v1.10.0