/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at
* trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
* add the following below this CDDL HEADER, with the fields enclosed
* by brackets "[]" replaced with your own identifying information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Copyright 2008 Sun Microsystems, Inc.
*/
/**
* OpenDS messages defined in properties files must be defined
* with the ordinal and in most cases category and severity encoded
* in the message key. This class helps with generating and
* parsing of these keys.
*
* Keys must be of the form
*
* CATEGORY_SEVERITY_DESCRIPTION_ORDINAL
*
* where:
* <ul>
* <li>
* CATEGORY is the string representation of one of the
* <code>Category</code> enums.
* </li>
* <li>
* SEVERITY is the long or abbreviated form of one of
* the <code>Severity</code> enums.
* </li>
* <li>
* DESCRIPTION is an uppercase string containing characters
* and the underscore character for describing the purpose
* of the message.
* </li>
* <li>
* ORDINAL is an integer that makes the message unique witin
* the property file.
* </li>
* </ul>
*
*/
// TODO: move this class to GenerateMessageFile when DirectoryServer
// no longer needs to support dumpMessages()
public class MessagePropertyKey
implements Comparable<MessagePropertyKey> {
/**
* Creates a message property key from a string value.
* @param keyString from properties file
* @param includesCategory when true expects ordinals to be encoded
* in the keystring; when false the mandate is relaxed
* @param includesSeverity when true expects ordinals to be encoded
* in the keystring; when false the mandate is relaxed
* @param includesOrdinal when true expects ordinals to be encoded
* in the keystring; when false the mandate is relaxed
* @return MessagePropertyKey created from string
*/
boolean includesCategory,
boolean includesSeverity,
boolean includesOrdinal) {
if (k.startsWith(cName)) {
category = c;
throw new IllegalArgumentException(
"separated from the rest of the " +
"key with an '_' character");
}
break;
}
}
throw new IllegalArgumentException("Category not included in key " +
}
if (k.startsWith(sName)) {
severity = s;
throw new IllegalArgumentException(
"separated from the rest of the " +
"key with an '_' character");
}
break;
}
}
throw new IllegalArgumentException("Severity not included in key " +
}
if (includesOrdinal) {
if (li != -1) {
} else {
throw new IllegalArgumentException(
"Incorrectly formatted key " + keyString);
}
try {
throw new IllegalArgumentException("Error parsing ordinal for key " +
}
} else {
description = k;
}
}
/**
* Creates a parameterized instance.
* @param category of this key
* @param severity of this key
* @param description of this key
* @param ordinal of this key
*/
this.description = description;
}
/**
* Gets the category of this key.
* @return Category of this key
*/
return this.category;
}
/**
* Gets the severity of this key.
* @return Severity of this key
*/
return this.severity;
}
/**
* Gets the description of this key.
* @return description of this key
*/
return this.description;
}
/**
* Gets the ordinal of this key.
* @return ordinal of this key
*/
return this.ordinal;
}
/**
* Gets the name of the MessageDescriptor as it should appear
* in the messages file.
* @return name of message descriptor
*/
return new StringBuilder()
.append("_")
}
/**
* {@inheritDoc}
*/
return getPropertyKeyName(true, true, true);
}
/**
* Gets the name of the key as it would appear in a properties file.
* @param includeCategory in the name
* @param includeSeverity in the name
* @param includeOrdinal in the name
* @return string representing the property key
*/
boolean includeSeverity,
boolean includeOrdinal) {
}
}
}
}
/**
* {@inheritDoc}
*/
} else {
}
}
}