From 3cf6f51cc3c2a9b247f62a84c0d40cfe32ddd97b Mon Sep 17 00:00:00 2001
From: dugan <dugan@localhost>
Date: Thu, 12 Jul 2007 01:22:53 +0000
Subject: [PATCH] Re-commit for issue 1457 incorporating Neil's comments:
---
opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java | 45 ++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 42 insertions(+), 3 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java b/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java
index d56040e..768c5ae 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/SchemaBackend.java
@@ -127,6 +127,7 @@
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.Configuration;
import static org.opends.server.messages.ConfigMessages.*;
+import org.opends.server.protocols.asn1.ASN1OctetString;
/**
@@ -238,7 +239,10 @@
// The time that the schema was last modified.
private long modifyTime;
+ //Regular expression used to strip minimum upper bound value from
+ //syntax Attribute Type Description. The value looks like: {count}.
+ private String stripMinUpperBoundRegEx = "\\{\\d+\\}";
/**
* Creates a new backend with the provided information. All backend
@@ -709,8 +713,13 @@
// Add the "attributeTypes" attribute.
LinkedHashSet<AttributeValue> valueSet =
DirectoryServer.getAttributeTypeSet();
- Attribute attr = new Attribute(attributeTypesType, ATTR_ATTRIBUTE_TYPES,
- valueSet);
+
+ Attribute attr;
+ if(AttributeTypeSyntax.isStripSyntaxMinimumUpperBound())
+ attr = stripMinUpperBoundValues(valueSet);
+ else
+ attr = new Attribute(attributeTypesType, ATTR_ATTRIBUTE_TYPES,
+ valueSet);
ArrayList<Attribute> attrList = new ArrayList<Attribute>(1);
attrList.add(attr);
if (attributeTypesType.isOperational() && (! showAllAttributes))
@@ -5446,7 +5455,37 @@
return alerts;
}
+ /**
+ * Returns an attribute that has the minimum upper bound value removed from
+ * all of its attribute values.
+ *
+ * @param valueSet The original valueset containing the
+ * attribute type definitions.
+ *
+ * @return Attribute that with all of the minimum upper bound values removed
+ * from its attribute values.
+ */
+ private Attribute
+ stripMinUpperBoundValues(LinkedHashSet<AttributeValue> valueSet) {
-
+ LinkedHashSet<AttributeValue> valueSetCopy =
+ new LinkedHashSet<AttributeValue>();
+ for(AttributeValue v : valueSet) {
+ //If it exists, strip the minimum upper bound value from the
+ //attribute value.
+ if(v.toString().indexOf('{') != -1) {
+ //Create an attribute value from the stripped string and add it to the
+ //valueset.
+ String strippedStr=
+ v.toString().replaceFirst(stripMinUpperBoundRegEx, "");
+ ASN1OctetString s=new ASN1OctetString(strippedStr);
+ AttributeValue strippedVal=new AttributeValue(s,s);
+ valueSetCopy.add(strippedVal);
+ } else
+ valueSetCopy.add(v);
+ }
+ return
+ new Attribute(attributeTypesType, ATTR_ATTRIBUTE_TYPES, valueSetCopy);
+ }
}
--
Gitblit v1.10.0