From 377b2709c64b32fe93905b466482216c2cc0581c Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 19 Mar 2014 16:30:32 +0000
Subject: [PATCH] OPENDJ-1368 (CR-3232) Remove AttributeValue
---
opendj3-server-dev/src/server/org/opends/server/backends/SchemaBackend.java | 208 ++++++++++++++++++++++------------------------------
1 files changed, 88 insertions(+), 120 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 6483fb4..d5bf67b 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
@@ -56,6 +56,7 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ConditionResult;
import org.forgerock.opendj.ldap.ModificationType;
import org.forgerock.opendj.ldap.ResultCode;
@@ -194,20 +195,20 @@
/**
* The value containing DN of the user we'll say created the configuration.
*/
- private AttributeValue creatorsName;
+ private ByteString creatorsName;
/**
* The value containing the DN of the last user to modify the configuration.
*/
- private AttributeValue modifiersName;
+ private ByteString modifiersName;
/** The timestamp that will be used for the schema creation time. */
- private AttributeValue createTimestamp;
+ private ByteString createTimestamp;
/**
* The timestamp that will be used for the latest schema modification time.
*/
- private AttributeValue modifyTimestamp;
+ private ByteString modifyTimestamp;
/**
* Indicates whether the attributes of the schema entry should always be
@@ -330,10 +331,8 @@
cfg.getBaseDN().toArray(newBaseDNs);
this.baseDNs = newBaseDNs;
- creatorsName = AttributeValues.create(
- creatorsNameType, newBaseDNs[0].toString());
- modifiersName = AttributeValues.create(
- modifiersNameType, newBaseDNs[0].toString());
+ creatorsName = ByteString.valueOf(newBaseDNs[0].toString());
+ modifiersName = ByteString.valueOf(newBaseDNs[0].toString());
long createTime = DirectoryServer.getSchema().getOldestModificationTime();
createTimestamp =
@@ -974,20 +973,19 @@
case ADD:
if (at.equals(attributeTypesType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
AttributeType type;
try
{
- type = AttributeTypeSyntax.decodeAttributeType(v.getValue(),
- newSchema, false);
+ type = AttributeTypeSyntax.decodeAttributeType(v, newSchema, false);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_ATTRTYPE.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -997,20 +995,19 @@
}
else if (at.equals(objectClassesType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
ObjectClass oc;
try
{
- oc = ObjectClassSyntax.decodeObjectClass(v.getValue(),
- newSchema, false);
+ oc = ObjectClassSyntax.decodeObjectClass(v, newSchema, false);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_OBJECTCLASS.
- get(v.getValue(), de.getMessageObject());
+ get(v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -1020,20 +1017,19 @@
}
else if (at.equals(nameFormsType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
NameForm nf;
try
{
- nf = NameFormSyntax.decodeNameForm(v.getValue(), newSchema,
- false);
+ nf = NameFormSyntax.decodeNameForm(v, newSchema, false);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_NAME_FORM.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -1043,20 +1039,19 @@
}
else if (at.equals(ditContentRulesType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
DITContentRule dcr;
try
{
- dcr = DITContentRuleSyntax.decodeDITContentRule(v.getValue(),
- newSchema, false);
+ dcr = DITContentRuleSyntax.decodeDITContentRule(v, newSchema, false);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_DCR.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -1066,20 +1061,19 @@
}
else if (at.equals(ditStructureRulesType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
DITStructureRule dsr;
try
{
- dsr = DITStructureRuleSyntax.decodeDITStructureRule(
- v.getValue(), newSchema, false);
+ dsr = DITStructureRuleSyntax.decodeDITStructureRule(v, newSchema, false);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_DSR.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -1089,20 +1083,19 @@
}
else if (at.equals(matchingRuleUsesType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
MatchingRuleUse mru;
try
{
- mru = MatchingRuleUseSyntax.decodeMatchingRuleUse(v.getValue(),
- newSchema, false);
+ mru = MatchingRuleUseSyntax.decodeMatchingRuleUse(v, newSchema, false);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_MR_USE.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -1112,21 +1105,19 @@
}
else if (at.equals(ldapSyntaxesType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
LDAPSyntaxDescription lsd;
try
{
- lsd = LDAPSyntaxDescriptionSyntax.decodeLDAPSyntax(
- v.getValue(), newSchema, false);
+ lsd = LDAPSyntaxDescriptionSyntax.decodeLDAPSyntax(v, newSchema, false);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message =
- ERR_SCHEMA_MODIFY_CANNOT_DECODE_LDAP_SYNTAX.get(
- v.getValue(), de.getMessageObject());
+ ERR_SCHEMA_MODIFY_CANNOT_DECODE_LDAP_SYNTAX.get(v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -1155,20 +1146,19 @@
if (at.equals(attributeTypesType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
AttributeType type;
try
{
- type = AttributeTypeSyntax.decodeAttributeType(v.getValue(),
- newSchema, false);
+ type = AttributeTypeSyntax.decodeAttributeType(v, newSchema, false);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_ATTRTYPE.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -1179,20 +1169,19 @@
}
else if (at.equals(objectClassesType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
ObjectClass oc;
try
{
- oc = ObjectClassSyntax.decodeObjectClass(v.getValue(),
- newSchema, false);
+ oc = ObjectClassSyntax.decodeObjectClass(v, newSchema, false);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_OBJECTCLASS.
- get(v.getValue(), de.getMessageObject());
+ get(v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -1202,20 +1191,19 @@
}
else if (at.equals(nameFormsType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
NameForm nf;
try
{
- nf = NameFormSyntax.decodeNameForm(v.getValue(), newSchema,
- false);
+ nf = NameFormSyntax.decodeNameForm(v, newSchema, false);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_NAME_FORM.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -1225,20 +1213,19 @@
}
else if (at.equals(ditContentRulesType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
DITContentRule dcr;
try
{
- dcr = DITContentRuleSyntax.decodeDITContentRule(v.getValue(),
- newSchema, false);
+ dcr = DITContentRuleSyntax.decodeDITContentRule(v, newSchema, false);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_DCR.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -1248,20 +1235,19 @@
}
else if (at.equals(ditStructureRulesType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
DITStructureRule dsr;
try
{
- dsr = DITStructureRuleSyntax.decodeDITStructureRule(
- v.getValue(), newSchema, false);
+ dsr = DITStructureRuleSyntax.decodeDITStructureRule(v, newSchema, false);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_DSR.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -1272,20 +1258,19 @@
}
else if (at.equals(matchingRuleUsesType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
MatchingRuleUse mru;
try
{
- mru = MatchingRuleUseSyntax.decodeMatchingRuleUse(v.getValue(),
- newSchema, false);
+ mru = MatchingRuleUseSyntax.decodeMatchingRuleUse(v, newSchema, false);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_MR_USE.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -1295,13 +1280,12 @@
}
else if (at.equals(ldapSyntaxesType))
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
LDAPSyntaxDescription lsd;
try
{
- lsd = LDAPSyntaxDescriptionSyntax.decodeLDAPSyntax(
- v.getValue(), newSchema, false);
+ lsd = LDAPSyntaxDescriptionSyntax.decodeLDAPSyntax(v, newSchema, false);
}
catch (DirectoryException de)
{
@@ -1309,7 +1293,7 @@
LocalizableMessage message =
ERR_SCHEMA_MODIFY_CANNOT_DECODE_LDAP_SYNTAX.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
@@ -1371,8 +1355,7 @@
authzDN = DN.rootDN();
}
- modifiersName = AttributeValues.create(
- modifiersNameType, authzDN.toString());
+ modifiersName = ByteString.valueOf(authzDN.toString());
modifyTimestamp = GeneralizedTimeSyntax.createGeneralizedTimeValue(
System.currentTimeMillis());
}
@@ -1665,23 +1648,21 @@
continue;
}
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
AttributeType at;
try
{
- at = AttributeTypeSyntax.decodeAttributeType(v.getValue(), schema,
- true);
+ at = AttributeTypeSyntax.decodeAttributeType(v, schema, true);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_ATTRTYPE.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
- ResultCode.INVALID_ATTRIBUTE_SYNTAX, message,
- de);
+ ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
if (attributeType.getOID().equals(at.getOID()))
@@ -1961,22 +1942,21 @@
continue;
}
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
ObjectClass oc;
try
{
- oc = ObjectClassSyntax.decodeObjectClass(v.getValue(), schema, true);
+ oc = ObjectClassSyntax.decodeObjectClass(v, schema, true);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_OBJECTCLASS.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
- ResultCode.INVALID_ATTRIBUTE_SYNTAX, message,
- de);
+ ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
if (objectClass.getOID().equals(oc.getOID()))
@@ -2230,22 +2210,21 @@
continue;
}
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
NameForm nf;
try
{
- nf = NameFormSyntax.decodeNameForm(v.getValue(), schema, true);
+ nf = NameFormSyntax.decodeNameForm(v, schema, true);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_NAME_FORM.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
- ResultCode.INVALID_ATTRIBUTE_SYNTAX, message,
- de);
+ ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
if (nameForm.getOID().equals(nf.getOID()))
@@ -2700,23 +2679,21 @@
continue;
}
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
DITStructureRule dsr;
try
{
- dsr = DITStructureRuleSyntax.decodeDITStructureRule(
- v.getValue(), schema, true);
+ dsr = DITStructureRuleSyntax.decodeDITStructureRule(v, schema, true);
}
catch (DirectoryException de)
{
logger.traceException(de);
LocalizableMessage message = ERR_SCHEMA_MODIFY_CANNOT_DECODE_DSR.get(
- v.getValue(), de.getMessageObject());
+ v, de.getMessageObject());
throw new DirectoryException(
- ResultCode.INVALID_ATTRIBUTE_SYNTAX, message,
- de);
+ ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
}
if (ditStructureRule.getRuleID() == dsr.getRuleID())
@@ -3082,14 +3059,13 @@
* this only for the real part of the ldapsyntaxes attribute. The real part
* is read and write to/from the schema files.
*/
- Set<AttributeValue> values = new LinkedHashSet<AttributeValue>();
+ Set<ByteString> values = new LinkedHashSet<ByteString>();
for (LDAPSyntaxDescription ldapSyntax :
schema.getLdapSyntaxDescriptions().values())
{
if (schemaFile.equals(getSchemaFile(ldapSyntax)))
{
- values.add(AttributeValues.create(ldapSyntaxesType,
- ldapSyntax.toString()));
+ values.add(ByteString.valueOf(ldapSyntax.toString()));
}
}
@@ -3106,7 +3082,7 @@
// to be careful of the ordering to ensure that any superior types in the
// same file are written before the subordinate types.
Set<AttributeType> addedTypes = new HashSet<AttributeType>();
- values = new LinkedHashSet<AttributeValue>();
+ values = new LinkedHashSet<ByteString>();
for (AttributeType at : schema.getAttributeTypes().values())
{
if (schemaFile.equals(getSchemaFile(at)))
@@ -3129,7 +3105,7 @@
// to be careful of the ordering to ensure that any superior classes in the
// same file are written before the subordinate classes.
Set<ObjectClass> addedClasses = new HashSet<ObjectClass>();
- values = new LinkedHashSet<AttributeValue>();
+ values = new LinkedHashSet<ByteString>();
for (ObjectClass oc : schema.getObjectClasses().values())
{
if (schemaFile.equals(getSchemaFile(oc)))
@@ -3152,14 +3128,14 @@
// Add all of the appropriate name forms to the schema entry. Since there
// is no hierarchical relationship between name forms, we don't need to
// worry about ordering.
- values = new LinkedHashSet<AttributeValue>();
+ values = new LinkedHashSet<ByteString>();
for (List<NameForm> forms : schema.getNameFormsByObjectClass().values())
{
for(NameForm nf : forms)
{
if (schemaFile.equals(getSchemaFile(nf)))
{
- values.add(AttributeValues.create(nameFormsType, nf.toString()));
+ values.add(ByteString.valueOf(nf.toString()));
}
}
}
@@ -3177,13 +3153,12 @@
// Add all of the appropriate DIT content rules to the schema entry. Since
// there is no hierarchical relationship between DIT content rules, we don't
// need to worry about ordering.
- values = new LinkedHashSet<AttributeValue>();
+ values = new LinkedHashSet<ByteString>();
for (DITContentRule dcr : schema.getDITContentRules().values())
{
if (schemaFile.equals(getSchemaFile(dcr)))
{
- values.add(AttributeValues.create(ditContentRulesType,
- dcr.toString()));
+ values.add(ByteString.valueOf(dcr.toString()));
}
}
@@ -3201,7 +3176,7 @@
// need to be careful of the ordering to ensure that any superior rules in
// the same file are written before the subordinate rules.
Set<DITStructureRule> addedDSRs = new HashSet<DITStructureRule>();
- values = new LinkedHashSet<AttributeValue>();
+ values = new LinkedHashSet<ByteString>();
for (DITStructureRule dsr : schema.getDITStructureRulesByID().values())
{
if (schemaFile.equals(getSchemaFile(dsr)))
@@ -3224,13 +3199,12 @@
// Add all of the appropriate matching rule uses to the schema entry. Since
// there is no hierarchical relationship between matching rule uses, we
// don't need to worry about ordering.
- values = new LinkedHashSet<AttributeValue>();
+ values = new LinkedHashSet<ByteString>();
for (MatchingRuleUse mru : schema.getMatchingRuleUses().values())
{
if (schemaFile.equals(getSchemaFile(mru)))
{
- values.add(AttributeValues.create(matchingRuleUsesType,
- mru.toString()));
+ values.add(ByteString.valueOf(mru.toString()));
}
}
@@ -3287,7 +3261,7 @@
*/
private void addAttrTypeToSchemaFile(Schema schema, String schemaFile,
AttributeType attributeType,
- Set<AttributeValue> values,
+ Set<ByteString> values,
Set<AttributeType> addedTypes,
int depth)
throws DirectoryException
@@ -3313,8 +3287,7 @@
addedTypes, depth+1);
}
- values.add(AttributeValues.create(attributeTypesType,
- attributeType.toString()));
+ values.add(ByteString.valueOf(attributeType.toString()));
addedTypes.add(attributeType);
}
@@ -3338,7 +3311,7 @@
*/
private void addObjectClassToSchemaFile(Schema schema, String schemaFile,
ObjectClass objectClass,
- Set<AttributeValue> values,
+ Set<ByteString> values,
Set<ObjectClass> addedClasses,
int depth)
throws DirectoryException
@@ -3364,8 +3337,7 @@
addedClasses, depth+1);
}
}
- values.add(AttributeValues.create(objectClassesType,
- objectClass.toString()));
+ values.add(ByteString.valueOf(objectClass.toString()));
addedClasses.add(objectClass);
}
@@ -3390,7 +3362,7 @@
*/
private void addDITStructureRuleToSchemaFile(Schema schema, String schemaFile,
DITStructureRule ditStructureRule,
- Set<AttributeValue> values,
+ Set<ByteString> values,
Set<DITStructureRule> addedDSRs, int depth)
throws DirectoryException
{
@@ -3415,8 +3387,7 @@
}
}
- values.add(AttributeValues.create(ditStructureRulesType,
- ditStructureRule.toString()));
+ values.add(ByteString.valueOf(ditStructureRule.toString()));
addedDSRs.add(ditStructureRule);
}
@@ -3951,11 +3922,10 @@
{
// Look for attributetypes that could have been added to the schema
// or modified in the schema
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
// Parse the attribute type.
- AttributeType attrType = AttributeTypeSyntax.decodeAttributeType(
- v.getValue(), schema, false);
+ AttributeType attrType = AttributeTypeSyntax.decodeAttributeType(v, schema, false);
String schemaFile = getSchemaFile(attrType);
if ((schemaFile != null) &&
(schemaFile.equals(CONFIG_SCHEMA_ELEMENTS_FILE)))
@@ -4058,12 +4028,11 @@
{
for (Attribute a : ocList)
{
- for (AttributeValue v : a)
+ for (ByteString v : a)
{
// It IS important here to allow the unknown elements that could
// appear in the new config schema.
- ObjectClass newObjectClass = ObjectClassSyntax.decodeObjectClass(
- v.getValue(), newSchema, true);
+ ObjectClass newObjectClass = ObjectClassSyntax.decodeObjectClass(v, newSchema, true);
String schemaFile = getSchemaFile(newObjectClass);
if ((schemaFile != null) &&
(schemaFile.equals(CONFIG_SCHEMA_ELEMENTS_FILE)))
@@ -4077,8 +4046,7 @@
// Now we know we are not in the config schema, let's check
// the unknown elements ... sadly but simply by redoing the
// whole decoding.
- newObjectClass = ObjectClassSyntax.decodeObjectClass(
- v.getValue(), newSchema, false);
+ newObjectClass = ObjectClassSyntax.decodeObjectClass(v, newSchema, false);
oidList.add(newObjectClass.getOID());
try
{
--
Gitblit v1.10.0