Search in sources :

Example 1 with Cardinality

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);
}
Also used : Types(org.apache.xmpbox.type.Types) Cardinality(org.apache.xmpbox.type.Cardinality)

Aggregations

Cardinality (org.apache.xmpbox.type.Cardinality)1 Types (org.apache.xmpbox.type.Types)1