diff --git a/xmp-core/src/main/java/org/verapdf/xmp/containers/StaticXmpCoreContainers.java b/xmp-core/src/main/java/org/verapdf/xmp/containers/StaticXmpCoreContainers.java index b00767f69..b8a48476e 100644 --- a/xmp-core/src/main/java/org/verapdf/xmp/containers/StaticXmpCoreContainers.java +++ b/xmp-core/src/main/java/org/verapdf/xmp/containers/StaticXmpCoreContainers.java @@ -1,6 +1,7 @@ package org.verapdf.xmp.containers; -import java.util.*; +import java.util.HashMap; +import java.util.Map; public class StaticXmpCoreContainers { @@ -14,23 +15,46 @@ public class StaticXmpCoreContainers { */ private static final ThreadLocal> prefixToNamespaceMap = new ThreadLocal<>(); + /** + * Clears all namespaces and prefixes. + */ public static void clearAllContainers() { namespaceToPrefixMap.set(new HashMap<>()); prefixToNamespaceMap.set(new HashMap<>()); } + /** + * Gets namespaces map. + * + * @return a map of namespaces + */ public static Map getNamespaceToPrefixMap() { return namespaceToPrefixMap.get(); } + /** + * Gets prefixes map. + * + * @return a map of prefixes + */ public static Map getPrefixToNamespaceMap() { return prefixToNamespaceMap.get(); } + /** + * Sets namespaces. + * + * @param namespaceToPrefixMap a map of namespaces + */ public static void setNamespaceToPrefixMap(Map namespaceToPrefixMap) { StaticXmpCoreContainers.namespaceToPrefixMap.set(namespaceToPrefixMap); } + /** + * Sets prefixes. + * + * @param prefixToNamespaceMap a map of prefixes + */ public static void setPrefixToNamespaceMap(Map prefixToNamespaceMap) { StaticXmpCoreContainers.prefixToNamespaceMap.set(prefixToNamespaceMap); } diff --git a/xmp-core/src/main/java/org/verapdf/xmp/impl/VeraPDFExtensionSchemaDefinition.java b/xmp-core/src/main/java/org/verapdf/xmp/impl/VeraPDFExtensionSchemaDefinition.java index de41d1152..b857bce6f 100644 --- a/xmp-core/src/main/java/org/verapdf/xmp/impl/VeraPDFExtensionSchemaDefinition.java +++ b/xmp-core/src/main/java/org/verapdf/xmp/impl/VeraPDFExtensionSchemaDefinition.java @@ -1,27 +1,36 @@ package org.verapdf.xmp.impl; -import org.verapdf.xmp.XMPConst; -import org.verapdf.xmp.XMPException; -import org.verapdf.xmp.options.PropertyOptions; - import java.util.ArrayList; import java.util.Collections; import java.util.List; +import org.verapdf.xmp.XMPConst; +import org.verapdf.xmp.XMPException; +import org.verapdf.xmp.options.PropertyOptions; public class VeraPDFExtensionSchemaDefinition { private static final String PROPERTY = "property"; - public static final String NAMESPACE_URI = "namespaceURI"; + private static final String NAMESPACE_URI = "namespaceURI"; private static final String PREFIX = "prefix"; private static final String SCHEMA = "schema"; private static final String PDFA_SCHEMA_PREFIX = "pdfaSchema"; private final VeraPDFXMPNode xmpNode; + /** + * VeraPDF extension schema. + * + * @param xmpNode a metadata node + */ public VeraPDFExtensionSchemaDefinition(VeraPDFXMPNode xmpNode) { this.xmpNode = xmpNode; } + /** + * Gets schema properties. + * + * @return schema properties + */ public List getExtensionSchemaProperties() { if (this.xmpNode != null) { List res = new ArrayList<>(); @@ -39,7 +48,12 @@ public List getExtensionSchemaProperties() { } return Collections.emptyList(); } - + + /** + * Gets property of xmp node. + * + * @return xmp node property value + */ public VeraPDFXMPNode getPropertiesNode() { if (this.xmpNode != null) { for (VeraPDFXMPNode child : this.xmpNode.getChildren()) { @@ -51,12 +65,25 @@ public VeraPDFXMPNode getPropertiesNode() { return null; } - public void addExtensionSchemaProperty(VeraPDFExtensionSchemaProperty propertyDefinitionXMPNode) throws XMPException { + /** + * Adds extension schema property. + * + * @param propertyDefinitionXMPNode a property of xmp node + * + * @throws XMPException exceptions from the metadata processing + */ + public void addExtensionSchemaProperty(VeraPDFExtensionSchemaProperty propertyDefinitionXMPNode) + throws XMPException { if (this.xmpNode != null) { getPropertiesNode().getOriginalNode().addChild(propertyDefinitionXMPNode.getXmpNode()); } } + /** + * Get namespaces URI of xmp node. + * + * @return xmp node namespace value + */ public String getNamespaceURI() { for (VeraPDFXMPNode child : this.xmpNode.getChildren()) { if (XMPConst.NS_PDFA_SCHEMA.equals(child.getNamespaceURI()) && NAMESPACE_URI.equals(child.getName())) { @@ -66,6 +93,11 @@ public String getNamespaceURI() { return null; } + /** + * Get prefix of xmp node. + * + * @return xmp node prefix value + */ public String getPrefix() { for (VeraPDFXMPNode child : this.xmpNode.getChildren()) { if (XMPConst.NS_PDFA_SCHEMA.equals(child.getNamespaceURI()) && PREFIX.equals(child.getName())) { @@ -75,19 +107,36 @@ public String getPrefix() { return null; } + /** + * Gets xmp node. + * + * @return original xmp node from metadata + */ public XMPNode getXmpNode() { return xmpNode.getOriginalNode(); } - public static VeraPDFExtensionSchemaDefinition createExtensionSchemaDefinitionNode(String schema, String namespaceURI, String prefix) throws XMPException { - XMPNode node = new XMPNode(XMPConst.ARRAY_ITEM_NAME,"", new PropertyOptions(PropertyOptions.STRUCT), "rdf"); + /** + * Creates schema definition node. + * + * @param schema a xmp schema definition + * @param namespaceURI a namespace URI of the node + * @param prefix a prefix of the node + * + * @return xmp extension schema + * + * @throws XMPException exceptions from the metadata processing + */ + public static VeraPDFExtensionSchemaDefinition createExtensionSchemaDefinitionNode(String schema, + String namespaceURI, String prefix) throws XMPException { + XMPNode node = new XMPNode(XMPConst.ARRAY_ITEM_NAME, "", new PropertyOptions(PropertyOptions.STRUCT), "rdf"); node.addChild(new XMPNode(PDFA_SCHEMA_PREFIX + ":" + SCHEMA, schema, new PropertyOptions(PropertyOptions.NO_OPTIONS), PDFA_SCHEMA_PREFIX)); node.addChild(new XMPNode(PDFA_SCHEMA_PREFIX + ":" + NAMESPACE_URI, namespaceURI, new PropertyOptions(PropertyOptions.NO_OPTIONS), PDFA_SCHEMA_PREFIX)); node.addChild(new XMPNode(PDFA_SCHEMA_PREFIX + ":" + PREFIX, prefix, new PropertyOptions(PropertyOptions.NO_OPTIONS), PDFA_SCHEMA_PREFIX)); - node.addChild(new XMPNode(PDFA_SCHEMA_PREFIX + ":" + PROPERTY,"", + node.addChild(new XMPNode(PDFA_SCHEMA_PREFIX + ":" + PROPERTY, "", new PropertyOptions(PropertyOptions.ARRAY + PropertyOptions.ARRAY_ORDERED), PDFA_SCHEMA_PREFIX)); return new VeraPDFExtensionSchemaDefinition(VeraPDFXMPNode.fromXMPNode(node)); }