Message message = WARN_ATTR_SYNTAX_UUID_INVALID_LENGTH.get(
value.toString(), value.length());
switch (DirectoryServer.getSyntaxEnforcementPolicy())
{
case REJECT:
throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX,
message);
case WARN:
ErrorLogger.logError(message);
return value.toByteString();
default:
return value.toByteString();
}
}
StringBuilder builder = new StringBuilder(36);
char c;
for (int i=0; i < 36; i++)
{
// The 9th, 14th, 19th, and 24th characters must be dashes. All others
// must be hex. Convert all uppercase hex characters to lowercase.
c = (char)value.byteAt(i);
switch (i)
{
case 8:
case 13:
case 18:
case 23:
if (c != '-')
{
Message message = WARN_ATTR_SYNTAX_UUID_EXPECTED_DASH.get(
value.toString(), i, String.valueOf(c));
switch (DirectoryServer.getSyntaxEnforcementPolicy())
{
case REJECT:
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message);
case WARN:
ErrorLogger.logError(message);
return value.toByteString();
default:
return value.toByteString();
}
}
builder.append(c);
break;
default:
switch (c)
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
// These are all fine.
builder.append(c);
break;
case 'A':
builder.append('a');
break;
case 'B':
builder.append('b');
break;
case 'C':
builder.append('c');
break;
case 'D':
builder.append('d');
break;
case 'E':
builder.append('e');
break;
case 'F':
builder.append('f');
break;
default:
Message message = WARN_ATTR_SYNTAX_UUID_EXPECTED_HEX.get(
value.toString(), i, String.valueOf(c));
switch (DirectoryServer.getSyntaxEnforcementPolicy())
{
case REJECT:
throw new DirectoryException(
ResultCode.INVALID_ATTRIBUTE_SYNTAX, message);
case WARN:
ErrorLogger.logError(message);
return value.toByteString();
default: