| | |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | |
| | | import org.opends.server.types.InitializationException; |
| | | import org.opends.server.types.ResultCode; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | | import static org.opends.server.messages.SchemaMessages.*; |
| | |
| | | public class GeneralizedTimeOrderingMatchingRule |
| | | extends OrderingMatchingRule |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.schema.GeneralizedTimeOrderingMatchingRule"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | } |
| | | |
| | | |
| | |
| | | public void initializeMatchingRule(ConfigEntry configEntry) |
| | | throws ConfigException, InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "initializeMatchingRule", |
| | | String.valueOf(configEntry)); |
| | | |
| | | // No initialization is required. |
| | | } |
| | |
| | | */ |
| | | public String getName() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getName"); |
| | | |
| | | return OMR_GENERALIZED_TIME_NAME; |
| | | } |
| | |
| | | */ |
| | | public String getOID() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getOID"); |
| | | |
| | | return OMR_GENERALIZED_TIME_OID; |
| | | } |
| | |
| | | */ |
| | | public String getDescription() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getDescription"); |
| | | |
| | | // There is no standard description for this matching rule. |
| | | return null; |
| | |
| | | */ |
| | | public String getSyntaxOID() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getSyntaxOID"); |
| | | |
| | | return SYNTAX_GENERALIZED_TIME_OID; |
| | | } |
| | |
| | | public ByteString normalizeValue(ByteString value) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "normalizeValue", String.valueOf(value)); |
| | | |
| | | |
| | | String valueString = value.stringValue().toUpperCase(); |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "normalizeValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ATTR_SYNTAX_GENERALIZED_TIME_CANNOT_PARSE; |
| | | String message = getMessage(msgID, valueString, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "normalizeValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ATTR_SYNTAX_GENERALIZED_TIME_CANNOT_PARSE; |
| | | String message = getMessage(msgID, valueString, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "normalizeValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE; |
| | | String message = getMessage(msgID, valueString, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "normalizeValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ATTR_SYNTAX_GENERALIZED_TIME_CANNOT_PARSE; |
| | | String message = getMessage(msgID, valueString, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "normalizeValue", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE; |
| | | String message = getMessage(msgID, valueString, |
| | |
| | | int second, int millisecond) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "processValueEnd", |
| | | new String[] |
| | | { |
| | | String.valueOf(valueString), |
| | | String.valueOf(endPos), |
| | | String.valueOf(year), |
| | | String.valueOf(month), |
| | | String.valueOf(day), |
| | | String.valueOf(hour), |
| | | String.valueOf(minute), |
| | | String.valueOf(second), |
| | | String.valueOf(millisecond) |
| | | }); |
| | | |
| | | |
| | | // First, check to see if we are at the end of the string. If so, then |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "processValueEnd", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE; |
| | | String message = getMessage(msgID, valueString, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "processValueEnd", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE; |
| | | String message = getMessage(msgID, valueString, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "processValueEnd", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE; |
| | | String message = getMessage(msgID, valueString, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "processValueEnd", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_OFFSET; |
| | | String message = getMessage(msgID, valueString, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "processValueEnd", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ATTR_SYNTAX_GENERALIZED_TIME_INVALID_OFFSET; |
| | | String message = getMessage(msgID, valueString, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "processValueEnd", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE; |
| | | String message = getMessage(msgID, valueString, |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | assert debugException(CLASS_NAME, "processValueEnd", e); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | msgID = MSGID_ATTR_SYNTAX_GENERALIZED_TIME_NORMALIZE_FAILURE; |
| | | message = getMessage(msgID, valueString, |
| | |
| | | */ |
| | | public int compareValues(ByteString value1, ByteString value2) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "compareValues", String.valueOf(value1), |
| | | String.valueOf(value2)); |
| | | |
| | | return compare(value1.value(), value2.value()); |
| | | } |
| | |
| | | */ |
| | | public int compare(byte[] b1, byte[] b2) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "compare", String.valueOf(b1), |
| | | String.valueOf(b2)); |
| | | |
| | | int minLength = Math.min(b1.length, b2.length); |
| | | |