* @throws PropertyException For an invalid property value.
*/
protected PropertyValue createPropertyValue(final FObj fobj,
final FoProperty enumeration, final String value)
throws PropertyException {
final PropertyValue pv = this.standardParse(fobj, value);
if (pv.canEvalKeyword()) {
return pv;
}
/* There should be one or more instances of <color>|transparent.
* If there is only one, it will not be returned above as a valid
* property value, because we only test for "inherit" there.
* Therefore we need to tokenize and parse each item, even if there is
* only one token. */
final ValueCollection collection = new ValueCollection();
final StringTokenizer st = new StringTokenizer(value);
if (st.countTokens() < 1
|| st.countTokens() > PdBorderColor.MAX_TOKENS) {
throw this.unexpectedValue(value, fobj);
}
while (st.hasMoreTokens()) {
final String token = st.nextToken();
final PropertyValue parsedToken = this.standardParse(fobj, token,
PdBorderColor.VALID_TOKEN_KEYWORDS);
if (parsedToken.canEvalColor()
|| parsedToken.canEvalKeyword()) {
collection.addItem(parsedToken);
} else {
throw this.unexpectedValue(token, fobj);
}
}