* @return The parsed, storable property value.
* @throws PropertyException For an invalid property value.
*/
private PropertyValue createPropertyValue(final FObj fobj,
final String value) throws PropertyException {
final PropertyValue pv = this.standardParse(fobj, value);
if (pv.canEvalKeyword()) {
return pv;
}
/* The remaining case is a comma-delimited list of font-families. */
final StringTokenizer tokenizer = new StringTokenizer(value, ",");
if (tokenizer.countTokens() < 1) {
throw this.unexpectedValue(value, fobj);
}
final ValueCollection collection = new ValueCollection();
while (tokenizer.hasMoreTokens()) {
final String token = tokenizer.nextToken().trim();
final PropertyValue parsedToken = this.standardParse(fobj, token,
PdFontFamily.VALID_TOKEN_KEYWORDS);
if (parsedToken.canEvalKeyword()
|| parsedToken instanceof DtName
|| parsedToken instanceof DtString) {
collection.addItem(parsedToken);
} else {
throw this.unexpectedValue(token, fobj);