You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by gb...@apache.org on 2012/08/19 12:50:54 UTC
svn commit: r1374728 - in
/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox:
./ schema/ type/
Author: gbailleul
Date: Sun Aug 19 10:50:54 2012
New Revision: 1374728
URL: http://svn.apache.org/viewvc?rev=1374728&view=rev
Log:
PDFBOX-1343: remove duplicated code in ComplexPropertyContainer
Added:
pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractComplexProperty.java
Modified:
pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/XmpSerializer.java
pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/schema/XMPSchema.java
pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractField.java
pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractStructuredType.java
pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ArrayProperty.java
pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ComplexPropertyContainer.java
pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ResourceRefType.java
Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/XmpSerializer.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/XmpSerializer.java?rev=1374728&r1=1374727&r2=1374728&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/XmpSerializer.java (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/XmpSerializer.java Sun Aug 19 10:50:54 2012
@@ -109,11 +109,10 @@ public class XmpSerializer {
// attributes
fillElementWithAttributes(asimple, array.getAllAttributes());
// the array definition
- ComplexPropertyContainer container = array.getContainer();
- Element econtainer = doc.createElement("rdf"+":"+"Bag"); // TODO
+ Element econtainer = doc.createElement("rdf"+":"+array.getArrayType());
asimple.appendChild(econtainer);
// for each element of the array
- List<AbstractField> innerFields = container.getAllProperties();
+ List<AbstractField> innerFields = array.getAllProperties();
xxxxxxx(doc, econtainer, innerFields);
} else if (field instanceof AbstractStructuredType) {
AbstractStructuredType structured = (AbstractStructuredType)field;
Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/schema/XMPSchema.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/schema/XMPSchema.java?rev=1374728&r1=1374727&r2=1374728&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/schema/XMPSchema.java (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/schema/XMPSchema.java Sun Aug 19 10:50:54 2012
@@ -78,9 +78,7 @@ public class XMPSchema {
*/
public XMPSchema(XMPMetadata metadata, String namespaceName, String namespaceURI) {
this.metadata = metadata;
- content = new ComplexPropertyContainer(metadata,
- XmpConstants.RDF_NAMESPACE, "rdf",
- "Description");
+ content = new ComplexPropertyContainer();
localPrefix = namespaceName;
localNSUri = namespaceURI;
Added: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractComplexProperty.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractComplexProperty.java?rev=1374728&view=auto
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractComplexProperty.java (added)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractComplexProperty.java Sun Aug 19 10:50:54 2012
@@ -0,0 +1,96 @@
+/*****************************************************************************
+ *
+ * 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.List;
+
+import org.apache.padaf.xmpbox.XMPMetadata;
+
+public abstract class AbstractComplexProperty extends AbstractField {
+
+ private ComplexPropertyContainer container;
+
+ public AbstractComplexProperty(XMPMetadata metadata, String namespaceURI,
+ String prefix, String propertyName) {
+ super(metadata, namespaceURI, prefix, propertyName);
+ container = new ComplexPropertyContainer();
+ }
+
+ /**
+ * Add a property to the current structure
+ *
+ * @param obj the property to add
+ */
+ public final void addProperty(AbstractField obj) {
+ container.addProperty(obj);
+ }
+
+ /**
+ * Remove a property
+ *
+ * @param property
+ * The property to remove
+ */
+ public final void removeProperty(AbstractField property) {
+ container.removeProperty(property);
+ }
+
+// /**
+// * Return the container of this Array
+// *
+// * @return The complex property container that represents content of this
+// * property
+// */
+ public final ComplexPropertyContainer getContainer() {
+ return container;
+ }
+
+ public final List<AbstractField> getAllProperties() {
+ return container.getAllProperties();
+ }
+
+ public final AbstractSimpleProperty getProperty (String fieldName) {
+ List<AbstractField> list = container.getPropertiesByLocalName(fieldName);
+ // return null if no property
+ if (list==null) {
+ return null;
+ }
+ // return the first element of the list
+ return (AbstractSimpleProperty)list.get(0);
+ }
+
+ public final ArrayProperty getArrayProperty (String fieldName) {
+ List<AbstractField> list = container.getPropertiesByLocalName(fieldName);
+ // return null if no property
+ if (list==null) {
+ return null;
+ }
+ // return the first element of the list
+ return (ArrayProperty)list.get(0);
+ }
+
+ protected final AbstractField getFirstEquivalentProperty(String localName,
+ Class<? extends AbstractField> type) {
+ return container.getFirstEquivalentProperty(localName, type);
+ }
+
+}
Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractField.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractField.java?rev=1374728&r1=1374727&r2=1374728&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractField.java (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractField.java Sun Aug 19 10:50:54 2012
@@ -44,21 +44,6 @@ public abstract class AbstractField {
private Map<String, Attribute> attributes;
/**
- * Constructor of a XMP field without namespaceURI
- *
- * @param metadata
- * The metadata to attach to this field
- * @param prefix
- * the prefix to set for this field
- * @param propertyName
- * the local name to set for this field
- */
- public AbstractField(XMPMetadata metadata, String prefix,
- String propertyName) {
- this(metadata,null,prefix,propertyName);
- }
-
- /**
* Constructor of a XMP Field
*
* @param metadata
Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractStructuredType.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractStructuredType.java?rev=1374728&r1=1374727&r2=1374728&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractStructuredType.java (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/AbstractStructuredType.java Sun Aug 19 10:50:54 2012
@@ -26,15 +26,13 @@ import java.util.List;
import org.apache.padaf.xmpbox.XMPMetadata;
-public abstract class AbstractStructuredType extends AbstractField {
+public abstract class AbstractStructuredType extends AbstractComplexProperty {
/** The prefix of the fields of the structure */
private String fieldPrefix = null;
- private ComplexPropertyContainer container = null;
-
protected static final String STRUCTURE_ARRAY_PREFIX = "rdf";
protected static final String STRUCTURE_ARRAY_NAME = "li";
@@ -42,7 +40,6 @@ public abstract class AbstractStructured
public AbstractStructuredType(XMPMetadata metadata, String namespaceURI,
String fieldPrefix) {
super(metadata, namespaceURI, STRUCTURE_ARRAY_PREFIX, STRUCTURE_ARRAY_NAME);
- this.container = new ComplexPropertyContainer(metadata, namespaceURI, STRUCTURE_ARRAY_PREFIX, "Description");
this.fieldPrefix = fieldPrefix;
}
@@ -53,19 +50,6 @@ public abstract class AbstractStructured
}
- public final void addProperty(AbstractField obj) {
- container.addProperty(obj);
- }
-
- protected final AbstractField getFirstEquivalentProperty(String localName,
- Class<? extends AbstractField> type) {
- return container.getFirstEquivalentProperty(localName, type);
- }
-
- public final List<AbstractField> getAllProperties() {
- return container.getAllProperties();
- }
-
protected void addSimpleProperty (String propertyName, Object value) {
TypeMapping tm = getMetadata().getBuilder().getTypeMapping();
@@ -74,25 +58,7 @@ public abstract class AbstractStructured
}
- protected AbstractSimpleProperty getProperty (String fieldName) {
- List<AbstractField> list = container.getPropertiesByLocalName(fieldName);
- // return null if no property
- if (list==null) {
- return null;
- }
- // return the first element of the list
- return (AbstractSimpleProperty)list.get(0);
- }
- protected ArrayProperty getArrayProperty (String fieldName) {
- List<AbstractField> list = container.getPropertiesByLocalName(fieldName);
- // return null if no property
- if (list==null) {
- return null;
- }
- // return the first element of the list
- return (ArrayProperty)list.get(0);
- }
protected String getPropertyValueAsString (String fieldName) {
@@ -105,7 +71,7 @@ public abstract class AbstractStructured
}
protected Calendar getDatePropertyAsCalendar(String fieldName) {
- DateType absProp = (DateType)container.getFirstEquivalentProperty(fieldName,DateType.class);
+ DateType absProp = (DateType)getFirstEquivalentProperty(fieldName,DateType.class);
if (absProp != null) {
return absProp.getValue();
} else {
@@ -113,8 +79,6 @@ public abstract class AbstractStructured
}
}
- public ComplexPropertyContainer getContainer() {
- return container;
- }
+
}
Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ArrayProperty.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ArrayProperty.java?rev=1374728&r1=1374727&r2=1374728&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ArrayProperty.java (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ArrayProperty.java Sun Aug 19 10:50:54 2012
@@ -21,8 +21,6 @@
package org.apache.padaf.xmpbox.type;
-import java.util.List;
-
import org.apache.padaf.xmpbox.XMPMetadata;
/**
@@ -32,15 +30,15 @@ import org.apache.padaf.xmpbox.XMPMetada
* @author a183132
*
*/
-public class ArrayProperty extends AbstractField {
+public class ArrayProperty extends AbstractComplexProperty {
public static final String UNORDERED_ARRAY = "Bag";
public static final String ORDERED_ARRAY = "Seq";
public static final String ALTERNATIVE_ARRAY = "Alt";
-
- private ComplexPropertyContainer container;
+
+ private String arrayType;
/**
* Contructor of a complex property
@@ -59,21 +57,11 @@ public class ArrayProperty extends Abstr
public ArrayProperty(XMPMetadata metadata, String namespace,
String prefix, String propertyName, String type) {
super(metadata, namespace, prefix, propertyName);
- container = new ComplexPropertyContainer(metadata,null, "rdf", type);
- }
-
- /**
- * Return the container of this Array
- *
- * @return The complex property container that represents content of this
- * property
- */
- public ComplexPropertyContainer getContainer() {
- return container;
+ this.arrayType = type;
}
- public List<AbstractField> getAllProperties() {
- return container.getAllProperties();
+ public String getArrayType() {
+ return arrayType;
}
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=1374728&r1=1374727&r2=1374728&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 Sun Aug 19 10:50:54 2012
@@ -27,8 +27,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.padaf.xmpbox.XMPMetadata;
-
/**
* Object representation for arrays content This Class could be used to define
* directly a property with more than one field (structure) and also schemas
@@ -57,8 +55,7 @@ public class ComplexPropertyContainer /*
* @param propertyName
* The local Name of this property
*/
- public ComplexPropertyContainer(XMPMetadata metadata, String namespaceURI,
- String prefix, String propertyName) {
+ public ComplexPropertyContainer() {
properties = new ArrayList<AbstractField>();
attributes = new HashMap<String, Attribute>();
}
Modified: pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ResourceRefType.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ResourceRefType.java?rev=1374728&r1=1374727&r2=1374728&view=diff
==============================================================================
--- pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ResourceRefType.java (original)
+++ pdfbox/branches/xmpbox-refactoring/xmpbox/src/main/java/org/apache/padaf/xmpbox/type/ResourceRefType.java Sun Aug 19 10:50:54 2012
@@ -302,7 +302,7 @@ public class ResourceRefType extends Abs
}
TypeMapping tm = getMetadata().getBuilder().getTypeMapping();
TextType tt = (TextType)tm.instanciateSimpleProperty(getMetadata(), null, "rdf", "li", value, "Text");
- seq.getContainer().addProperty(tt);
+ seq.addProperty(tt);
}
/**