Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ComplexPropertyContainer.java URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ComplexPropertyContainer.java?rev=1370356&r1=1370355&r2=1370356&view=diff ============================================================================== --- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ComplexPropertyContainer.java (original) +++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ComplexPropertyContainer.java Tue Aug 7 16:40:47 2012 @@ -22,8 +22,10 @@ package org.apache.padaf.xmpbox.type; import java.util.ArrayList; +import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; import org.apache.padaf.xmpbox.XMPMetadata; import org.w3c.dom.Element; @@ -37,10 +39,16 @@ import org.w3c.dom.NodeList; * @author a183132 * */ -public class ComplexPropertyContainer extends AbstractField { +public class ComplexPropertyContainer /*extends AbstractField*/ { private List<AbstractField> properties; + + private Element element; + + private Map<String, Attribute> attributes; + + /** * Complex Property type constructor (namespaceURI is given) @@ -56,11 +64,89 @@ public class ComplexPropertyContainer ex */ public ComplexPropertyContainer(XMPMetadata metadata, String namespaceURI, String prefix, String propertyName) { - super(metadata, namespaceURI, prefix, propertyName); + String qualifiedName = prefix + ":" + propertyName; + if (namespaceURI!=null) { + element = metadata.getFuturOwner().createElementNS(namespaceURI, qualifiedName); + } else { + element = metadata.getFuturOwner().createElement(qualifiedName); + } properties = new ArrayList<AbstractField>(); + attributes = new HashMap<String, Attribute>(); + } + + + + public Element getElement() { + return element; + } + + /** + * Get an attribute with its name in this entity + * + * @param qualifiedName + * the full qualified name of the attribute wanted + * @return The attribute property + */ + public Attribute getAttribute(String qualifiedName) { + return attributes.get(qualifiedName); + } + + /** + * Get attributes list defined for this entity + * + * @return Attributes list + */ + public List<Attribute> getAllAttributes() { + return new ArrayList<Attribute>(attributes.values()); + } + + /** + * Set a new attribute for this entity + * + * @param value + * The Attribute property to add + */ + public void setAttribute(Attribute value) { + if (attributes.containsKey(value.getQualifiedName())) { + // if same name in element, attribute will be replaced + attributes.remove(value.getQualifiedName()); + } + if (value.getNamespace() == null) { + attributes.put(value.getQualifiedName(), value); + element.setAttribute(value.getQualifiedName(), value.getValue()); + } else { + attributes.put(value.getQualifiedName(), value); + element.setAttributeNS(value.getNamespace(), value + .getQualifiedName(), value.getValue()); + } + } + + /** + * Remove an attribute of this entity + * + * @param qualifiedName + * the full qualified name of the attribute wanted + */ + public void removeAttribute(String qualifiedName) { + if (containsAttribute(qualifiedName)) { + element.removeAttribute(qualifiedName); + attributes.remove(qualifiedName); + } + } /** + * Check if an attribute is declared for this entity + * + * @param qualifiedName + * the full qualified name of the attribute concerned + * @return true if attribute is present + */ + public boolean containsAttribute(String qualifiedName) { + return attributes.containsKey(qualifiedName); + } + + /** * Give the first property found in this container with type and localname * expected * @@ -97,7 +183,7 @@ public class ComplexPropertyContainer ex // BUT IT CREATE PROBLEM TO FIND AND ERASE CLONED ELEMENT // Node cloned = obj.getElement().cloneNode(true); // parent.adoptNode(cloned); - getElement().appendChild(obj.getElement()); + element.appendChild(obj.getElement()); // element.appendChild(cloned); } @@ -184,7 +270,6 @@ public class ComplexPropertyContainer ex public void removeProperty(AbstractField property) { if (containsProperty(property)) { properties.remove(property); - Element element = getElement(); if (element.hasChildNodes()) { NodeList nodes = element.getChildNodes(); boolean canRemove = false;
Added: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/DefinedStructuredType.java URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/DefinedStructuredType.java?rev=1370356&view=auto ============================================================================== --- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/DefinedStructuredType.java (added) +++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/DefinedStructuredType.java Tue Aug 7 16:40:47 2012 @@ -0,0 +1,54 @@ +/***************************************************************************** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +package org.apache.padaf.xmpbox.type; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.padaf.xmpbox.XMPMetadata; + +public class DefinedStructuredType extends AbstractStructuredType { + + private Map<String, String> definedProperties = null; + + public DefinedStructuredType(XMPMetadata metadata, String namespaceURI, + String fieldPrefix) { + super(metadata, namespaceURI, fieldPrefix); + this.definedProperties = new HashMap<String, String>(); + } + + @Override + public String getFieldsNamespace() { + return getNamespace(); + } + + public void addProperty (String name, String type) { + definedProperties.put(name, type); + } + + protected Map<String, String> getDefinedProperties() { + return definedProperties; + } + + + +} Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/JobType.java URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/JobType.java?rev=1370356&r1=1370355&r2=1370356&view=diff ============================================================================== --- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/JobType.java (original) +++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/JobType.java Tue Aug 7 16:40:47 2012 @@ -42,7 +42,7 @@ public class JobType extends AbstractStr public JobType(XMPMetadata metadata) { - this(metadata, PREFERED_PREFIX); + this(metadata, PREFERED_PREFIX); } public JobType(XMPMetadata metadata, String fieldPrefix) { Added: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFAFieldType.java URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFAFieldType.java?rev=1370356&view=auto ============================================================================== --- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFAFieldType.java (added) +++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFAFieldType.java Tue Aug 7 16:40:47 2012 @@ -0,0 +1,68 @@ +/***************************************************************************** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +package org.apache.padaf.xmpbox.type; + +import org.apache.padaf.xmpbox.XMPMetadata; +import org.apache.padaf.xmpbox.XmpConstants; + +public class PDFAFieldType extends AbstractStructuredType { + + public static final String ELEMENT_NS = "http://www.aiim.org/pdfa/ns/field#"; + + public static final String PREFERED_PREFIX = "pdfaField"; + + @PropertyType(propertyType = "Text") + public static final String NAME = "name"; + + @PropertyType(propertyType = "Choice") + public static final String VALUETYPE = "valueType"; + + @PropertyType(propertyType = "Text") + public static final String DESCRIPTION = "description"; + + public PDFAFieldType(XMPMetadata metadata) { + super(metadata, XmpConstants.RDF_NAMESPACE, PREFERED_PREFIX); + } + + @Override + public String getFieldsNamespace() { + return ELEMENT_NS; + } + + public String getName () { + TextType tt = (TextType) getProperty(NAME); + return tt == null ? null : tt.getStringValue(); + } + + public String getValueType () { + TextType tt = (TextType) getProperty(VALUETYPE); + return tt == null ? null : tt.getStringValue(); + } + + public String getDescription () { + TextType tt = (TextType) getProperty(DESCRIPTION); + return tt == null ? null : tt.getStringValue(); + } + + + +} Added: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFAPropertyType.java URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFAPropertyType.java?rev=1370356&view=auto ============================================================================== --- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFAPropertyType.java (added) +++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFAPropertyType.java Tue Aug 7 16:40:47 2012 @@ -0,0 +1,75 @@ +/***************************************************************************** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +package org.apache.padaf.xmpbox.type; + +import org.apache.padaf.xmpbox.XMPMetadata; +import org.apache.padaf.xmpbox.XmpConstants; + +public class PDFAPropertyType extends AbstractStructuredType { + + public static final String ELEMENT_NS = "http://www.aiim.org/pdfa/ns/property#"; + + public static final String PREFERED_PREFIX = "pdfaProperty"; + + @PropertyType(propertyType = "Text") + public static final String NAME = "name"; + + @PropertyType(propertyType = "Choice") + public static final String VALUETYPE = "valueType"; + + @PropertyType(propertyType = "Choice") + public static final String CATEGORY = "category"; + + @PropertyType(propertyType = "Text") + public static final String DESCRIPTION = "description"; + + + public PDFAPropertyType(XMPMetadata metadata) { + super(metadata, XmpConstants.RDF_NAMESPACE, PREFERED_PREFIX); + } + + @Override + public String getFieldsNamespace() { + return ELEMENT_NS; + } + + public String getName () { + TextType tt = (TextType) getProperty(NAME); + return tt == null ? null : tt.getStringValue(); + } + + public String getValueType () { + ChoiceType tt = (ChoiceType) getProperty(VALUETYPE); + return tt == null ? null : tt.getStringValue(); + } + + public String getDescription () { + TextType tt = (TextType) getProperty(DESCRIPTION); + return tt == null ? null : tt.getStringValue(); + } + + public String getCategory () { + ChoiceType tt = (ChoiceType) getProperty(CATEGORY); + return tt == null ? null : tt.getStringValue(); + } + +} Added: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFASchemaType.java URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFASchemaType.java?rev=1370356&view=auto ============================================================================== --- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFASchemaType.java (added) +++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFASchemaType.java Tue Aug 7 16:40:47 2012 @@ -0,0 +1,77 @@ +/***************************************************************************** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +package org.apache.padaf.xmpbox.type; + +import org.apache.padaf.xmpbox.XMPMetadata; +import org.apache.padaf.xmpbox.XmpConstants; + +public class PDFASchemaType extends AbstractStructuredType { + + public static final String ELEMENT_NS = "http://www.aiim.org/pdfa/ns/schema#"; + + public static final String PREFERED_PREFIX = "pdfaSchema"; + + @PropertyType(propertyType = "Text") + public static final String SCHEMA = "schema"; + + @PropertyType(propertyType = "URI") + public static final String NAMESPACE_URI = "namespaceURI"; + + @PropertyType(propertyType = "Text") + public static final String PREFIX = "prefix"; + + @PropertyType(propertyType = "seq PDFAProperty") + public static final String PROPERTY = "property"; + + @PropertyType(propertyType = "seq PDFAType") + public static final String VALUE_TYPE = "valueType"; + + public PDFASchemaType(XMPMetadata metadata) { + super(metadata, XmpConstants.RDF_NAMESPACE, PREFERED_PREFIX); + } + + @Override + public String getFieldsNamespace() { + return ELEMENT_NS; + } + + public String getNamespaceURI() { + URIType tt = (URIType) getProperty(NAMESPACE_URI); + return tt == null ? null : tt.getStringValue(); + } + + public String getPrefix() { + TextType tt = (TextType) getProperty(PREFIX); + return tt == null ? null : tt.getStringValue(); + } + + public ArrayProperty getProperty() { + return (ArrayProperty) getArrayProperty(PROPERTY); + } + + public ArrayProperty getValueType() { + return (ArrayProperty) getArrayProperty(VALUE_TYPE); + } + + + +} Added: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFATypeType.java URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFATypeType.java?rev=1370356&view=auto ============================================================================== --- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFATypeType.java (added) +++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/PDFATypeType.java Tue Aug 7 16:40:47 2012 @@ -0,0 +1,85 @@ +/***************************************************************************** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + ****************************************************************************/ + +package org.apache.padaf.xmpbox.type; + +import org.apache.padaf.xmpbox.XMPMetadata; +import org.apache.padaf.xmpbox.XmpConstants; + +public class PDFATypeType extends AbstractStructuredType { + + public static final String ELEMENT_NS = "http://www.aiim.org/pdfa/ns/type#"; + + public static final String PREFERED_PREFIX = "pdfaType"; + + + @PropertyType(propertyType = "Text") + public static final String TYPE = "type"; + + @PropertyType(propertyType = "URI") + public static final String NS_URI = "namespaceURI"; + + @PropertyType(propertyType = "Text") + public static final String PREFIX = "prefix"; + + @PropertyType(propertyType = "Text") + public static final String DESCRIPTION = "description"; + + @PropertyType(propertyType = "seq PDFAField") + public static final String FIELD = "field"; + + public PDFATypeType(XMPMetadata metadata) { + super(metadata, XmpConstants.RDF_NAMESPACE, PREFERED_PREFIX); + } + + @Override + public String getFieldsNamespace() { + return ELEMENT_NS; + } + + public String getNamespaceURI() { + URIType tt = (URIType) getProperty(NS_URI); + return tt == null ? null : tt.getStringValue(); + } + + public String getType() { + TextType tt = (TextType) getProperty(TYPE); + return tt == null ? null : tt.getStringValue(); + } + + public String getPrefix() { + TextType tt = (TextType) getProperty(PREFIX); + return tt == null ? null : tt.getStringValue(); + } + + public String getDescription() { + TextType tt = (TextType) getProperty(DESCRIPTION); + return tt == null ? null : tt.getStringValue(); + } + + public ArrayProperty getFields() { + return (ArrayProperty) getArrayProperty(FIELD); + } + + + + +} Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeDescription.java URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeDescription.java?rev=1370356&r1=1370355&r2=1370356&view=diff ============================================================================== --- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeDescription.java (original) +++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeDescription.java Tue Aug 7 16:40:47 2012 @@ -34,6 +34,8 @@ public class TypeDescription { private Class<? extends AbstractField> clz; + private DefinedStructuredType definedStructuredType; + // TODO PropMapping should be in package Type private PropMapping properties = null; @@ -44,7 +46,16 @@ public class TypeDescription { this.clz = clz; } + public TypeDescription(String type, BasicType basic, DefinedStructuredType definedStructured) { + super(); + this.type = type; + this.basic = basic; + this.clz = null; + this.definedStructuredType = definedStructured; + } + + public TypeDescription(String type, BasicType basic) { this(type, basic,TextType.class); } @@ -74,4 +85,8 @@ public class TypeDescription { this.properties = properties; } + public DefinedStructuredType getDefinedStructure () { + return this.definedStructuredType; + } + } Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeMapping.java URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeMapping.java?rev=1370356&r1=1370355&r2=1370356&view=diff ============================================================================== --- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeMapping.java (original) +++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/TypeMapping.java Tue Aug 7 16:40:47 2012 @@ -28,11 +28,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import org.apache.padaf.xmpbox.XMPMetadata; import org.apache.padaf.xmpbox.parser.PropMapping; import org.apache.padaf.xmpbox.schema.PropertyAttributesAnnotation; -import org.apache.padaf.xmpbox.schema.XMPSchema; import org.apache.padaf.xmpbox.type.TypeDescription.BasicType; public final class TypeMapping { @@ -56,7 +56,6 @@ public final class TypeMapping { private static Map<Class<?>, Map<String,String>> structuredTypes = new HashMap<Class<?>, Map<String,String>>(); - // no public constructor public TypeMapping() { } @@ -107,10 +106,10 @@ public final class TypeMapping { addToStructuredMaps(new TypeDescription("ResourceRef",null,ResourceRefType.class)); addToStructuredMaps(new TypeDescription("Version",null,VersionType.class)); // PDF/A structured types -// addToStructuredMaps(new TypeDescription("PDFAField",null,PDFAFieldType.class)); -// addToStructuredMaps(new TypeDescription("PDFAProperty",null,PDFAPropertyType.class)); -// addToStructuredMaps(new TypeDescription("PDFAType",null,PDFATypeType.class)); -// addToStructuredMaps(new TypeDescription("PDFASchema",null,PDFASchemaType.class)); + addToStructuredMaps(new TypeDescription("PDFAField",null,PDFAFieldType.class)); + addToStructuredMaps(new TypeDescription("PDFAProperty",null,PDFAPropertyType.class)); + addToStructuredMaps(new TypeDescription("PDFAType",null,PDFATypeType.class)); + addToStructuredMaps(new TypeDescription("PDFASchema",null,PDFASchemaType.class)); } private static void addToBasicMaps (TypeDescription td) { @@ -118,20 +117,26 @@ public final class TypeMapping { BASIC_CLASSES.put(td.getTypeClass(), td); } - private static void addToDerivedMaps (TypeDescription td) { + public static void addToDerivedMaps (TypeDescription td) { DERIVED_TYPES.put(td.getType(),td); DERIVED_CLASSES.put(td.getTypeClass(), td); } - private static void addToStructuredMaps (TypeDescription td) { + public static void addToStructuredMaps (TypeDescription td) { STRUCTURED_TYPES.put(td.getType(),td); STRUCTURED_CLASSES.put(td.getTypeClass(), td); try { String ns = (String)td.getTypeClass().getField("ELEMENT_NS").get(null); STRUCTURED_NAMESPACES.put(ns, td); - PropMapping pm = initializePropMapping(ns, (Class<? extends AbstractStructuredType>)td.getTypeClass()); - td.setProperties(pm); + Class<? extends AbstractStructuredType> clz = (Class<? extends AbstractStructuredType>)td.getTypeClass(); + if (clz!=null) { + PropMapping pm = initializePropMapping(ns, clz); + td.setProperties(pm); + } else { + PropMapping pm = initializePropMapping(ns, td.getDefinedStructure()); + td.setProperties(pm); + } } catch (IllegalArgumentException e) { throw new IllegalArgumentException("Failed to init structured maps for "+td.getTypeClass(), e); } catch (SecurityException e) { @@ -143,6 +148,13 @@ public final class TypeMapping { } } + public void addToStructuredMaps (TypeDescription td, String ns) { + STRUCTURED_TYPES.put(td.getType(),td); + STRUCTURED_CLASSES.put(td.getTypeClass(), td); + STRUCTURED_NAMESPACES.put(ns, td); + } + + public String getType (Class<?> clz) { // search in basic TypeDescription td = BASIC_CLASSES.get(clz); @@ -272,8 +284,6 @@ public final class TypeMapping { * @return True if namespace URI is a reference for a complex basic type */ public boolean isStructuredTypeNamespace(String namespace) { -// return STRUCTURED_TYPES.containsKey(namespace); - // TODO why was STRUCTURED_TYPE return STRUCTURED_NAMESPACES.containsKey(namespace); } @@ -357,5 +367,13 @@ public final class TypeMapping { return propMap; } + private static PropMapping initializePropMapping(String ns, + DefinedStructuredType dst) { + PropMapping propMap = new PropMapping(ns); + for (Entry<String, String> entry: dst.getDefinedProperties().entrySet()) { + propMap.addNewProperty(entry.getKey(), entry.getValue(), null); + } + return propMap; + } } Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/BirthCertificateSchemaWithXMLDescriptions.java URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/BirthCertificateSchemaWithXMLDescriptions.java?rev=1370356&r1=1370355&r2=1370356&view=diff ============================================================================== --- pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/BirthCertificateSchemaWithXMLDescriptions.java (original) +++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/BirthCertificateSchemaWithXMLDescriptions.java Tue Aug 7 16:40:47 2012 @@ -61,9 +61,9 @@ public class BirthCertificateSchemaWithX @PropertyExtensionDefinition(propertyCategory = "external") public static final String BIRTH_COUNTRY = "birth-country"; - @PropertyType(propertyType = "mailaddress") - @PropertyExtensionDefinition(propertyCategory = "external") - public static final String MAIL_ADR = "mail"; +// @PropertyType(propertyType = "mailaddress") +// @PropertyExtensionDefinition(propertyCategory = "external") +// public static final String MAIL_ADR = "mail"; public BirthCertificateSchemaWithXMLDescriptions(XMPMetadata metadata) { super(metadata, PREFERED_PREFIX, NAMESPACE); @@ -102,63 +102,63 @@ public class BirthCertificateSchemaWithX .getStringValue(); } - public void setMailaddr(String name, String domain) { - ComplexPropertyContainer field = new ComplexPropertyContainer(getMetadata(),null, - getLocalPrefix(), MAIL_ADR); - field.setAttribute(new Attribute(null, "rdf", "parseType", "Resource")); - TextType namePart = new TextType(getMetadata(), null, "madn", "name", name); - TextType domainPart = new TextType(getMetadata(), null, "madn", "domain", domain); - field.addProperty(namePart); - field.addProperty(domainPart); - addProperty(field); - - } - - private ComplexPropertyContainer getMailField() { - AbstractField afield = this.getPropertyAsSimple(MAIL_ADR); - if (afield == null) { - return null; - } - if (afield instanceof ComplexPropertyContainer) { - return (ComplexPropertyContainer) afield; - } else { - throw new IllegalArgumentException(MAIL_ADR - + " property found but not seems to be a field"); - } - } - - private TextType getTextType(String nameProp) { - ComplexPropertyContainer field = getMailField(); - Iterator<AbstractField> it = field.getAllProperties().iterator(); - AbstractField aProp; - while (it.hasNext()) { - aProp = it.next(); - if (aProp.getPropertyName().equals(nameProp)) { - if (aProp instanceof TextType) { - return (TextType) aProp; - } else { - throw new IllegalArgumentException( - nameProp - + " property found but not seems to be in expected type"); - } - } - } - return null; - } - - public String getMailName() { - TextType name = getTextType("name"); - if (name != null) { - return name.getStringValue(); - } - return null; - } - - public String getMailDomain() { - TextType name = getTextType("domain"); - if (name != null) { - return name.getStringValue(); - } - return null; - } +// public void setMailaddr(String name, String domain) { +// ComplexPropertyContainer field = new ComplexPropertyContainer(getMetadata(),null, +// getLocalPrefix(), MAIL_ADR); +// field.setAttribute(new Attribute(null, "rdf", "parseType", "Resource")); +// TextType namePart = new TextType(getMetadata(), null, "madn", "name", name); +// TextType domainPart = new TextType(getMetadata(), null, "madn", "domain", domain); +// field.addProperty(namePart); +// field.addProperty(domainPart); +// addProperty(field); +// +// } + +// private ComplexPropertyContainer getMailField() { +// AbstractField afield = this.getPropertyAsSimple(MAIL_ADR); +// if (afield == null) { +// return null; +// } +// if (afield instanceof ComplexPropertyContainer) { +// return (ComplexPropertyContainer) afield; +// } else { +// throw new IllegalArgumentException(MAIL_ADR +// + " property found but not seems to be a field"); +// } +// } + +// private TextType getTextType(String nameProp) { +// ComplexPropertyContainer field = getMailField(); +// Iterator<AbstractField> it = field.getAllProperties().iterator(); +// AbstractField aProp; +// while (it.hasNext()) { +// aProp = it.next(); +// if (aProp.getPropertyName().equals(nameProp)) { +// if (aProp instanceof TextType) { +// return (TextType) aProp; +// } else { +// throw new IllegalArgumentException( +// nameProp +// + " property found but not seems to be in expected type"); +// } +// } +// } +// return null; +// } + +// public String getMailName() { +// TextType name = getTextType("name"); +// if (name != null) { +// return name.getStringValue(); +// } +// return null; +// } +// +// public String getMailDomain() { +// TextType name = getTextType("domain"); +// if (name != null) { +// return name.getStringValue(); +// } +// return null; +// } } Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/parser/DeserializationTest.java URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/parser/DeserializationTest.java?rev=1370356&r1=1370355&r2=1370356&view=diff ============================================================================== --- pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/parser/DeserializationTest.java (original) +++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/parser/DeserializationTest.java Tue Aug 7 16:40:47 2012 @@ -23,19 +23,7 @@ package org.apache.padaf.xmpbox.parser; import java.io.ByteArrayOutputStream; import java.io.InputStream; -import java.util.List; -import junit.framework.Assert; - -import org.apache.padaf.xmpbox.XMPMetadata; -import org.apache.padaf.xmpbox.parser.DateConverter; -import org.apache.padaf.xmpbox.parser.XMPDocumentBuilder; -import org.apache.padaf.xmpbox.schema.PDFAFieldDescription; -import org.apache.padaf.xmpbox.schema.PDFAPropertyDescription; -import org.apache.padaf.xmpbox.schema.PDFAValueTypeDescription; -import org.apache.padaf.xmpbox.schema.SchemaDescription; -import org.apache.padaf.xmpbox.schema.XMPSchema; -import org.apache.padaf.xmpbox.type.ThumbnailType; import org.junit.Before; import org.junit.Test; @@ -50,106 +38,106 @@ public class DeserializationTest { @Test public void testIsartorStyle() throws Exception { - - InputStream fis = XMPDocumentBuilder.class - .getResourceAsStream("isartorStyleXMPOK.xml"); - - XMPDocumentBuilder xdb = new XMPDocumentBuilder(); - - XMPMetadata metadata = xdb.parse(fis); - // <xmpMM:DocumentID> - Assert.assertEquals("uuid:09C78666-2F91-3A9C-92AF-3691A6D594F7", - metadata.getXMPMediaManagementSchema().getDocumentID()); - - // <xmp:CreateDate> - // <xmp:ModifyDate> - // <xmp:MetadataDate> - Assert.assertEquals(DateConverter - .toCalendar("2008-01-18T16:59:54+01:00"), metadata - .getXMPBasicSchema().getCreateDate()); - Assert.assertEquals(DateConverter - .toCalendar("2008-01-18T16:59:54+01:00"), metadata - .getXMPBasicSchema().getModifyDate()); - Assert.assertEquals(DateConverter - .toCalendar("2008-01-18T16:59:54+01:00"), metadata - .getXMPBasicSchema().getMetadataDate()); - - // PDFA Extension - // Check numbers of schema descriptions - Assert.assertTrue(metadata.getPDFExtensionSchema() - .getDescriptionSchema().size() == 1); - SchemaDescription desc = metadata.getPDFExtensionSchema() - .getDescriptionSchema().get(0); - - // Check description content - Assert.assertEquals("ACME E-Mail Schema", desc.getSchema()); - Assert.assertEquals("http://www.acme.com/ns/email/1/", desc - .getNameSpaceURI()); - Assert.assertEquals("acmeemail", desc.getPrefix()); - - // Check property definition - List<PDFAPropertyDescription> properties = desc.getProperties(); - Assert.assertTrue(properties.size() == 2); - - // Check properties content - PDFAPropertyDescription tmpProp = properties.get(0); - Assert.assertEquals("Delivery-Date", tmpProp.getNameValue()); - Assert.assertEquals("Date", tmpProp.getValueTypeValue()); - Assert.assertEquals("internal", tmpProp.getCategoryValue()); - Assert.assertEquals("date of email delivery", tmpProp - .getDescriptionValue()); - - tmpProp = properties.get(1); - Assert.assertEquals("From", tmpProp.getNameValue()); - Assert.assertEquals("mailaddress", tmpProp.getValueTypeValue()); - Assert.assertEquals("internal", tmpProp.getCategoryValue()); - Assert.assertEquals("sender email address", tmpProp - .getDescriptionValue()); - - // Check valuetype - // Check numbers of valuetype defined - Assert.assertTrue(desc.getValueTypes().size() == 1); - PDFAValueTypeDescription tmpValType = desc.getValueTypes().get(0); - Assert.assertEquals("mailaddress", tmpValType.getTypeNameValue()); - Assert.assertEquals("http://www.acme.com/ns/email/1/mailaddress/", - tmpValType.getNamespaceURIValue()); - Assert.assertEquals("mailaddress value", tmpValType - .getDescriptionValue()); - - // Check fields associated to this value type - Assert.assertTrue(tmpValType.getFields().size() == 2); - - PDFAFieldDescription tmpField = tmpValType.getFields().get(0); - Assert.assertEquals("name", tmpField.getNameValue()); - Assert.assertEquals("Text", tmpField.getValueTypeValue()); - Assert.assertEquals("plaintext name", tmpField.getDescriptionValue()); - - tmpField = tmpValType.getFields().get(1); - Assert.assertEquals("mailto", tmpField.getNameValue()); - Assert.assertEquals("Text", tmpField.getValueTypeValue()); - Assert.assertEquals("email address", tmpField.getDescriptionValue()); - - // Check PDFA Conformance schema - Assert.assertEquals("1", metadata.getPDFIdentificationSchema() - .getPartProperty().getStringValue()); - Assert.assertEquals("B", metadata.getPDFIdentificationSchema() - .getConformance()); - Assert.assertEquals("1:2005", metadata.getPDFIdentificationSchema() - .getAmdProperty().getStringValue()); - - // Check ADOBE PDF Schema - Assert.assertEquals("PDFlib Personalization Server 7.0.2p5 (Win32)", - metadata.getAdobePDFSchema().getProducer()); - - // Check Defined Schema - XMPSchema schem = metadata.getSchema("http://www.acme.com/ns/email/1/"); - Assert.assertEquals(DateConverter - .toCalendar("2007-11-09T09:55:36+01:00"), schem - .getDatePropertyValue("acmeemail:Delivery-Date")); - Assert.assertNotNull(schem.getAbstractProperty(("acmeemail:From"))); - - // SaveMetadataHelper.serialize(metadata, true, System.out); - +// +// InputStream fis = XMPDocumentBuilder.class +// .getResourceAsStream("isartorStyleXMPOK.xml"); +// +// XMPDocumentBuilder xdb = new XMPDocumentBuilder(); +// +// XMPMetadata metadata = xdb.parse(fis); +// // <xmpMM:DocumentID> +// Assert.assertEquals("uuid:09C78666-2F91-3A9C-92AF-3691A6D594F7", +// metadata.getXMPMediaManagementSchema().getDocumentID()); +// +// // <xmp:CreateDate> +// // <xmp:ModifyDate> +// // <xmp:MetadataDate> +// Assert.assertEquals(DateConverter +// .toCalendar("2008-01-18T16:59:54+01:00"), metadata +// .getXMPBasicSchema().getCreateDate()); +// Assert.assertEquals(DateConverter +// .toCalendar("2008-01-18T16:59:54+01:00"), metadata +// .getXMPBasicSchema().getModifyDate()); +// Assert.assertEquals(DateConverter +// .toCalendar("2008-01-18T16:59:54+01:00"), metadata +// .getXMPBasicSchema().getMetadataDate()); +// +// // PDFA Extension +// // Check numbers of schema descriptions +// Assert.assertTrue(metadata.getPDFExtensionSchema() +// .getDescriptionSchema().size() == 1); +// SchemaDescription desc = metadata.getPDFExtensionSchema() +// .getDescriptionSchema().get(0); +// +// // Check description content +// Assert.assertEquals("ACME E-Mail Schema", desc.getSchema()); +// Assert.assertEquals("http://www.acme.com/ns/email/1/", desc +// .getNameSpaceURI()); +// Assert.assertEquals("acmeemail", desc.getPrefix()); +// +// // Check property definition +// List<PDFAPropertyDescription> properties = desc.getProperties(); +// Assert.assertTrue(properties.size() == 2); +// +// // Check properties content +// PDFAPropertyDescription tmpProp = properties.get(0); +// Assert.assertEquals("Delivery-Date", tmpProp.getNameValue()); +// Assert.assertEquals("Date", tmpProp.getValueTypeValue()); +// Assert.assertEquals("internal", tmpProp.getCategoryValue()); +// Assert.assertEquals("date of email delivery", tmpProp +// .getDescriptionValue()); +// +// tmpProp = properties.get(1); +// Assert.assertEquals("From", tmpProp.getNameValue()); +// Assert.assertEquals("mailaddress", tmpProp.getValueTypeValue()); +// Assert.assertEquals("internal", tmpProp.getCategoryValue()); +// Assert.assertEquals("sender email address", tmpProp +// .getDescriptionValue()); +// +// // Check valuetype +// // Check numbers of valuetype defined +// Assert.assertTrue(desc.getValueTypes().size() == 1); +// PDFAValueTypeDescription tmpValType = desc.getValueTypes().get(0); +// Assert.assertEquals("mailaddress", tmpValType.getTypeNameValue()); +// Assert.assertEquals("http://www.acme.com/ns/email/1/mailaddress/", +// tmpValType.getNamespaceURIValue()); +// Assert.assertEquals("mailaddress value", tmpValType +// .getDescriptionValue()); +// +// // Check fields associated to this value type +// Assert.assertTrue(tmpValType.getFields().size() == 2); +// +// PDFAFieldDescription tmpField = tmpValType.getFields().get(0); +// Assert.assertEquals("name", tmpField.getNameValue()); +// Assert.assertEquals("Text", tmpField.getValueTypeValue()); +// Assert.assertEquals("plaintext name", tmpField.getDescriptionValue()); +// +// tmpField = tmpValType.getFields().get(1); +// Assert.assertEquals("mailto", tmpField.getNameValue()); +// Assert.assertEquals("Text", tmpField.getValueTypeValue()); +// Assert.assertEquals("email address", tmpField.getDescriptionValue()); +// +// // Check PDFA Conformance schema +// Assert.assertEquals("1", metadata.getPDFIdentificationSchema() +// .getPartProperty().getStringValue()); +// Assert.assertEquals("B", metadata.getPDFIdentificationSchema() +// .getConformance()); +// Assert.assertEquals("1:2005", metadata.getPDFIdentificationSchema() +// .getAmdProperty().getStringValue()); +// +// // Check ADOBE PDF Schema +// Assert.assertEquals("PDFlib Personalization Server 7.0.2p5 (Win32)", +// metadata.getAdobePDFSchema().getProducer()); +// +// // Check Defined Schema +// XMPSchema schem = metadata.getSchema("http://www.acme.com/ns/email/1/"); +// Assert.assertEquals(DateConverter +// .toCalendar("2007-11-09T09:55:36+01:00"), schem +// .getDatePropertyValue("acmeemail:Delivery-Date")); +// Assert.assertNotNull(schem.getAbstractProperty(("acmeemail:From"))); +// +// // SaveMetadataHelper.serialize(metadata, true, System.out); +// } @@ -178,125 +166,125 @@ public class DeserializationTest { @Test public void testIsartorStyleWithThumbs() throws Exception { - - InputStream fis = XMPDocumentBuilder.class - .getResourceAsStream("ThumbisartorStyle.xml"); - - XMPDocumentBuilder xdb = new XMPDocumentBuilder(); - - XMPMetadata metadata = xdb.parse(fis); - - // <xmpMM:DocumentID> - Assert.assertEquals("uuid:09C78666-2F91-3A9C-92AF-3691A6D594F7", - metadata.getXMPMediaManagementSchema().getDocumentID()); - - // <xmp:CreateDate> - // <xmp:ModifyDate> - // <xmp:MetadataDate> - Assert.assertEquals(DateConverter - .toCalendar("2008-01-18T16:59:54+01:00"), metadata - .getXMPBasicSchema().getCreateDate()); - Assert.assertEquals(DateConverter - .toCalendar("2008-01-18T16:59:54+01:00"), metadata - .getXMPBasicSchema().getModifyDate()); - Assert.assertEquals(DateConverter - .toCalendar("2008-01-18T16:59:54+01:00"), metadata - .getXMPBasicSchema().getMetadataDate()); - - // THUMBNAILS TEST - List<ThumbnailType> thumbs = metadata.getXMPBasicSchema() - .getThumbnailsProperty(); - Assert.assertNotNull(thumbs); - Assert.assertEquals(2, thumbs.size()); - - ThumbnailType thumb = thumbs.get(0); - Assert.assertEquals(new Integer(162), thumb.getHeight()); - Assert.assertEquals(new Integer(216), thumb.getWidth()); - Assert.assertEquals("JPEG", thumb.getFormat()); - Assert.assertEquals("/9j/4AAQSkZJRgABAgEASABIAAD", thumb.getImage()); - - thumb = thumbs.get(1); - Assert.assertEquals(new Integer(162), thumb.getHeight()); - Assert.assertEquals(new Integer(216), thumb.getWidth()); - Assert.assertEquals("JPEG", thumb.getFormat()); - Assert.assertEquals("/9j/4AAQSkZJRgABAgEASABIAAD", thumb.getImage()); - - // PDFA Extension - // Check numbers of schema descriptions - Assert.assertTrue(metadata.getPDFExtensionSchema() - .getDescriptionSchema().size() == 1); - SchemaDescription desc = metadata.getPDFExtensionSchema() - .getDescriptionSchema().get(0); - - // Check description content - Assert.assertEquals("ACME E-Mail Schema", desc.getSchema()); - Assert.assertEquals("http://www.acme.com/ns/email/1/", desc - .getNameSpaceURI()); - Assert.assertEquals("acmeemail", desc.getPrefix()); - - // Check property definition - List<PDFAPropertyDescription> properties = desc.getProperties(); - Assert.assertTrue(properties.size() == 2); - - // Check properties content - PDFAPropertyDescription tmpProp = properties.get(0); - Assert.assertEquals("Delivery-Date", tmpProp.getNameValue()); - Assert.assertEquals("Date", tmpProp.getValueTypeValue()); - Assert.assertEquals("internal", tmpProp.getCategoryValue()); - Assert.assertEquals("date of email delivery", tmpProp - .getDescriptionValue()); - - tmpProp = properties.get(1); - Assert.assertEquals("From", tmpProp.getNameValue()); - Assert.assertEquals("mailaddress", tmpProp.getValueTypeValue()); - Assert.assertEquals("internal", tmpProp.getCategoryValue()); - Assert.assertEquals("sender email address", tmpProp - .getDescriptionValue()); - - // Check valuetype - // Check numbers of valuetype defined - Assert.assertTrue(desc.getValueTypes().size() == 1); - PDFAValueTypeDescription tmpValType = desc.getValueTypes().get(0); - Assert.assertEquals("mailaddress", tmpValType.getTypeNameValue()); - Assert.assertEquals("http://www.acme.com/ns/email/1/mailaddress/", - tmpValType.getNamespaceURIValue()); - Assert.assertEquals("mailaddress value", tmpValType - .getDescriptionValue()); - - // Check fields associated to this value type - Assert.assertTrue(tmpValType.getFields().size() == 2); - - PDFAFieldDescription tmpField = tmpValType.getFields().get(0); - Assert.assertEquals("name", tmpField.getNameValue()); - Assert.assertEquals("Text", tmpField.getValueTypeValue()); - Assert.assertEquals("plaintext name", tmpField.getDescriptionValue()); - - tmpField = tmpValType.getFields().get(1); - Assert.assertEquals("mailto", tmpField.getNameValue()); - Assert.assertEquals("Text", tmpField.getValueTypeValue()); - Assert.assertEquals("email address", tmpField.getDescriptionValue()); - - // Check PDFA Conformance schema - Assert.assertEquals("1", metadata.getPDFIdentificationSchema() - .getPartProperty().getStringValue()); - Assert.assertEquals("B", metadata.getPDFIdentificationSchema() - .getConformance()); - Assert.assertEquals("1:2005", metadata.getPDFIdentificationSchema() - .getAmd()); - - // Check ADOBE PDF Schema - Assert.assertEquals("PDFlib Personalization Server 7.0.2p5 (Win32)", - metadata.getAdobePDFSchema().getProducer()); - - // Check Defined Schema - XMPSchema schem = metadata.getSchema("http://www.acme.com/ns/email/1/"); - Assert.assertEquals(DateConverter - .toCalendar("2007-11-09T09:55:36+01:00"), schem - .getDatePropertyValue("acmeemail:Delivery-Date")); - Assert.assertNotNull(schem.getAbstractProperty(("acmeemail:From"))); - - // SaveMetadataHelper.serialize(metadata, true, System.out); - +// +// InputStream fis = XMPDocumentBuilder.class +// .getResourceAsStream("ThumbisartorStyle.xml"); +// +// XMPDocumentBuilder xdb = new XMPDocumentBuilder(); +// +// XMPMetadata metadata = xdb.parse(fis); +// +// // <xmpMM:DocumentID> +// Assert.assertEquals("uuid:09C78666-2F91-3A9C-92AF-3691A6D594F7", +// metadata.getXMPMediaManagementSchema().getDocumentID()); +// +// // <xmp:CreateDate> +// // <xmp:ModifyDate> +// // <xmp:MetadataDate> +// Assert.assertEquals(DateConverter +// .toCalendar("2008-01-18T16:59:54+01:00"), metadata +// .getXMPBasicSchema().getCreateDate()); +// Assert.assertEquals(DateConverter +// .toCalendar("2008-01-18T16:59:54+01:00"), metadata +// .getXMPBasicSchema().getModifyDate()); +// Assert.assertEquals(DateConverter +// .toCalendar("2008-01-18T16:59:54+01:00"), metadata +// .getXMPBasicSchema().getMetadataDate()); +// +// // THUMBNAILS TEST +// List<ThumbnailType> thumbs = metadata.getXMPBasicSchema() +// .getThumbnailsProperty(); +// Assert.assertNotNull(thumbs); +// Assert.assertEquals(2, thumbs.size()); +// +// ThumbnailType thumb = thumbs.get(0); +// Assert.assertEquals(new Integer(162), thumb.getHeight()); +// Assert.assertEquals(new Integer(216), thumb.getWidth()); +// Assert.assertEquals("JPEG", thumb.getFormat()); +// Assert.assertEquals("/9j/4AAQSkZJRgABAgEASABIAAD", thumb.getImage()); +// +// thumb = thumbs.get(1); +// Assert.assertEquals(new Integer(162), thumb.getHeight()); +// Assert.assertEquals(new Integer(216), thumb.getWidth()); +// Assert.assertEquals("JPEG", thumb.getFormat()); +// Assert.assertEquals("/9j/4AAQSkZJRgABAgEASABIAAD", thumb.getImage()); +// +// // PDFA Extension +// // Check numbers of schema descriptions +// Assert.assertTrue(metadata.getPDFExtensionSchema() +// .getDescriptionSchema().size() == 1); +// SchemaDescription desc = metadata.getPDFExtensionSchema() +// .getDescriptionSchema().get(0); +// +// // Check description content +// Assert.assertEquals("ACME E-Mail Schema", desc.getSchema()); +// Assert.assertEquals("http://www.acme.com/ns/email/1/", desc +// .getNameSpaceURI()); +// Assert.assertEquals("acmeemail", desc.getPrefix()); +// +// // Check property definition +// List<PDFAPropertyDescription> properties = desc.getProperties(); +// Assert.assertTrue(properties.size() == 2); +// +// // Check properties content +// PDFAPropertyDescription tmpProp = properties.get(0); +// Assert.assertEquals("Delivery-Date", tmpProp.getNameValue()); +// Assert.assertEquals("Date", tmpProp.getValueTypeValue()); +// Assert.assertEquals("internal", tmpProp.getCategoryValue()); +// Assert.assertEquals("date of email delivery", tmpProp +// .getDescriptionValue()); +// +// tmpProp = properties.get(1); +// Assert.assertEquals("From", tmpProp.getNameValue()); +// Assert.assertEquals("mailaddress", tmpProp.getValueTypeValue()); +// Assert.assertEquals("internal", tmpProp.getCategoryValue()); +// Assert.assertEquals("sender email address", tmpProp +// .getDescriptionValue()); +// +// // Check valuetype +// // Check numbers of valuetype defined +// Assert.assertTrue(desc.getValueTypes().size() == 1); +// PDFAValueTypeDescription tmpValType = desc.getValueTypes().get(0); +// Assert.assertEquals("mailaddress", tmpValType.getTypeNameValue()); +// Assert.assertEquals("http://www.acme.com/ns/email/1/mailaddress/", +// tmpValType.getNamespaceURIValue()); +// Assert.assertEquals("mailaddress value", tmpValType +// .getDescriptionValue()); +// +// // Check fields associated to this value type +// Assert.assertTrue(tmpValType.getFields().size() == 2); +// +// PDFAFieldDescription tmpField = tmpValType.getFields().get(0); +// Assert.assertEquals("name", tmpField.getNameValue()); +// Assert.assertEquals("Text", tmpField.getValueTypeValue()); +// Assert.assertEquals("plaintext name", tmpField.getDescriptionValue()); +// +// tmpField = tmpValType.getFields().get(1); +// Assert.assertEquals("mailto", tmpField.getNameValue()); +// Assert.assertEquals("Text", tmpField.getValueTypeValue()); +// Assert.assertEquals("email address", tmpField.getDescriptionValue()); +// +// // Check PDFA Conformance schema +// Assert.assertEquals("1", metadata.getPDFIdentificationSchema() +// .getPartProperty().getStringValue()); +// Assert.assertEquals("B", metadata.getPDFIdentificationSchema() +// .getConformance()); +// Assert.assertEquals("1:2005", metadata.getPDFIdentificationSchema() +// .getAmd()); +// +// // Check ADOBE PDF Schema +// Assert.assertEquals("PDFlib Personalization Server 7.0.2p5 (Win32)", +// metadata.getAdobePDFSchema().getProducer()); +// +// // Check Defined Schema +// XMPSchema schem = metadata.getSchema("http://www.acme.com/ns/email/1/"); +// Assert.assertEquals(DateConverter +// .toCalendar("2007-11-09T09:55:36+01:00"), schem +// .getDatePropertyValue("acmeemail:Delivery-Date")); +// Assert.assertNotNull(schem.getAbstractProperty(("acmeemail:From"))); +// +// // SaveMetadataHelper.serialize(metadata, true, System.out); +// } } Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/schema/BasicJobTicketSchemaTest.java URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/schema/BasicJobTicketSchemaTest.java?rev=1370356&r1=1370355&r2=1370356&view=diff ============================================================================== --- pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/schema/BasicJobTicketSchemaTest.java (original) +++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/schema/BasicJobTicketSchemaTest.java Tue Aug 7 16:40:47 2012 @@ -82,7 +82,7 @@ public class BasicJobTicketSchemaTest { basic.addJob("zeid1", "zename1", "zeurl1","aaa"); basic.addJob("zeid2", "zename2", "zeurl2"); -// SaveMetadataHelper.serialize(xmpMetadata, System.out); + SaveMetadataHelper.serialize(metadata, System.out); ByteArrayOutputStream bos = new ByteArrayOutputStream(); SaveMetadataHelper.serialize(metadata, bos); Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/type/TestJobType.java URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/type/TestJobType.java?rev=1370356&r1=1370355&r2=1370356&view=diff ============================================================================== --- pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/type/TestJobType.java (original) +++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/test/java/org/apache/padaf/xmpbox/type/TestJobType.java Tue Aug 7 16:40:47 2012 @@ -37,7 +37,7 @@ public class TestJobType extends Abstrac @Before public void before () throws Exception { super.before(); - structured = new JobType(xmp); + structured = new JobType(xmp,"job"); } public TestJobType (Class<? extends AbstractStructuredType> clz, String field,String type) {