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/IntegerOrderingMatchingRule.java | 133 +++++++++----------------------------------
1 files changed, 29 insertions(+), 104 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/schema/IntegerOrderingMatchingRule.java b/opendj3-server-dev/src/server/org/opends/server/schema/IntegerOrderingMatchingRule.java
index ab0c24f..135cce2 100644
--- a/opendj3-server-dev/src/server/org/opends/server/schema/IntegerOrderingMatchingRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/schema/IntegerOrderingMatchingRule.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 static org.opends.messages.SchemaMessages.*;
import static org.opends.server.schema.SchemaConstants.*;
@@ -137,12 +136,12 @@
*
* @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
{
int length = value.length();
StringBuilder buffer = new StringBuilder(length);
@@ -164,20 +163,7 @@
else
{
LocalizableMessage message = WARN_ATTR_SYNTAX_INTEGER_INITIAL_ZERO.get(value);
-
- switch (DirectoryServer.getSyntaxEnforcementPolicy())
- {
- case REJECT:
- throw new DirectoryException(
- ResultCode.INVALID_ATTRIBUTE_SYNTAX, message);
- case WARN:
- if (! logged)
- {
- logged = true;
- logger.error(message);
- }
- break;
- }
+ logged = reportInvalidSyntax(logged, message);
}
break;
case 1:
@@ -185,21 +171,7 @@
if (buffer.charAt(0) == '-')
{
LocalizableMessage message = WARN_ATTR_SYNTAX_INTEGER_INITIAL_ZERO.get(value);
-
- switch (DirectoryServer.getSyntaxEnforcementPolicy())
- {
- case REJECT:
- throw new DirectoryException(
- ResultCode.INVALID_ATTRIBUTE_SYNTAX, message);
- case WARN:
- if (! logged)
- {
- logged = true;
- logger.error(
- message);
- }
- break;
- }
+ logged = reportInvalidSyntax(logged, message);
}
else
{
@@ -248,97 +220,50 @@
else
{
LocalizableMessage message = WARN_ATTR_SYNTAX_INTEGER_MISPLACED_DASH.get(value);
-
- switch (DirectoryServer.getSyntaxEnforcementPolicy())
- {
- case REJECT:
- throw new DirectoryException(
- ResultCode.INVALID_ATTRIBUTE_SYNTAX, message);
- case WARN:
- if (! logged)
- {
- logged = true;
- logger.error(
- message);
- }
- break;
- }
+ logged = reportInvalidSyntax(logged, message);
}
break;
default:
LocalizableMessage message = WARN_ATTR_SYNTAX_INTEGER_INVALID_CHARACTER.get(
value, ((char) value.byteAt(i)), i);
- switch (DirectoryServer.getSyntaxEnforcementPolicy())
- {
- case REJECT:
- throw new DirectoryException(
- ResultCode.INVALID_ATTRIBUTE_SYNTAX, message);
- case WARN:
- if (! logged)
- {
- logged = true;
- logger.error(
- message);
- }
- break;
- }
+ logged = reportInvalidSyntax(logged, message);
}
}
if (buffer.length() == 0)
{
LocalizableMessage message = WARN_ATTR_SYNTAX_INTEGER_EMPTY_VALUE.get(value);
-
- switch (DirectoryServer.getSyntaxEnforcementPolicy())
- {
- case REJECT:
- throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX,
- message);
-
- case WARN:
- if (! logged)
- {
- logged = true;
- logger.error(message);
- }
-
- buffer.append("0");
- break;
-
- default:
- buffer.append("0");
- break;
- }
+ logged = reportInvalidSyntax(logged, message);
+ buffer.append("0");
}
else if ((buffer.length() == 1) && (buffer.charAt(0) == '-'))
{
LocalizableMessage message = WARN_ATTR_SYNTAX_INTEGER_DASH_NEEDS_VALUE.get(value);
-
- switch (DirectoryServer.getSyntaxEnforcementPolicy())
- {
- case REJECT:
- throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX,
- message);
-
- case WARN:
- if (! logged)
- {
- logged = true;
- logger.error(message);
- }
-
- buffer.setCharAt(0, '0');
- break;
-
- default:
- buffer.setCharAt(0, '0');
- break;
- }
+ logged = reportInvalidSyntax(logged, message);
+ buffer.setCharAt(0, '0');
}
return ByteString.valueOf(buffer.toString());
}
+ private boolean reportInvalidSyntax(boolean logged, LocalizableMessage message)
+ throws DecodeException
+ {
+ switch (DirectoryServer.getSyntaxEnforcementPolicy())
+ {
+ case REJECT:
+ throw DecodeException.error(message);
+ case WARN:
+ if (! logged)
+ {
+ logged = true;
+ logger.error(message);
+ }
+ break;
+ }
+ return logged;
+ }
+
/**
--
Gitblit v1.10.0