From 9defd2349274d077ad120d780a6fac5f6d594c7f Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Fri, 22 May 2015 15:58:46 +0000
Subject: [PATCH] OPENDJ-1631 CR-6864 Migrate server to SDK syntaxes

---
 opendj-server-legacy/src/main/java/org/opends/server/schema/UTCTimeSyntax.java |  797 --------------------------------------------------------
 1 files changed, 11 insertions(+), 786 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/schema/UTCTimeSyntax.java b/opendj-server-legacy/src/main/java/org/opends/server/schema/UTCTimeSyntax.java
index e2f08a9..1c42d5e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/schema/UTCTimeSyntax.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/schema/UTCTimeSyntax.java
@@ -26,26 +26,12 @@
  */
 package org.opends.server.schema;
 
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.TimeZone;
-
-import org.forgerock.i18n.LocalizableMessage;
-import org.forgerock.i18n.LocalizableMessageBuilder;
-import org.opends.server.admin.std.server.AttributeSyntaxCfg;
-import org.forgerock.opendj.ldap.schema.MatchingRule;
-import org.opends.server.api.AttributeSyntax;
-import org.forgerock.opendj.config.server.ConfigException;
-import org.opends.server.core.DirectoryServer;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
-import org.opends.server.types.*;
-import org.forgerock.opendj.ldap.ResultCode;
-import org.forgerock.opendj.ldap.ByteString;
-import org.forgerock.opendj.ldap.ByteSequence;
-import static org.opends.messages.SchemaMessages.*;
 import static org.opends.server.schema.SchemaConstants.*;
-import static org.opends.server.util.ServerConstants.*;
+
+import org.forgerock.opendj.ldap.schema.Schema;
+import org.forgerock.opendj.ldap.schema.Syntax;
+import org.opends.server.admin.std.server.AttributeSyntaxCfg;
+import org.opends.server.api.AttributeSyntax;
 
 /**
  * This class implements the UTC time attribute syntax.  This is very similar to
@@ -58,57 +44,6 @@
 public class UTCTimeSyntax
        extends AttributeSyntax<AttributeSyntaxCfg>
 {
-  private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
-
-  /**
-   * The lock that will be used to provide threadsafe access to the date
-   * formatter.
-   */
-  private static Object dateFormatLock;
-
-  /**
-   * The date formatter that will be used to convert dates into UTC time values.
-   * Note that all interaction with it must be synchronized.
-   */
-  private static SimpleDateFormat dateFormat;
-
-  /**
-   * The date formatter needs help converting 2-digit years.
-   */
-  private static Date datum1900;
-  private static Date datum2000;
-
-
-  /** The default equality matching rule for this syntax. */
-  private MatchingRule defaultEqualityMatchingRule;
-
-  /** The default ordering matching rule for this syntax. */
-  private MatchingRule defaultOrderingMatchingRule;
-
-  /** The default substring matching rule for this syntax. */
-  private MatchingRule defaultSubstringMatchingRule;
-
-  /**
-   * Create the date formatter that will be used to construct and parse
-   * normalized UTC time values.
-   */
-  static
-  {
-    dateFormat = new SimpleDateFormat(DATE_FORMAT_UTC_TIME);
-    dateFormat.setLenient(false);
-    dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
-
-    Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
-    cal.clear();
-    cal.set(1900, 0, 1);
-    datum1900 = cal.getTime();
-
-    cal.clear();
-    cal.set(2000, 0, 1);
-    datum2000 = cal.getTime();
-
-    dateFormatLock = new Object();
-  }
 
   /**
    * Creates a new instance of this syntax.  Note that the only thing that
@@ -122,29 +57,10 @@
   }
 
   /** {@inheritDoc} */
-  public void initializeSyntax(AttributeSyntaxCfg configuration)
-         throws ConfigException
+  @Override
+  public Syntax getSDKSyntax(Schema schema)
   {
-    defaultEqualityMatchingRule =
-         DirectoryServer.getMatchingRule(EMR_GENERALIZED_TIME_OID);
-    if (defaultEqualityMatchingRule == null)
-    {
-      logger.error(ERR_ATTR_SYNTAX_UNKNOWN_EQUALITY_MATCHING_RULE, EMR_GENERALIZED_TIME_OID, SYNTAX_UTC_TIME_NAME);
-    }
-
-    defaultOrderingMatchingRule =
-         DirectoryServer.getMatchingRule(OMR_GENERALIZED_TIME_OID);
-    if (defaultOrderingMatchingRule == null)
-    {
-      logger.error(ERR_ATTR_SYNTAX_UNKNOWN_ORDERING_MATCHING_RULE, OMR_GENERALIZED_TIME_OID, SYNTAX_UTC_TIME_NAME);
-    }
-
-    defaultSubstringMatchingRule =
-         DirectoryServer.getMatchingRule(SMR_CASE_IGNORE_OID);
-    if (defaultSubstringMatchingRule == null)
-    {
-      logger.error(ERR_ATTR_SYNTAX_UNKNOWN_SUBSTRING_MATCHING_RULE, SMR_CASE_IGNORE_OID, SYNTAX_UTC_TIME_NAME);
-    }
+    return schema.getSyntax(SchemaConstants.SYNTAX_UTC_TIME_OID);
   }
 
   /**
@@ -152,6 +68,7 @@
    *
    * @return  The common name for this attribute syntax.
    */
+  @Override
   public String getName()
   {
     return SYNTAX_UTC_TIME_NAME;
@@ -162,6 +79,7 @@
    *
    * @return  The OID for this attribute syntax.
    */
+  @Override
   public String getOID()
   {
     return SYNTAX_UTC_TIME_OID;
@@ -172,703 +90,10 @@
    *
    * @return  A description for this attribute syntax.
    */
+  @Override
   public String getDescription()
   {
     return SYNTAX_UTC_TIME_DESCRIPTION;
   }
-
-  /**
-   * Retrieves the default equality matching rule that will be used for
-   * attributes with this syntax.
-   *
-   * @return  The default equality matching rule that will be used for
-   *          attributes with this syntax, or <CODE>null</CODE> if equality
-   *          matches will not be allowed for this type by default.
-   */
-  public MatchingRule getEqualityMatchingRule()
-  {
-    return defaultEqualityMatchingRule;
-  }
-
-  /**
-   * Retrieves the default ordering matching rule that will be used for
-   * attributes with this syntax.
-   *
-   * @return  The default ordering matching rule that will be used for
-   *          attributes with this syntax, or <CODE>null</CODE> if ordering
-   *          matches will not be allowed for this type by default.
-   */
-  public MatchingRule getOrderingMatchingRule()
-  {
-    return defaultOrderingMatchingRule;
-  }
-
-  /**
-   * Retrieves the default substring matching rule that will be used for
-   * attributes with this syntax.
-   *
-   * @return  The default substring matching rule that will be used for
-   *          attributes with this syntax, or <CODE>null</CODE> if substring
-   *          matches will not be allowed for this type by default.
-   */
-  public MatchingRule getSubstringMatchingRule()
-  {
-    return defaultSubstringMatchingRule;
-  }
-
-  /**
-   * Retrieves the default approximate matching rule that will be used for
-   * attributes with this syntax.
-   *
-   * @return  The default approximate matching rule that will be used for
-   *          attributes with this syntax, or <CODE>null</CODE> if approximate
-   *          matches will not be allowed for this type by default.
-   */
-  public MatchingRule getApproximateMatchingRule()
-  {
-    // Approximate matching will not be allowed by default.
-    return null;
-  }
-
-  /**
-   * Indicates whether the provided value is acceptable for use in an attribute
-   * with this syntax.  If it is not, then the reason may be appended to the
-   * provided buffer.
-   *
-   * @param  value          The value for which to make the determination.
-   * @param  invalidReason  The buffer to which the invalid reason should be
-   *                        appended.
-   *
-   * @return  <CODE>true</CODE> if the provided value is acceptable for use with
-   *          this syntax, or <CODE>false</CODE> if not.
-   */
-  public boolean valueIsAcceptable(ByteSequence value,
-                                   LocalizableMessageBuilder invalidReason)
-  {
-    // Get the value as a string and verify that it is at least long enough for
-    // "YYYYMMDDhhmmZ", which is the shortest allowed value.
-    String valueString = value.toString().toUpperCase();
-    int    length      = valueString.length();
-    if (length < 11)
-    {
-      LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_TOO_SHORT.get(valueString);
-      invalidReason.append(message);
-      return false;
-    }
-
-
-    // The first two characters are the year, and they must be numeric digits
-    // between 0 and 9.
-    for (int i=0; i < 2; i++)
-    {
-      switch (valueString.charAt(i))
-      {
-        case '0':
-        case '1':
-        case '2':
-        case '3':
-        case '4':
-        case '5':
-        case '6':
-        case '7':
-        case '8':
-        case '9':
-          // These are all fine.
-          break;
-        default:
-          LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_YEAR.get(valueString, valueString.charAt(i));
-          invalidReason.append(message);
-          return false;
-      }
-    }
-
-
-    // The next two characters are the month, and they must form the string
-    // representation of an integer between 01 and 12.
-    char m1 = valueString.charAt(2);
-    char m2 = valueString.charAt(3);
-    switch (m1)
-    {
-      case '0':
-        // m2 must be a digit between 1 and 9.
-        switch (m2)
-        {
-          case '1':
-          case '2':
-          case '3':
-          case '4':
-          case '5':
-          case '6':
-          case '7':
-          case '8':
-          case '9':
-            // These are all fine.
-            break;
-          default:
-            LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MONTH.get(
-                    valueString, valueString.substring(2, 4));
-            invalidReason.append(message);
-            return false;
-        }
-        break;
-      case '1':
-        // m2 must be a digit between 0 and 2.
-        switch (m2)
-        {
-          case '0':
-          case '1':
-          case '2':
-            // These are all fine.
-            break;
-          default:
-            LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MONTH.get(
-                    valueString, valueString.substring(2, 4));
-            invalidReason.append(message);
-            return false;
-        }
-        break;
-      default:
-        LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MONTH.get(
-                valueString, valueString.substring(2, 4));
-        invalidReason.append(message);
-        return false;
-    }
-
-
-    // The next two characters should be the day of the month, and they must
-    // form the string representation of an integer between 01 and 31.
-    // This doesn't do any validation against the year or month, so it will
-    // allow dates like April 31, or February 29 in a non-leap year, but we'll
-    // let those slide.
-    char d1 = valueString.charAt(4);
-    char d2 = valueString.charAt(5);
-    switch (d1)
-    {
-      case '0':
-        // d2 must be a digit between 1 and 9.
-        switch (d2)
-        {
-          case '1':
-          case '2':
-          case '3':
-          case '4':
-          case '5':
-          case '6':
-          case '7':
-          case '8':
-          case '9':
-            // These are all fine.
-            break;
-          default:
-            LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_DAY.get(
-                    valueString, valueString.substring(4, 6));
-            invalidReason.append(message);
-            return false;
-        }
-        break;
-      case '1':
-        // Treated the same as '2'.
-      case '2':
-        // d2 must be a digit between 0 and 9.
-        switch (d2)
-        {
-          case '0':
-          case '1':
-          case '2':
-          case '3':
-          case '4':
-          case '5':
-          case '6':
-          case '7':
-          case '8':
-          case '9':
-            // These are all fine.
-            break;
-          default:
-            LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_DAY.get(
-                    valueString, valueString.substring(4, 6));
-            invalidReason.append(message);
-            return false;
-        }
-        break;
-      case '3':
-        // d2 must be either 0 or 1.
-        switch (d2)
-        {
-          case '0':
-          case '1':
-            // These are all fine.
-            break;
-          default:
-            LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_DAY.get(
-                    valueString, valueString.substring(4, 6));
-            invalidReason.append(message);
-            return false;
-        }
-        break;
-      default:
-        LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_DAY.get(valueString,
-                                    valueString.substring(4, 6));
-        invalidReason.append(message);
-        return false;
-    }
-
-
-    // The next two characters must be the hour, and they must form the string
-    // representation of an integer between 00 and 23.
-    char h1 = valueString.charAt(6);
-    char h2 = valueString.charAt(7);
-    switch (h1)
-    {
-      case '0':
-        // This is treated the same as '1'.
-      case '1':
-        switch (h2)
-        {
-          case '0':
-          case '1':
-          case '2':
-          case '3':
-          case '4':
-          case '5':
-          case '6':
-          case '7':
-          case '8':
-          case '9':
-            // These are all fine.
-            break;
-          default:
-            LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_HOUR.get(
-                    valueString, valueString.substring(6, 8));
-            invalidReason.append(message);
-            return false;
-        }
-        break;
-      case '2':
-        // This must be a digit between 0 and 3.
-        switch (h2)
-        {
-          case '0':
-          case '1':
-          case '2':
-          case '3':
-            // These are all fine.
-            break;
-          default:
-            LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_HOUR.get(
-                    valueString, valueString.substring(6, 8));
-            invalidReason.append(message);
-            return false;
-        }
-        break;
-      default:
-        LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_HOUR.get(valueString,
-                                    valueString.substring(6, 8));
-        invalidReason.append(message);
-        return false;
-    }
-
-
-    // Next, there should be two digits comprising an integer between 00 and 59
-    // for the minute.
-    m1 = valueString.charAt(8);
-    switch (m1)
-    {
-      case '0':
-      case '1':
-      case '2':
-      case '3':
-      case '4':
-      case '5':
-        // There must be at least two more characters, and the next one must
-        // be a digit between 0 and 9.
-        if (length < 11)
-        {
-          LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR.get(valueString, m1, 8);
-          invalidReason.append(message);
-          return false;
-        }
-
-        switch (valueString.charAt(9))
-        {
-          case '0':
-          case '1':
-          case '2':
-          case '3':
-          case '4':
-          case '5':
-          case '6':
-          case '7':
-          case '8':
-          case '9':
-            // These are all fine.
-            break;
-          default:
-            LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_MINUTE.get(
-                    valueString, valueString.substring(8, 10));
-            invalidReason.append(message);
-            return false;
-        }
-
-        break;
-
-      default:
-        LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR.get(valueString, m1, 8);
-        invalidReason.append(message);
-        return false;
-    }
-
-
-    // Next, there should be either two digits comprising an integer between 00
-    // and 60 (for the second, including a possible leap second), a letter 'Z'
-    // (for the UTC specifier), or a plus or minus sign followed by four digits
-    // (for the UTC offset).
-    char s1 = valueString.charAt(10);
-    switch (s1)
-    {
-      case '0':
-      case '1':
-      case '2':
-      case '3':
-      case '4':
-      case '5':
-        // There must be at least two more characters, and the next one must
-        // be a digit between 0 and 9.
-        if (length < 13)
-        {
-          LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR.get(valueString, s1, 10);
-          invalidReason.append(message);
-          return false;
-        }
-
-        switch (valueString.charAt(11))
-        {
-          case '0':
-          case '1':
-          case '2':
-          case '3':
-          case '4':
-          case '5':
-          case '6':
-          case '7':
-          case '8':
-          case '9':
-            // These are all fine.
-            break;
-          default:
-            LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_SECOND.get(
-                    valueString, valueString.substring(10, 12));
-            invalidReason.append(message);
-            return false;
-        }
-
-        break;
-      case '6':
-        // There must be at least two more characters and the next one must be
-        // a 0.
-        if (length < 13)
-        {
-          LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR.get(valueString, s1, 10);
-          invalidReason.append(message);
-          return false;
-        }
-
-        if (valueString.charAt(11) != '0')
-        {
-          LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_SECOND.get(
-                  valueString, valueString.substring(10, 12));
-          invalidReason.append(message);
-          return false;
-        }
-
-        break;
-      case 'Z':
-        // This is fine only if we are at the end of the value.
-        if (length == 11)
-        {
-          return true;
-        }
-        else
-        {
-          LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR.get(valueString, s1, 10);
-          invalidReason.append(message);
-          return false;
-        }
-
-      case '+':
-      case '-':
-        // These are fine only if there are exactly four more digits that
-        // specify a valid offset.
-        if (length == 15)
-        {
-          return hasValidOffset(valueString, 11, invalidReason);
-        }
-        else
-        {
-          LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR.get(valueString, s1, 10);
-          invalidReason.append(message);
-          return false;
-        }
-
-      default:
-        LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR.get(valueString, s1, 10);
-        invalidReason.append(message);
-        return false;
-    }
-
-
-    // The last element should be either a letter 'Z' (for the UTC specifier),
-    // or a plus or minus sign followed by four digits (for the UTC offset).
-    switch (valueString.charAt(12))
-    {
-      case 'Z':
-        // This is fine only if we are at the end of the value.
-        if (length == 13)
-        {
-          return true;
-        }
-        else
-        {
-          LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR.get(
-                  valueString, valueString.charAt(12), 12);
-          invalidReason.append(message);
-          return false;
-        }
-
-      case '+':
-      case '-':
-        // These are fine only if there are four or two more digits that
-        // specify a valid offset.
-        if ((length == 17) || (length == 15))
-        {
-          return hasValidOffset(valueString, 13, invalidReason);
-        }
-        else
-        {
-          LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR.get(
-                  valueString, valueString.charAt(12), 12);
-          invalidReason.append(message);
-          return false;
-        }
-
-      default:
-        LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_CHAR.get(
-                valueString, valueString.charAt(12), 12);
-        invalidReason.append(message);
-        return false;
-    }
-  }
-
-  /**
-   * Indicates whether the provided string contains a valid set of two or four
-   * UTC offset digits.  The provided string must have either two or four
-   * characters from the provided start position to the end of the value.
-   *
-   * @param  value          The whole value, including the offset.
-   * @param  startPos       The position of the first character that is
-   *                        contained in the offset.
-   * @param  invalidReason  The buffer to which the invalid reason may be
-   *                        appended if the string does not contain a valid set
-   *                        of UTC offset digits.
-   *
-   * @return  <CODE>true</CODE> if the provided offset string is valid, or
-   *          <CODE>false</CODE> if it is not.
-   */
-  private boolean hasValidOffset(String value, int startPos,
-                                 LocalizableMessageBuilder invalidReason)
-  {
-    int offsetLength = value.length() - startPos;
-    if (offsetLength < 2)
-    {
-      LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_TOO_SHORT.get(value);
-      invalidReason.append(message);
-      return false;
-    }
-
-    // The first two characters must be an integer between 00 and 23.
-    switch (value.charAt(startPos))
-    {
-      case '0':
-      case '1':
-        switch (value.charAt(startPos+1))
-        {
-          case '0':
-          case '1':
-          case '2':
-          case '3':
-          case '4':
-          case '5':
-          case '6':
-          case '7':
-          case '8':
-          case '9':
-            // These are all fine.
-            break;
-          default:
-            LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_OFFSET.get(value,
-                                        value.substring(startPos,
-                                                        startPos+offsetLength));
-            invalidReason.append(message);
-            return false;
-        }
-        break;
-      case '2':
-        switch (value.charAt(startPos+1))
-        {
-          case '0':
-          case '1':
-          case '2':
-          case '3':
-            // These are all fine.
-            break;
-          default:
-            LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_OFFSET.get(value,
-                                        value.substring(startPos,
-                                                        startPos+offsetLength));
-            invalidReason.append(message);
-            return false;
-        }
-        break;
-      default:
-        LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_OFFSET.get(value,
-                                    value.substring(startPos,
-                                                    startPos+offsetLength));
-        invalidReason.append(message);
-        return false;
-    }
-
-
-    // If there are two more characters, then they must be an integer between
-    // 00 and 59.
-    if (offsetLength == 4)
-    {
-      switch (value.charAt(startPos+2))
-      {
-        case '0':
-        case '1':
-        case '2':
-        case '3':
-        case '4':
-        case '5':
-          switch (value.charAt(startPos+3))
-          {
-            case '0':
-            case '1':
-            case '2':
-            case '3':
-            case '4':
-            case '5':
-            case '6':
-            case '7':
-            case '8':
-            case '9':
-              // These are all fine.
-              break;
-            default:
-              LocalizableMessage message =
-                   ERR_ATTR_SYNTAX_UTC_TIME_INVALID_OFFSET.get(
-                           value,value.substring(startPos,
-                           startPos+offsetLength));
-              invalidReason.append(message);
-              return false;
-          }
-          break;
-        default:
-          LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_INVALID_OFFSET.get(value,
-                                      value.substring(startPos,
-                                                      startPos+offsetLength));
-          invalidReason.append(message);
-          return false;
-      }
-    }
-
-    return true;
-  }
-
-  /**
-   * Retrieves an attribute value containing a UTC time representation of the
-   * provided date.
-   *
-   * @param  d  The date for which to retrieve the UTC time value.
-   *
-   * @return  The attribute value created from the date.
-   */
-  public static ByteString createUTCTimeValue(Date d)
-  {
-    String valueString;
-    synchronized (dateFormatLock)
-    {
-      valueString = dateFormat.format(d);
-    }
-    return ByteString.valueOf(valueString);
-  }
-
-  /**
-   * Decodes the provided normalized value as a UTC time value and
-   * retrieves a Java <CODE>Date</CODE> object containing its representation.
-   *
-   * @param  normalizedValue  The normalized UTC time value to decode to a
-   *                          Java <CODE>Date</CODE>.
-   *
-   * @return  The Java <CODE>Date</CODE> created from the provided UTC time
-   *          value.
-   *
-   * @throws  DirectoryException  If the provided value cannot be parsed as a
-   *                              valid UTC time string.
-   */
-  public static Date decodeUTCTimeValue(ByteString normalizedValue)
-         throws DirectoryException
-  {
-    String valueString = normalizedValue.toString();
-
-    try
-    {
-      synchronized (dateFormatLock)
-      {
-        // RFC 3280 4.1.2.5.1. defines the datum we need to
-        // set for the parser.
-        switch (valueString.charAt(0))
-        {
-          case '0':
-          case '1':
-          case '2':
-          case '3':
-          case '4':
-            // 00-49
-            dateFormat.set2DigitYearStart(datum2000);
-            break;
-          case '5':
-          case '6':
-          case '7':
-          case '8':
-          case '9':
-          default:
-            // 50-99
-            dateFormat.set2DigitYearStart(datum1900);
-            break;
-        }
-        return dateFormat.parse(valueString);
-      }
-    }
-    catch (Exception e)
-    {
-      logger.traceException(e);
-
-      LocalizableMessage message = ERR_ATTR_SYNTAX_UTC_TIME_CANNOT_PARSE.get(valueString, e);
-      throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, e);
-    }
-  }
-
-  /** {@inheritDoc} */
-  public boolean isBEREncodingRequired()
-  {
-    return false;
-  }
-
-  /** {@inheritDoc} */
-  public boolean isHumanReadable()
-  {
-    return true;
-  }
 }
 

--
Gitblit v1.10.0