use of org.apache.xmpbox.type.Cardinality in project pdfbox by apache.
the class PdfaExtensionHelper method transformValueType.
private static PropertyType transformValueType(TypeMapping tm, String valueType) throws XmpParsingException {
if ("Lang Alt".equals(valueType)) {
return TypeMapping.createPropertyType(Types.LangAlt, Cardinality.Simple);
}
// else all other cases
if (valueType.startsWith(CLOSED_CHOICE)) {
valueType = valueType.substring(CLOSED_CHOICE.length());
} else if (valueType.startsWith(OPEN_CHOICE)) {
valueType = valueType.substring(OPEN_CHOICE.length());
}
int pos = valueType.indexOf(' ');
Cardinality card = Cardinality.Simple;
if (pos > 0) {
String scard = valueType.substring(0, pos);
if ("seq".equals(scard)) {
card = Cardinality.Seq;
} else if ("bag".equals(scard)) {
card = Cardinality.Bag;
} else if ("alt".equals(scard)) {
card = Cardinality.Alt;
} else {
return null;
}
}
String vt = valueType.substring(pos + 1);
Types type = null;
try {
type = pos < 0 ? Types.valueOf(valueType) : Types.valueOf(vt);
} catch (IllegalArgumentException e) {
if (tm.isDefinedType(vt)) {
type = Types.DefinedType;
}
}
return TypeMapping.createPropertyType(type, card);
}
Aggregations