From b7b304994dd037ced0df2d5d04c1aa4d41c6bb72 Mon Sep 17 00:00:00 2001
From: sin <sin@localhost>
Date: Wed, 17 Dec 2008 19:25:45 +0000
Subject: [PATCH] Integerated first part of the Fix for Issue# 262:Plugin for Collation/Internationalization
---
opends/src/server/org/opends/server/api/MatchingRule.java | 110 +++++++++++++++++--------------------------------------
1 files changed, 34 insertions(+), 76 deletions(-)
diff --git a/opends/src/server/org/opends/server/api/MatchingRule.java b/opends/src/server/org/opends/server/api/MatchingRule.java
index 23586ee..9de97f5 100644
--- a/opends/src/server/org/opends/server/api/MatchingRule.java
+++ b/opends/src/server/org/opends/server/api/MatchingRule.java
@@ -25,18 +25,11 @@
* Copyright 2006-2008 Sun Microsystems, Inc.
*/
package org.opends.server.api;
-import org.opends.messages.Message;
-
-
-import java.util.List;
-
-import org.opends.server.admin.std.server.MatchingRuleCfg;
-import org.opends.server.config.ConfigException;
+import java.util.Collection;
import org.opends.server.types.ByteString;
import org.opends.server.types.ConditionResult;
import org.opends.server.types.DirectoryException;
-import org.opends.server.types.InitializationException;
@@ -44,81 +37,15 @@
* This class defines the set of methods and structures that must be
* implemented by a Directory Server module that implements a matching
* rule.
- *
- * @param <T> The type of configuration handled by this matching
- * rule.
*/
@org.opends.server.types.PublicAPI(
stability=org.opends.server.types.StabilityLevel.VOLATILE,
mayInstantiate=false,
mayExtend=true,
mayInvoke=false)
-public abstract class MatchingRule<T extends MatchingRuleCfg>
+public abstract class MatchingRule
{
/**
- * Initializes this matching rule based on the information in the
- * provided configuration entry.
- *
- * @param configuration The configuration to use to intialize this
- * matching rule.
- *
- * @throws ConfigException If an unrecoverable problem arises in
- * the process of performing the
- * initialization.
- *
- * @throws InitializationException If a problem that is not
- * configuration-related occurs
- * during initialization.
- */
- public abstract void initializeMatchingRule(T configuration)
- throws ConfigException, InitializationException;
-
-
-
- /**
- * Indicates whether the provided configuration is acceptable for
- * this matching rule. It should be possible to call this method on
- * an uninitialized matching rule instance in order to determine
- * whether the matching rule would be able to use the provided
- * configuration.
- * <BR><BR>
- * Note that implementations which use a subclass of the provided
- * configuration class will likely need to cast the configuration
- * to the appropriate subclass type.
- *
- * @param configuration The matching rule configuration for
- * which to make the determination.
- * @param unacceptableReasons A list that may be used to hold the
- * reasons that the provided
- * configuration is not acceptable.
- *
- * @return {@code true} if the provided configuration is acceptable
- * for this matching rule, or {@code false} if not.
- */
- public boolean isConfigurationAcceptable(
- MatchingRuleCfg configuration,
- List<Message> unacceptableReasons)
- {
- // This default implementation does not perform any special
- // validation. It should be overridden by matching rule
- // implementations that wish to perform more detailed validation.
- return true;
- }
-
-
-
- /**
- * Performs any finalization that may be needed whenever this
- * matching rule is taken out of service.
- */
- public void finalizeMatchingRule()
- {
- // No implementation is required by default.
- }
-
-
-
- /**
* Retrieves the common name for this matching rule.
*
* @return The common name for this matching rule, or {@code null}
@@ -129,6 +56,15 @@
/**
+ * Retrieves all names for this matching rule.
+ *
+ * @return All names for this matching rule.
+ */
+ public abstract Collection<String> getAllNames();
+
+
+
+ /**
* Retrieves the OID for this matching rule.
*
* @return The OID for this matching rule.
@@ -137,6 +73,28 @@
+ /**
+ * Retrieves the normalized form of the provided assertion value,
+ * which is best suite for efficiently performing matching
+ * operations on that value.
+ *
+ * @param value The assertion value to be normalized.
+ *
+ * @return The normalized version of the provided value.
+ *
+ * @throws DirectoryException If the provided value is invalid
+ * according to the associated
+ * attribute syntax.
+ */
+ public ByteString normalizeAssertionValue(ByteString value)
+ throws DirectoryException
+ {
+ // Default implementation is to use attribute value normalization.
+ return normalizeValue(value);
+ }
+
+
+
/**
* Retrieves the name or OID for this matching rule. If it has a
* name, then it will be returned. Otherwise, the OID will be
@@ -322,7 +280,7 @@
buffer.append("( ");
buffer.append(getOID());
buffer.append(" NAME '");
- buffer.append(getName());
+ buffer.append(getName());
String description = getDescription();
if ((description != null) && (description.length() > 0))
--
Gitblit v1.10.0