package org.rr.jeborker.metadata;
import java.io.IOException;
import java.util.HashMap;
import org.apache.jempbox.xmp.XMPMetadata;
import org.apache.jempbox.xmp.XMPSchema;
abstract class APDFCommonMetadataHandler extends AMetadataHandler {
private HashMap<String, XMPSchema> schemas = new HashMap<String, XMPSchema>();
protected XMPSchema getXMPSchema(final String namespace, final XMPMetadata xmpMetadata) throws IOException {
XMPSchema xmpSchema = schemas.get(namespace);
if (xmpSchema == null) {
if (namespace.equals("dc")) {
xmpSchema = xmpMetadata.getDublinCoreSchema();
if(xmpSchema==null) {
xmpSchema = xmpMetadata.addDublinCoreSchema();
}
} else if (namespace.equals("xap")) {
xmpSchema = xmpMetadata.getBasicSchema();
if(xmpSchema==null) {
xmpSchema = xmpMetadata.addBasicSchema();
}
} else if (namespace.equals("pdf")) {
xmpSchema = xmpMetadata.getPDFSchema();
if(xmpSchema==null) {
xmpSchema = xmpMetadata.addPDFSchema();
}
} else if (namespace.equals("pdfx")) {
xmpSchema = xmpMetadata.getPDFXSchema();
if(xmpSchema==null) {
xmpSchema = xmpMetadata.addPDFXSchema();
}
} else if (namespace.equals("xmp")) {
xmpSchema = xmpMetadata.getXMPSchema();
if(xmpSchema==null) {
xmpSchema = xmpMetadata.addXMPSchema();
}
} else if (namespace.equals("xapMM") || namespace.equals("xmpMM")) {
xmpSchema = xmpMetadata.getMediaManagementSchema();
if(xmpSchema==null) {
xmpSchema = xmpMetadata.addMediaManagementSchema();
}
} else if (namespace.equals("photoshop")) {
xmpSchema = xmpMetadata.getPhotoshopSchema();
if(xmpSchema==null) {
xmpSchema = xmpMetadata.addPhotoshopSchema();
}
}
schemas.put(namespace, xmpSchema);
}
return xmpSchema;
}
}