* When error during reading the rest of xmp stream
*/
protected void parseXmpSimpleProperty(XMPMetadata metadata, QName propertyName, XmpPropertyType stype, ComplexPropertyContainer container)
throws XmpUnknownPropertyTypeException, XmpPropertyFormatException, XMLStreamException {
try {
AbstractSimpleProperty prop = null;
ArrayList<Attribute> attributes = new ArrayList<Attribute>();
int cpt = reader.get().getAttributeCount();
for (int i = 0; i < cpt; i++) {
attributes.add(new Attribute(null, reader.get()
.getAttributePrefix(i), reader.get()
.getAttributeLocalName(i), reader.get()
.getAttributeValue(i)));
}
if (stype == XmpPropertyType.Text) {
prop = new TextType(metadata, propertyName.getPrefix(),
propertyName.getLocalPart(), reader.get()
.getElementText());
} else if (stype == XmpPropertyType.Integer) {
prop = new IntegerType(metadata, propertyName.getPrefix(),
propertyName.getLocalPart(), reader.get()
.getElementText());
} else if (stype == XmpPropertyType.Date) {
prop = new DateType(metadata, propertyName.getPrefix(),
propertyName.getLocalPart(), reader.get()
.getElementText());
} else if (stype == XmpPropertyType.Boolean) {
prop = new BooleanType(metadata, propertyName.getPrefix(),
propertyName.getLocalPart(), reader.get()
.getElementText());
} else if (stype == XmpPropertyType.Real) {
prop = new RealType(metadata, propertyName.getPrefix(),
propertyName.getLocalPart(), reader.get()
.getElementText());
}
if (prop != null) {
container.addProperty(prop);
// ADD ATTRIBUTES
for (Attribute att : attributes) {
prop.setAttribute(att);
}
} else {
throw new XmpUnknownPropertyTypeException(
"Unknown simple type found");
}