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/07/29 11:13:17 UTC
svn commit: r1366794 - in
/pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox:
parser/XMPDocumentBuilder.java schema/XMPMediaManagementSchema.java
Author: gbailleul
Date: Sun Jul 29 09:13:17 2012
New Revision: 1366794
URL: http://svn.apache.org/viewvc?rev=1366794&view=rev
Log:
PDFBOX-1343: remove handling of unmanaged type as all basic, derived and structured types of xmp specification are implemented
Modified:
pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/XMPDocumentBuilder.java
pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/schema/XMPMediaManagementSchema.java
Modified: pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/XMPDocumentBuilder.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/XMPDocumentBuilder.java?rev=1366794&r1=1366793&r2=1366794&view=diff
==============================================================================
--- pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/XMPDocumentBuilder.java (original)
+++ pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/parser/XMPDocumentBuilder.java Sun Jul 29 09:13:17 2012
@@ -1229,58 +1229,64 @@ public class XMPDocumentBuilder {
.getNamespacePrefix(i));
}
}
- String type = getPropertyDeclarationInNamespaces(schema, propertyName);
- if (type.equals("Unmanaged")) {
- // do not parse the property, no validation, no reserialization
- boolean cont = true;
- while (cont) {
- int t = reader.get().next();
- if (t==XMLStreamReader.END_ELEMENT) {
- if (propertyName.equals(reader.get().getName())) {
- cont = false;
- }
- }
- }
- } else if (type.equals("Lang Alt")) {
- parseSimplePropertyArray(metadata, propertyName, ArrayProperty.ALTERNATIVE_ARRAY, TextType.class, schema.getContent());
- } else if (TypeMapping.isSimpleType(type)) {
- TypeDescription tclass = TypeMapping.getTypeDescription(type);
- Class<? extends AbstractSimpleProperty> tcn = (Class<? extends AbstractSimpleProperty>)tclass.getTypeClass();
- parseSimpleProperty(metadata, propertyName, tcn, schema.getContent());
- } else if (TypeMapping.isStructuredType(type)) {
- TypeDescription tclass = TypeMapping.getTypeDescription(type);
- StructuredPropertyParser parser = new StructuredPropertyParser(
- this, (Class<? extends AbstractStructuredType>)tclass.getTypeClass());
- parseStructuredProperty(metadata, parser, schema.getContent());
- } else if (TypeMapping.getArrayType(type)!=null) {
- // retrieve array type and content type
- int pos = type.indexOf(' ');
- String arrayType = TypeMapping.getArrayType(type);
- String typeInArray = type.substring(pos+1);
- TypeDescription tclass = TypeMapping.getTypeDescription(typeInArray);
- Class<? extends AbstractField> tcn = tclass.getTypeClass();
-
- if (AbstractSimpleProperty.class.isAssignableFrom(tcn)) {
- // array of simple
- parseSimplePropertyArray(
- metadata,
- propertyName,
- arrayType,
- (Class<? extends AbstractSimpleProperty>)tcn,
- schema.getContent());
- } else if (AbstractStructuredType.class.isAssignableFrom(tcn)) {
- // array of structured
+ try {
+ String type = getPropertyDeclarationInNamespaces(schema, propertyName);
+ // found type, manage it
+ if (type.equals("Lang Alt")) {
+ parseSimplePropertyArray(metadata, propertyName, ArrayProperty.ALTERNATIVE_ARRAY, TextType.class, schema.getContent());
+ } else if (TypeMapping.isSimpleType(type)) {
+ TypeDescription tclass = TypeMapping.getTypeDescription(type);
+ Class<? extends AbstractSimpleProperty> tcn = (Class<? extends AbstractSimpleProperty>)tclass.getTypeClass();
+ parseSimpleProperty(metadata, propertyName, tcn, schema.getContent());
+ } else if (TypeMapping.isStructuredType(type)) {
+ TypeDescription tclass = TypeMapping.getTypeDescription(type);
StructuredPropertyParser parser = new StructuredPropertyParser(
- this, (Class<? extends AbstractStructuredType>)tcn);
- parseStructuredPropertyArray(metadata, propertyName, arrayType, parser, schema.getContent());
+ this, (Class<? extends AbstractStructuredType>)tclass.getTypeClass());
+ parseStructuredProperty(metadata, parser, schema.getContent());
+ } else if (TypeMapping.getArrayType(type)!=null) {
+ // retrieve array type and content type
+ int pos = type.indexOf(' ');
+ String arrayType = TypeMapping.getArrayType(type);
+ String typeInArray = type.substring(pos+1);
+ TypeDescription tclass = TypeMapping.getTypeDescription(typeInArray);
+ Class<? extends AbstractField> tcn = tclass.getTypeClass();
+
+ if (AbstractSimpleProperty.class.isAssignableFrom(tcn)) {
+ // array of simple
+ parseSimplePropertyArray(
+ metadata,
+ propertyName,
+ arrayType,
+ (Class<? extends AbstractSimpleProperty>)tcn,
+ schema.getContent());
+ } else if (AbstractStructuredType.class.isAssignableFrom(tcn)) {
+ // array of structured
+ StructuredPropertyParser parser = new StructuredPropertyParser(
+ this, (Class<? extends AbstractStructuredType>)tcn);
+ parseStructuredPropertyArray(metadata, propertyName, arrayType, parser, schema.getContent());
+ } else {
+ // invalid case
+ throw new XmpUnknownPropertyTypeException("Unknown type : "+type);
+ }
+ } else if (type.equals("Field")) {
+ parseFieldProperty(metadata, propertyName, schema);
} else {
- // invalid case
- throw new XmpUnknownPropertyTypeException("Unknown type : "+type);
+ throw new XmpUnknownPropertyTypeException("Unknown type : " + type);
}
- } else if (type.equals("Field")) {
- parseFieldProperty(metadata, propertyName, schema);
- } else {
- throw new XmpUnknownPropertyTypeException("Unknown type : " + type);
+
+ } catch (XmpUnknownPropertyException e) {
+// // this property is not managed in the workspace
+// // do not parse the property, no validation, no reserialization
+// boolean cont = true;
+// while (cont) {
+// int t = reader.get().next();
+// if (t==XMLStreamReader.END_ELEMENT) {
+// if (propertyName.equals(reader.get().getName())) {
+// cont = false;
+// }
+// }
+// }
+ throw e;
}
}
Modified: pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/schema/XMPMediaManagementSchema.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/schema/XMPMediaManagementSchema.java?rev=1366794&r1=1366793&r2=1366794&view=diff
==============================================================================
--- pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/schema/XMPMediaManagementSchema.java (original)
+++ pdfbox/trunk/xmpbox/src/main/java/org/apache/padaf/xmpbox/schema/XMPMediaManagementSchema.java Sun Jul 29 09:13:17 2012
@@ -627,20 +627,10 @@ public class XMPMediaManagementSchema ex
return (ArrayProperty) getUnqualifiedProperty(VERSIONS);
}
-// /**
-// * Get List of Versions values
-// *
-// * @return List of Versions values
-// */
-// public List<String> getVersions() {
-// return getSequenceValueList(localPrefixSep + VERSIONS);
-// }
-
// --------------------------------------- History
// ----------------------------
-// @PropertyType(propertyType = "seq Text")
- @PropertyType(propertyType = "Unmanaged")
+ @PropertyType(propertyType = "seq ResourceEvent")
public static final String HISTORY = "History";
/**