From 2d7aad2c25507ea427980b54848c26594c607ae2 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 20 Feb 2014 11:20:22 +0000
Subject: [PATCH] OPENDJ-1308 Migrate schema support

---
 opendj3-server-dev/src/server/org/opends/server/schema/UUIDOrderingMatchingRule.java |   62 +++++++++++--------------------
 1 files changed, 22 insertions(+), 40 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/UUIDOrderingMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/UUIDOrderingMatchingRule.java
index 44d2c13..182a325 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/UUIDOrderingMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/UUIDOrderingMatchingRule.java
@@ -35,11 +35,10 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.DecodeException;
 import org.opends.server.api.AbstractMatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.core.DirectoryServer;
-import org.opends.server.types.DirectoryException;
-import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.util.StaticUtils;
 
 import static org.opends.messages.SchemaMessages.*;
@@ -138,27 +137,17 @@
    *
    * @return  The normalized version of the provided value.
    *
-   * @throws  DirectoryException  If the provided value is invalid according to
+   * @throws  DecodeException  If the provided value is invalid according to
    *                              the associated attribute syntax.
    */
   @Override
   public ByteString normalizeAttributeValue(ByteSequence value)
-         throws DirectoryException
+         throws DecodeException
   {
     if (value.length() != 36)
     {
-      LocalizableMessage message = WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH.get(value, value.length());
-      switch (DirectoryServer.getSyntaxEnforcementPolicy())
-      {
-        case REJECT:
-          throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX,
-                                       message);
-        case WARN:
-          logger.error(message);
-          return value.toByteString();
-        default:
-          return value.toByteString();
-      }
+      reportInvalidSyntax(WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH.get(value, value.length()));
+      return value.toByteString();
     }
 
     StringBuilder builder = new StringBuilder(36);
@@ -176,18 +165,8 @@
         case 23:
           if (c != '-')
           {
-            LocalizableMessage message = WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH.get(value, i, c);
-            switch (DirectoryServer.getSyntaxEnforcementPolicy())
-            {
-              case REJECT:
-                throw new DirectoryException(
-                               ResultCode.INVALID_ATTRIBUTE_SYNTAX, message);
-              case WARN:
-                logger.error(message);
-                return value.toByteString();
-              default:
-                return value.toByteString();
-            }
+            reportInvalidSyntax(WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH.get(value, i, c));
+            return value.toByteString();
           }
           builder.append(c);
           break;
@@ -232,18 +211,8 @@
               builder.append('f');
               break;
             default:
-              LocalizableMessage message = WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX.get(value, i, c);
-              switch (DirectoryServer.getSyntaxEnforcementPolicy())
-              {
-                case REJECT:
-                  throw new DirectoryException(
-                                 ResultCode.INVALID_ATTRIBUTE_SYNTAX, message);
-                case WARN:
-                  logger.error(message);
-                  return value.toByteString();
-                default:
-                  return value.toByteString();
-              }
+              reportInvalidSyntax(WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX.get(value, i, c));
+              return value.toByteString();
           }
       }
     }
@@ -251,6 +220,19 @@
     return ByteString.valueOf(builder.toString());
   }
 
+  private void reportInvalidSyntax(LocalizableMessage message)
+      throws DecodeException
+  {
+    switch (DirectoryServer.getSyntaxEnforcementPolicy())
+    {
+      case REJECT:
+        throw DecodeException.error(message);
+      case WARN:
+        logger.error(message);
+        break;
+    }
+  }
+
 
 
   /**

--
Gitblit v1.10.0