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";
 
 	/**