From f4d8494facec3b6eb56487c7585df56e96944c78 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 14 Mar 2014 16:04:01 +0000
Subject: [PATCH] OPENDJ-1308 Migrate schema support
---
opendj3-server-dev/src/server/org/opends/server/schema/CollationMatchingRuleFactory.java | 116 ++++++++++++++++-----------------------------------------
1 files changed, 33 insertions(+), 83 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/CollationMatchingRuleFactory.java b/opendj3-server-dev/src/server/org/opends/server/schema/CollationMatchingRuleFactory.java
index f1f2ec4..7eb2d85 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/CollationMatchingRuleFactory.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/CollationMatchingRuleFactory.java
@@ -33,6 +33,7 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.*;
import org.forgerock.opendj.ldap.schema.Schema;
import org.forgerock.opendj.ldap.spi.IndexQueryFactory;
@@ -41,7 +42,6 @@
import org.opends.server.admin.std.meta.CollationMatchingRuleCfgDefn.MatchingRuleType;
import org.opends.server.admin.std.server.CollationMatchingRuleCfg;
import org.opends.server.api.*;
-import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.ConfigChangeResult;
import org.opends.server.types.DirectoryException;
@@ -369,8 +369,7 @@
// If it comes here we don't need to verify MatchingRuleType; it
// should be okay as its syntax is verified by the admin framework.
// Iterate over the collations and verify if the format is okay.
- // Also,
- // verify if the locale is allowed by the JVM.
+ // Also, verify if the locale is allowed by the JVM.
for (String collation : configuration.getCollation())
{
CollationMapper mapper = new CollationMapper(collation);
@@ -404,6 +403,18 @@
+ private Collection<String> copyNames(MatchingRule matchingRule)
+ {
+ Collection<String> defaultNames = new HashSet<String>();
+ if (matchingRule != null)
+ {
+ defaultNames.addAll(matchingRule.getNames());
+ }
+ return defaultNames;
+ }
+
+
+
/**
* Creates Less-than Matching Rule.
*
@@ -420,20 +431,11 @@
String oid = mapper.getNumericOID() + ".1";
String lTag = mapper.getLanguageTag();
- Collection<String> names = new HashSet<String>();
- MatchingRule matchingRule = getMatchingRule(oid);
- if (matchingRule != null)
- {
- for (String name : matchingRule.getNames())
- {
- names.add(name);
- }
- }
-
+ Collection<String> names = copyNames(getMatchingRule(oid));
names.add(lTag + ".lt");
names.add(lTag + ".1");
- matchingRule =
+ MatchingRule matchingRule =
new CollationLessThanMatchingRule(oid, names, locale);
addMatchingRule(oid, matchingRule);
}
@@ -456,20 +458,11 @@
String oid = mapper.getNumericOID() + ".2";
String lTag = mapper.getLanguageTag();
- Collection<String> names = new HashSet<String>();
- MatchingRule matchingRule = getMatchingRule(oid);
- if (matchingRule != null)
- {
- for (String name : matchingRule.getNames())
- {
- names.add(name);
- }
- }
-
+ Collection<String> names = copyNames(getMatchingRule(oid));
names.add(lTag + ".lte");
names.add(lTag + ".2");
- matchingRule =
+ MatchingRule matchingRule =
new CollationLessThanOrEqualToMatchingRule(oid, names, locale);
addMatchingRule(oid, matchingRule);
}
@@ -496,38 +489,19 @@
String lTag = mapper.getLanguageTag();
String nOID = mapper.getNumericOID();
- MatchingRule matchingRule = getMatchingRule(nOID);
- Collection<String> defaultNames = new HashSet<String>();
- if (matchingRule != null)
- {
- for (String name : matchingRule.getNames())
- {
- defaultNames.add(name);
- }
- }
-
+ Collection<String> defaultNames = copyNames(getMatchingRule(nOID));
defaultNames.add(lTag);
- matchingRule =
- new CollationEqualityMatchingRule(nOID,
- defaultNames, locale);
+ MatchingRule matchingRule =
+ new CollationEqualityMatchingRule(nOID, defaultNames, locale);
addMatchingRule(nOID, matchingRule);
- Collection<String> names = new HashSet<String>();
// Register OID.3 as the equality matching rule.
String OID = mapper.getNumericOID() + ".3";
- MatchingRule equalityMatchingRule = getMatchingRule(OID);
- if (equalityMatchingRule != null)
- {
- for (String name : equalityMatchingRule.getNames())
- {
- names.add(name);
- }
- }
-
+ Collection<String> names = copyNames(getMatchingRule(OID));
names.add(lTag + ".eq");
names.add(lTag + ".3");
- equalityMatchingRule =
+ MatchingRule equalityMatchingRule =
new CollationEqualityMatchingRule(OID, names, locale);
addMatchingRule(OID, equalityMatchingRule);
}
@@ -550,21 +524,12 @@
String oid = mapper.getNumericOID() + ".4";
String lTag = mapper.getLanguageTag();
- Collection<String> names = new HashSet<String>();
- MatchingRule matchingRule = getMatchingRule(oid);
- if (matchingRule != null)
- {
- for (String name : matchingRule.getNames())
- {
- names.add(name);
- }
- }
-
+ Collection<String> names = copyNames(getMatchingRule(oid));
names.add(lTag + ".gte");
names.add(lTag + ".4");
- matchingRule =
- new CollationGreaterThanOrEqualToMatchingRule(oid, names,
- locale);
+
+ MatchingRule matchingRule =
+ new CollationGreaterThanOrEqualToMatchingRule(oid, names, locale);
addMatchingRule(oid, matchingRule);
}
@@ -586,19 +551,11 @@
String oid = mapper.getNumericOID() + ".5";
String lTag = mapper.getLanguageTag();
- Collection<String> names = new HashSet<String>();
- MatchingRule matchingRule = getMatchingRule(oid);
- if (matchingRule != null)
- {
- for (String name : matchingRule.getNames())
- {
- names.add(name);
- }
- }
-
+ Collection<String> names = copyNames(getMatchingRule(oid));
names.add(lTag + ".gt");
names.add(lTag + ".5");
- matchingRule =
+
+ MatchingRule matchingRule =
new CollationGreaterThanMatchingRule(oid, names, locale);
addMatchingRule(oid, matchingRule);
}
@@ -621,18 +578,11 @@
String oid = mapper.getNumericOID() + ".6";
String lTag = mapper.getLanguageTag();
- Collection<String> names = new HashSet<String>();
- MatchingRule matchingRule = getMatchingRule(oid);
- if (matchingRule != null)
- {
- for (String name : matchingRule.getNames())
- {
- names.add(name);
- }
- }
+ Collection<String> names = copyNames(getMatchingRule(oid));
names.add(lTag + ".sub");
names.add(lTag + ".6");
- matchingRule =
+
+ MatchingRule matchingRule =
new CollationSubstringMatchingRule(oid, names, locale);
addMatchingRule(oid, matchingRule);
}
--
Gitblit v1.10.0