com.itextpdf.xmp.impl
Class XMPMetaImpl

java.lang.Object
  extended by com.itextpdf.xmp.impl.XMPMetaImpl
All Implemented Interfaces:
XMPConst, XMPMeta, Cloneable

public class XMPMetaImpl
extends Object
implements XMPMeta, XMPConst

Implementation for XMPMeta.

Since:
17.02.2006

Field Summary
 
Fields inherited from interface com.itextpdf.xmp.XMPConst
ARRAY_ITEM_NAME, ARRAY_LAST_ITEM, FALSESTR, NS_ADOBESTOCKPHOTO, NS_ASF, NS_BWF, NS_CAMERARAW, NS_CREATOR_ATOM, NS_DC, NS_DC_DEPRECATED, NS_DICOM, NS_DM, NS_EXIF, NS_EXIF_AUX, NS_EXIFX, NS_IPTCCORE, NS_IPTCEXT, NS_IX, NS_JP2K, NS_JPEG, NS_PDF, NS_PDFA_EXTENSION, NS_PDFA_FIELD, NS_PDFA_ID, NS_PDFA_PROPERTY, NS_PDFA_SCHEMA, NS_PDFA_TYPE, NS_PDFX, NS_PDFX_ID, NS_PHOTOSHOP, NS_PLUS, NS_PNG, NS_PSALBUM, NS_RDF, NS_RIFFINFO, NS_SCRIPT, NS_SWF, NS_TIFF, NS_TRANSIENT, NS_TXMP, NS_WAV, NS_X, NS_XML, NS_XMP, NS_XMP_BJ, NS_XMP_MM, NS_XMP_NOTE, NS_XMP_RIGHTS, RDF_TYPE, TAG_XAPMETA, TAG_XMPMETA, TRUESTR, TYPE_DIMENSIONS, TYPE_FONT, TYPE_GRAPHICS, TYPE_IDENTIFIERQUAL, TYPE_IMAGE, TYPE_MANIFESTITEM, TYPE_PAGEDFILE, TYPE_RESOURCEEVENT, TYPE_RESOURCEREF, TYPE_ST_JOB, TYPE_ST_VERSION, TYPE_TEXT, X_DEFAULT, XML_LANG, XMP_PI
 
Constructor Summary
XMPMetaImpl()
          Constructor for an empty metadata object.
XMPMetaImpl(com.itextpdf.xmp.impl.XMPNode tree)
          Constructor for a cloned metadata tree.
 
Method Summary
 void appendArrayItem(String schemaNS, String arrayName, PropertyOptions arrayOptions, String itemValue, PropertyOptions itemOptions)
          Simplifies the construction of an array by not requiring that you pre-create an empty array.
 void appendArrayItem(String schemaNS, String arrayName, String itemValue)
           
 Object clone()
          Performs a deep clone of the XMPMeta-object
 int countArrayItems(String schemaNS, String arrayName)
          Returns the number of items in the array.
 void deleteArrayItem(String schemaNS, String arrayName, int itemIndex)
          Deletes the given XMP subtree rooted at the given array item.
 void deleteProperty(String schemaNS, String propName)
          Deletes the given XMP subtree rooted at the given property.
 void deleteQualifier(String schemaNS, String propName, String qualNS, String qualName)
          Deletes the given XMP subtree rooted at the given qualifier.
 void deleteStructField(String schemaNS, String structName, String fieldNS, String fieldName)
          Deletes the given XMP subtree rooted at the given struct field.
 boolean doesArrayItemExist(String schemaNS, String arrayName, int itemIndex)
          Tells if the array item exists.
 boolean doesPropertyExist(String schemaNS, String propName)
          Returns whether the property exists.
 boolean doesQualifierExist(String schemaNS, String propName, String qualNS, String qualName)
          DoesQualifierExist tells if the qualifier exists.
 boolean doesStructFieldExist(String schemaNS, String structName, String fieldNS, String fieldName)
          DoesStructFieldExist tells if the struct field exists.
 String dumpObject()
          Renders this node and the tree unter this node in a human readable form.
 XMPProperty getArrayItem(String schemaNS, String arrayName, int itemIndex)
          Provides access to items within an array.
 XMPProperty getLocalizedText(String schemaNS, String altTextName, String genericLang, String specificLang)
          These functions provide convenient support for localized text properties, including a number of special and obscure aspects.
 String getObjectName()
          This correlates to the about-attribute, returns the empty String if no name is set.
 String getPacketHeader()
           
 XMPProperty getProperty(String schemaNS, String propName)
          The property value getter-methods all take a property specification: the first two parameters are always the top level namespace URI (the "schema" namespace) and the basic name of the property being referenced.
protected  XMPProperty getProperty(String schemaNS, String propName, int valueType)
          Returns a property, but the result value can be requested.
 byte[] getPropertyBase64(String schemaNS, String propName)
          Convenience method to retrieve the literal value of a property.
 Boolean getPropertyBoolean(String schemaNS, String propName)
          These are very similar to getProperty() and SetProperty() above, but the value is returned or provided in a literal form instead of as a UTF-8 string.
 Calendar getPropertyCalendar(String schemaNS, String propName)
          Convenience method to retrieve the literal value of a property.
 XMPDateTime getPropertyDate(String schemaNS, String propName)
          Convenience method to retrieve the literal value of a property.
 Double getPropertyDouble(String schemaNS, String propName)
          Convenience method to retrieve the literal value of a property.
 Integer getPropertyInteger(String schemaNS, String propName)
          Convenience method to retrieve the literal value of a property.
 Long getPropertyLong(String schemaNS, String propName)
          Convenience method to retrieve the literal value of a property.
protected  Object getPropertyObject(String schemaNS, String propName, int valueType)
          Returns a property, but the result value can be requested.
 String getPropertyString(String schemaNS, String propName)
          Convenience method to retrieve the literal value of a property.
 XMPProperty getQualifier(String schemaNS, String propName, String qualNS, String qualName)
          Provides access to a qualifier attached to a property.
 com.itextpdf.xmp.impl.XMPNode getRoot()
           
 XMPProperty getStructField(String schemaNS, String structName, String fieldNS, String fieldName)
          Provides access to fields within a nested structure.
 void insertArrayItem(String schemaNS, String arrayName, int itemIndex, String itemValue)
           
 void insertArrayItem(String schemaNS, String arrayName, int itemIndex, String itemValue, PropertyOptions options)
          Inserts an item into an array previous to the given index.
 XMPIterator iterator()
          Constructs an iterator for the properties within this XMP object.
 XMPIterator iterator(IteratorOptions options)
          Constructs an iterator for the properties within this XMP object using some options.
 XMPIterator iterator(String schemaNS, String propName, IteratorOptions options)
          Construct an iterator for the properties within an XMP object.
 void normalize(ParseOptions options)
          Perform the normalization as a separate parsing step.
 void setArrayItem(String schemaNS, String arrayName, int itemIndex, String itemValue)
           
 void setArrayItem(String schemaNS, String arrayName, int itemIndex, String itemValue, PropertyOptions options)
          Replaces an item within an array.
 void setLocalizedText(String schemaNS, String altTextName, String genericLang, String specificLang, String itemValue)
           
 void setLocalizedText(String schemaNS, String altTextName, String genericLang, String specificLang, String itemValue, PropertyOptions options)
          Modifies the value of a selected item in an alt-text array.
 void setObjectName(String name)
           
 void setPacketHeader(String packetHeader)
          Sets the packetHeader attributes, only used by the parser.
 void setProperty(String schemaNS, String propName, Object propValue)
           
 void setProperty(String schemaNS, String propName, Object propValue, PropertyOptions options)
          The property value setters all take a property specification, their differences are in the form of this.
 void setPropertyBase64(String schemaNS, String propName, byte[] propValue)
           
 void setPropertyBase64(String schemaNS, String propName, byte[] propValue, PropertyOptions options)
          Convenience method to set a property from a binary byte[]-array, which is serialized as base64-string.
 void setPropertyBoolean(String schemaNS, String propName, boolean propValue)
           
 void setPropertyBoolean(String schemaNS, String propName, boolean propValue, PropertyOptions options)
          Convenience method to set a property to a literal boolean value.
 void setPropertyCalendar(String schemaNS, String propName, Calendar propValue)
           
 void setPropertyCalendar(String schemaNS, String propName, Calendar propValue, PropertyOptions options)
          Convenience method to set a property with a Java Calendar-object, which is serialized to an ISO8601 date.
 void setPropertyDate(String schemaNS, String propName, XMPDateTime propValue)
           
 void setPropertyDate(String schemaNS, String propName, XMPDateTime propValue, PropertyOptions options)
          Convenience method to set a property with an XMPDateTime-object, which is serialized to an ISO8601 date.
 void setPropertyDouble(String schemaNS, String propName, double propValue)
           
 void setPropertyDouble(String schemaNS, String propName, double propValue, PropertyOptions options)
          Convenience method to set a property to a literal double value.
 void setPropertyInteger(String schemaNS, String propName, int propValue)
           
 void setPropertyInteger(String schemaNS, String propName, int propValue, PropertyOptions options)
          Convenience method to set a property to a literal int value.
 void setPropertyLong(String schemaNS, String propName, long propValue)
           
 void setPropertyLong(String schemaNS, String propName, long propValue, PropertyOptions options)
          Convenience method to set a property to a literal long value.
 void setQualifier(String schemaNS, String propName, String qualNS, String qualName, String qualValue)
           
 void setQualifier(String schemaNS, String propName, String qualNS, String qualName, String qualValue, PropertyOptions options)
          Provides access to a qualifier attached to a property.
 void setStructField(String schemaNS, String structName, String fieldNS, String fieldName, String fieldValue)
           
 void setStructField(String schemaNS, String structName, String fieldNS, String fieldName, String fieldValue, PropertyOptions options)
          Provides access to fields within a nested structure.
 void sort()
          Sorts the complete datamodel according to the following rules: Schema nodes are sorted by prefix.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XMPMetaImpl

public XMPMetaImpl()
Constructor for an empty metadata object.


XMPMetaImpl

public XMPMetaImpl(com.itextpdf.xmp.impl.XMPNode tree)
Constructor for a cloned metadata tree.

Parameters:
tree - an prefilled metadata tree which fulfills all XMPNode contracts.
Method Detail

appendArrayItem

public void appendArrayItem(String schemaNS,
                            String arrayName,
                            PropertyOptions arrayOptions,
                            String itemValue,
                            PropertyOptions itemOptions)
                     throws XMPException
Description copied from interface: XMPMeta
Simplifies the construction of an array by not requiring that you pre-create an empty array. The array that is assigned is created automatically if it does not yet exist. Each call to appendArrayItem() appends an item to the array. The corresponding parameters have the same use as setArrayItem(). The arrayOptions parameter is used to specify what kind of array. If the array exists, it must have the specified form.

Specified by:
appendArrayItem in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the array. Has the same usage as in getProperty.
arrayName - The name of the array. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propPath in getProperty.
arrayOptions - Option flags describing the array form. The only valid options are Note: the array options only need to be provided if the array is not already existing, otherwise you can set them to null or use XMPMeta.appendArrayItem(String, String, String).
itemValue - the value of the array item. Has the same usage as propValue in getProperty.
itemOptions - Option flags describing the item to append (PropertyOptions)
Throws:
XMPException - Wraps all errors and exceptions that may occur.
See Also:
XMPMeta.appendArrayItem(String, String, PropertyOptions, String, PropertyOptions)

appendArrayItem

public void appendArrayItem(String schemaNS,
                            String arrayName,
                            String itemValue)
                     throws XMPException
Specified by:
appendArrayItem in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the array
arrayName - The name of the array
itemValue - the value of the array item
Throws:
XMPException - Wraps all errors and exceptions
See Also:
XMPMeta.appendArrayItem(String, String, String)

countArrayItems

public int countArrayItems(String schemaNS,
                           String arrayName)
                    throws XMPException
Description copied from interface: XMPMeta
Returns the number of items in the array.

Specified by:
countArrayItems in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the array. Has the same usage as in getProperty.
arrayName - The name of the array. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propName in getProperty().
Returns:
Returns the number of items in the array.
Throws:
XMPException
See Also:
XMPMeta.countArrayItems(String, String)

deleteArrayItem

public void deleteArrayItem(String schemaNS,
                            String arrayName,
                            int itemIndex)
Description copied from interface: XMPMeta
Deletes the given XMP subtree rooted at the given array item. It is not an error if the array item does not exist.

Specified by:
deleteArrayItem in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the array. Has the same usage as in getProperty.
arrayName - The name of the array. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propName in getProperty().
itemIndex - The index of the desired item. Arrays in XMP are indexed from 1. The constant XMPConst.ARRAY_LAST_ITEM always refers to the last existing array item.
See Also:
XMPMeta.deleteArrayItem(String, String, int)

deleteProperty

public void deleteProperty(String schemaNS,
                           String propName)
Description copied from interface: XMPMeta
Deletes the given XMP subtree rooted at the given property. It is not an error if the property does not exist.

Specified by:
deleteProperty in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in getProperty().
propName - The name of the property. Has the same usage as in getProperty.
See Also:
XMPMeta.deleteProperty(String, String)

deleteQualifier

public void deleteQualifier(String schemaNS,
                            String propName,
                            String qualNS,
                            String qualName)
Description copied from interface: XMPMeta
Deletes the given XMP subtree rooted at the given qualifier. It is not an error if the qualifier does not exist.

Specified by:
deleteQualifier in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the struct. Has the same usage as in getProperty().
propName - The name of the property to which the qualifier is attached. Has the same usage as in getProperty.
qualNS - The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter.
qualName - The name of the qualifier. Must be a single XML name, must not be null or the empty string. Has the same namespace prefix usage as the propName parameter.
See Also:
XMPMeta.deleteQualifier(String, String, String, String)

deleteStructField

public void deleteStructField(String schemaNS,
                              String structName,
                              String fieldNS,
                              String fieldName)
Description copied from interface: XMPMeta
Deletes the given XMP subtree rooted at the given struct field. It is not an error if the field does not exist.

Specified by:
deleteStructField in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the struct. Has the same usage as in getProperty().
structName - The name of the struct. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propName in getProperty.
fieldNS - The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter.
fieldName - The name of the field. Must be a single XML name, must not be null or the empty string. Has the same namespace prefix usage as the structName parameter.
See Also:
XMPMeta.deleteStructField(String, String, String, String)

doesPropertyExist

public boolean doesPropertyExist(String schemaNS,
                                 String propName)
Description copied from interface: XMPMeta
Returns whether the property exists.

Specified by:
doesPropertyExist in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in getProperty().
propName - The name of the property. Has the same usage as in getProperty().
Returns:
Returns true if the property exists.
See Also:
XMPMeta.doesPropertyExist(String, String)

doesArrayItemExist

public boolean doesArrayItemExist(String schemaNS,
                                  String arrayName,
                                  int itemIndex)
Description copied from interface: XMPMeta
Tells if the array item exists.

Specified by:
doesArrayItemExist in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the array. Has the same usage as in getProperty().
arrayName - The name of the array. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propName in getProperty().
itemIndex - The index of the desired item. Arrays in XMP are indexed from 1. The constant XMPConst.ARRAY_LAST_ITEM always refers to the last existing array item.
Returns:
Returns true if the array exists, false otherwise.
See Also:
XMPMeta.doesArrayItemExist(String, String, int)

doesStructFieldExist

public boolean doesStructFieldExist(String schemaNS,
                                    String structName,
                                    String fieldNS,
                                    String fieldName)
Description copied from interface: XMPMeta
DoesStructFieldExist tells if the struct field exists.

Specified by:
doesStructFieldExist in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the struct. Has the same usage as in getProperty().
structName - The name of the struct. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propName in getProperty().
fieldNS - The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter.
fieldName - The name of the field. Must be a single XML name, must not be null or the empty string. Has the same namespace prefix usage as the structName parameter.
Returns:
Returns true if the field exists.
See Also:
XMPMeta.doesStructFieldExist(String, String, String, String)

doesQualifierExist

public boolean doesQualifierExist(String schemaNS,
                                  String propName,
                                  String qualNS,
                                  String qualName)
Description copied from interface: XMPMeta
DoesQualifierExist tells if the qualifier exists.

Specified by:
doesQualifierExist in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the struct. Has the same usage as in getProperty().
propName - The name of the property to which the qualifier is attached. Has the same usage as in getProperty().
qualNS - The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter.
qualName - The name of the qualifier. Must be a single XML name, must not be null or the empty string. Has the same namespace prefix usage as the propName parameter.
Returns:
Returns true if the qualifier exists.
See Also:
XMPMeta.doesQualifierExist(String, String, String, String)

getArrayItem

public XMPProperty getArrayItem(String schemaNS,
                                String arrayName,
                                int itemIndex)
                         throws XMPException
Description copied from interface: XMPMeta
Provides access to items within an array. The index is passed as an integer, you need not worry about the path string syntax for array items, convert a loop index to a string, etc.

Specified by:
getArrayItem in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the array. Has the same usage as in getProperty.
arrayName - The name of the array. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propName in getProperty().
itemIndex - The index of the desired item. Arrays in XMP are indexed from 1. The constant XMPConst.ARRAY_LAST_ITEM always refers to the last existing array item.
Returns:
Returns a XMPProperty containing the value and the options or null if the property does not exist.
Throws:
XMPException - Wraps all errors and exceptions that may occur.
See Also:
XMPMeta.getArrayItem(String, String, int)

getLocalizedText

public XMPProperty getLocalizedText(String schemaNS,
                                    String altTextName,
                                    String genericLang,
                                    String specificLang)
                             throws XMPException
Description copied from interface: XMPMeta
These functions provide convenient support for localized text properties, including a number of special and obscure aspects. Localized text properties are stored in alt-text arrays. They allow multiple concurrent localizations of a property value, for example a document title or copyright in several languages. The most important aspect of these functions is that they select an appropriate array item based on one or two RFC 3066 language tags. One of these languages, the "specific" language, is preferred and selected if there is an exact match. For many languages it is also possible to define a "generic" language that may be used if there is no specific language match. The generic language must be a valid RFC 3066 primary subtag, or the empty string. For example, a specific language of "en-US" should be used in the US, and a specific language of "en-UK" should be used in England. It is also appropriate to use "en" as the generic language in each case. If a US document goes to England, the "en-US" title is selected by using the "en" generic language and the "en-UK" specific language. It is considered poor practice, but allowed, to pass a specific language that is just an RFC 3066 primary tag. For example "en" is not a good specific language, it should only be used as a generic language. Passing "i" or "x" as the generic language is also considered poor practice but allowed. Advice from the W3C about the use of RFC 3066 language tags can be found at: http://www.w3.org/International/articles/language-tags/

Note: RFC 3066 language tags must be treated in a case insensitive manner. The XMP Toolkit does this by normalizing their capitalization:

The XMP toolkit normalizes alt-text arrays such that the x-default item is the first item. The SetLocalizedText function has several special features related to the x-default item, see its description for details. The selection of the array item is the same for GetLocalizedText and SetLocalizedText: A partial match with the generic language is where the start of the item's language matches the generic string and the next character is '-'. An exact match is also recognized as a degenerate case. It is fine to pass x-default as the specific language. In this case, selection of an x-default item is an exact match by the first rule, not a selection by the 3rd rule. The last 2 rules are fallbacks used when the specific and generic languages fail to produce a match. getLocalizedText returns information about a selected item in an alt-text array. The array item is selected according to the rules given above. Note: In a future version of this API a method using Java java.lang.Locale will be added.

Specified by:
getLocalizedText in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the alt-text array. Has the same usage as in getProperty().
altTextName - The name of the alt-text array. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propName in getProperty().
genericLang - The name of the generic language as an RFC 3066 primary subtag. May be null or the empty string if no generic language is wanted.
specificLang - The name of the specific language as an RFC 3066 tag. Must not be null or the empty string.
Returns:
Returns an XMPProperty containing the value, the actual language and the options if an appropriate alternate collection item exists, null if the property. does not exist.
Throws:
XMPException
See Also:
XMPMeta.getLocalizedText(String, String, String, String)

setLocalizedText

public void setLocalizedText(String schemaNS,
                             String altTextName,
                             String genericLang,
                             String specificLang,
                             String itemValue,
                             PropertyOptions options)
                      throws XMPException
Description copied from interface: XMPMeta
Modifies the value of a selected item in an alt-text array. Creates an appropriate array item if necessary, and handles special cases for the x-default item. If the selected item is from a match with the specific language, the value of that item is modified. If the existing value of that item matches the existing value of the x-default item, the x-default item is also modified. If the array only has 1 existing item (which is not x-default), an x-default item is added with the given value. If the selected item is from a match with the generic language and there are no other generic matches, the value of that item is modified. If the existing value of that item matches the existing value of the x-default item, the x-default item is also modified. If the array only has 1 existing item (which is not x-default), an x-default item is added with the given value. If the selected item is from a partial match with the generic language and there are other partial matches, a new item is created for the specific language. The x-default item is not modified. If the selected item is from the last 2 rules then a new item is created for the specific language. If the array only had an x-default item, the x-default item is also modified. If the array was empty, items are created for the specific language and x-default. Note: In a future version of this API a method using Java java.lang.Locale will be added.

Specified by:
setLocalizedText in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the alt-text array. Has the same usage as in getProperty().
altTextName - The name of the alt-text array. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propName in getProperty().
genericLang - The name of the generic language as an RFC 3066 primary subtag. May be null or the empty string if no generic language is wanted.
specificLang - The name of the specific language as an RFC 3066 tag. Must not be null or the empty string.
itemValue - A pointer to the null terminated UTF-8 string that is the new value for the appropriate array item.
options - Option flags, none are defined at present.
Throws:
XMPException - Wraps all errors and exceptions that may occur.
See Also:
XMPMeta.setLocalizedText(String, String, String, String, String, PropertyOptions)

setLocalizedText

public void setLocalizedText(String schemaNS,
                             String altTextName,
                             String genericLang,
                             String specificLang,
                             String itemValue)
                      throws XMPException
Specified by:
setLocalizedText in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the alt-text array
altTextName - The name of the alt-text array
genericLang - The name of the generic language
specificLang - The name of the specific language
itemValue - the new value for the appropriate array item
Throws:
XMPException - Wraps all errors and exceptions
See Also:
XMPMeta.setLocalizedText(String, String, String, String, String)

getProperty

public XMPProperty getProperty(String schemaNS,
                               String propName)
                        throws XMPException
Description copied from interface: XMPMeta
The property value getter-methods all take a property specification: the first two parameters are always the top level namespace URI (the "schema" namespace) and the basic name of the property being referenced. See the introductory discussion of path expression usage for more information.

All of the functions return an object inherited from PropertyBase or null if the property does not exists. The result object contains the value of the property and option flags describing the property. Arrays and the non-leaf levels of nodes do not have values.

See PropertyOptions for detailed information about the options.

This is the simplest property getter, mainly for top level simple properties or after using the path composition functions in XMPPathFactory.

Specified by:
getProperty in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. May be null or the empty string if the first component of the propName path contains a namespace prefix. The URI must be for a registered namespace.
propName - The name of the property. May be a general path expression, must not be null or the empty string. Using a namespace prefix on the first component is optional. If present without a schemaNS value then the prefix specifies the namespace. The prefix must be for a registered namespace. If both a schemaNS URI and propName prefix are present, they must be corresponding parts of a registered namespace.
Returns:
Returns a XMPProperty containing the value and the options or null if the property does not exist.
Throws:
XMPException
See Also:
XMPMeta.getProperty(String, String)

getProperty

protected XMPProperty getProperty(String schemaNS,
                                  String propName,
                                  int valueType)
                           throws XMPException
Returns a property, but the result value can be requested. It can be one of VALUE_STRING, VALUE_BOOLEAN, VALUE_INTEGER, VALUE_LONG, VALUE_DOUBLE, VALUE_DATE, VALUE_CALENDAR, VALUE_BASE64.

Parameters:
schemaNS - a schema namespace
propName - a property name or path
valueType - the type of the value, see VALUE_...
Returns:
Returns an XMPProperty
Throws:
XMPException - Collects any exception that occurs.
See Also:
XMPMeta.getProperty(String, String)

getPropertyObject

protected Object getPropertyObject(String schemaNS,
                                   String propName,
                                   int valueType)
                            throws XMPException
Returns a property, but the result value can be requested.

Parameters:
schemaNS - a schema namespace
propName - a property name or path
valueType - the type of the value, see VALUE_...
Returns:
Returns the node value as an object according to the valueType.
Throws:
XMPException - Collects any exception that occurs.
See Also:
XMPMeta.getProperty(String, String)

getPropertyBoolean

public Boolean getPropertyBoolean(String schemaNS,
                                  String propName)
                           throws XMPException
Description copied from interface: XMPMeta
These are very similar to getProperty() and SetProperty() above, but the value is returned or provided in a literal form instead of as a UTF-8 string. The path composition functions in XMPPathFactory may be used to compose an path expression for fields in nested structures, items in arrays, or qualifiers.

Specified by:
getPropertyBoolean in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in getProperty().
propName - The name of the property. Has the same usage as in getProperty().
Returns:
Returns a Boolean value or null if the property does not exist.
Throws:
XMPException - Wraps all exceptions that may occur, especially conversion errors.
See Also:
XMPMeta.getPropertyBoolean(String, String)

setPropertyBoolean

public void setPropertyBoolean(String schemaNS,
                               String propName,
                               boolean propValue,
                               PropertyOptions options)
                        throws XMPException
Description copied from interface: XMPMeta
Convenience method to set a property to a literal boolean value.

Specified by:
setPropertyBoolean in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in setProperty().
propName - The name of the property. Has the same usage as in getProperty().
propValue - the literal property value as boolean.
options - options of the property to set (optional).
Throws:
XMPException
See Also:
XMPMeta.setPropertyBoolean(String, String, boolean, PropertyOptions)

setPropertyBoolean

public void setPropertyBoolean(String schemaNS,
                               String propName,
                               boolean propValue)
                        throws XMPException
Specified by:
setPropertyBoolean in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property
propName - The name of the property
propValue - the literal property value as boolean
Throws:
XMPException - Wraps all exceptions
See Also:
XMPMeta.setPropertyBoolean(String, String, boolean)

getPropertyInteger

public Integer getPropertyInteger(String schemaNS,
                                  String propName)
                           throws XMPException
Description copied from interface: XMPMeta
Convenience method to retrieve the literal value of a property.

Specified by:
getPropertyInteger in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in getProperty().
propName - The name of the property. Has the same usage as in getProperty().
Returns:
Returns an Integer value or null if the property does not exist.
Throws:
XMPException - Wraps all exceptions that may occur, especially conversion errors.
See Also:
XMPMeta.getPropertyInteger(String, String)

setPropertyInteger

public void setPropertyInteger(String schemaNS,
                               String propName,
                               int propValue,
                               PropertyOptions options)
                        throws XMPException
Description copied from interface: XMPMeta
Convenience method to set a property to a literal int value.

Specified by:
setPropertyInteger in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in setProperty().
propName - The name of the property. Has the same usage as in getProperty().
propValue - the literal property value as int.
options - options of the property to set (optional).
Throws:
XMPException - Wraps all exceptions that may occur.
See Also:
XMPMeta.setPropertyInteger(String, String, int, PropertyOptions)

setPropertyInteger

public void setPropertyInteger(String schemaNS,
                               String propName,
                               int propValue)
                        throws XMPException
Specified by:
setPropertyInteger in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property
propName - The name of the property
propValue - the literal property value as int
Throws:
XMPException - Wraps all exceptions
See Also:
XMPMeta.setPropertyInteger(String, String, int)

getPropertyLong

public Long getPropertyLong(String schemaNS,
                            String propName)
                     throws XMPException
Description copied from interface: XMPMeta
Convenience method to retrieve the literal value of a property.

Specified by:
getPropertyLong in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in getProperty().
propName - The name of the property. Has the same usage as in getProperty().
Returns:
Returns a Long value or null if the property does not exist.
Throws:
XMPException - Wraps all exceptions that may occur, especially conversion errors.
See Also:
XMPMeta.getPropertyLong(String, String)

setPropertyLong

public void setPropertyLong(String schemaNS,
                            String propName,
                            long propValue,
                            PropertyOptions options)
                     throws XMPException
Description copied from interface: XMPMeta
Convenience method to set a property to a literal long value.

Specified by:
setPropertyLong in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in setProperty().
propName - The name of the property. Has the same usage as in getProperty().
propValue - the literal property value as long.
options - options of the property to set (optional).
Throws:
XMPException - Wraps all exceptions that may occur.
See Also:
XMPMeta.setPropertyLong(String, String, long, PropertyOptions)

setPropertyLong

public void setPropertyLong(String schemaNS,
                            String propName,
                            long propValue)
                     throws XMPException
Specified by:
setPropertyLong in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property
propName - The name of the property
propValue - the literal property value as long
Throws:
XMPException - Wraps all exceptions
See Also:
XMPMeta.setPropertyLong(String, String, long)

getPropertyDouble

public Double getPropertyDouble(String schemaNS,
                                String propName)
                         throws XMPException
Description copied from interface: XMPMeta
Convenience method to retrieve the literal value of a property.

Specified by:
getPropertyDouble in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in getProperty().
propName - The name of the property. Has the same usage as in getProperty().
Returns:
Returns a Double value or null if the property does not exist.
Throws:
XMPException - Wraps all exceptions that may occur, especially conversion errors.
See Also:
XMPMeta.getPropertyDouble(String, String)

setPropertyDouble

public void setPropertyDouble(String schemaNS,
                              String propName,
                              double propValue,
                              PropertyOptions options)
                       throws XMPException
Description copied from interface: XMPMeta
Convenience method to set a property to a literal double value.

Specified by:
setPropertyDouble in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in setProperty().
propName - The name of the property. Has the same usage as in getProperty().
propValue - the literal property value as double.
options - options of the property to set (optional).
Throws:
XMPException - Wraps all exceptions that may occur.
See Also:
XMPMeta.setPropertyDouble(String, String, double, PropertyOptions)

setPropertyDouble

public void setPropertyDouble(String schemaNS,
                              String propName,
                              double propValue)
                       throws XMPException
Specified by:
setPropertyDouble in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property
propName - The name of the property
propValue - the literal property value as double
Throws:
XMPException - Wraps all exceptions
See Also:
XMPMeta.setPropertyDouble(String, String, double)

getPropertyDate

public XMPDateTime getPropertyDate(String schemaNS,
                                   String propName)
                            throws XMPException
Description copied from interface: XMPMeta
Convenience method to retrieve the literal value of a property.

Specified by:
getPropertyDate in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in getProperty().
propName - The name of the property. Has the same usage as in getProperty().
Returns:
Returns a XMPDateTime-object or null if the property does not exist.
Throws:
XMPException - Wraps all exceptions that may occur, especially conversion errors.
See Also:
XMPMeta.getPropertyDate(String, String)

setPropertyDate

public void setPropertyDate(String schemaNS,
                            String propName,
                            XMPDateTime propValue,
                            PropertyOptions options)
                     throws XMPException
Description copied from interface: XMPMeta
Convenience method to set a property with an XMPDateTime-object, which is serialized to an ISO8601 date.

Specified by:
setPropertyDate in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in setProperty().
propName - The name of the property. Has the same usage as in getProperty().
propValue - the property value as XMPDateTime.
options - options of the property to set (optional).
Throws:
XMPException - Wraps all exceptions that may occur.
See Also:
XMPMeta.setPropertyDate(String, String, XMPDateTime, PropertyOptions)

setPropertyDate

public void setPropertyDate(String schemaNS,
                            String propName,
                            XMPDateTime propValue)
                     throws XMPException
Specified by:
setPropertyDate in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property
propName - The name of the property
propValue - the property value as XMPDateTime
Throws:
XMPException - Wraps all exceptions
See Also:
XMPMeta.setPropertyDate(String, String, XMPDateTime)

getPropertyCalendar

public Calendar getPropertyCalendar(String schemaNS,
                                    String propName)
                             throws XMPException
Description copied from interface: XMPMeta
Convenience method to retrieve the literal value of a property.

Specified by:
getPropertyCalendar in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in getProperty().
propName - The name of the property. Has the same usage as in getProperty().
Returns:
Returns a Java Calendar-object or null if the property does not exist.
Throws:
XMPException - Wraps all exceptions that may occur, especially conversion errors.
See Also:
XMPMeta.getPropertyCalendar(String, String)

setPropertyCalendar

public void setPropertyCalendar(String schemaNS,
                                String propName,
                                Calendar propValue,
                                PropertyOptions options)
                         throws XMPException
Description copied from interface: XMPMeta
Convenience method to set a property with a Java Calendar-object, which is serialized to an ISO8601 date.

Specified by:
setPropertyCalendar in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in setProperty().
propName - The name of the property. Has the same usage as in getProperty().
propValue - the property value as Java Calendar.
options - options of the property to set (optional).
Throws:
XMPException - Wraps all exceptions that may occur.
See Also:
XMPMeta.setPropertyCalendar(String, String, Calendar, PropertyOptions)

setPropertyCalendar

public void setPropertyCalendar(String schemaNS,
                                String propName,
                                Calendar propValue)
                         throws XMPException
Specified by:
setPropertyCalendar in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property
propName - The name of the property
propValue - the property value as Calendar
Throws:
XMPException - Wraps all exceptions
See Also:
XMPMeta.setPropertyCalendar(String, String, Calendar)

getPropertyBase64

public byte[] getPropertyBase64(String schemaNS,
                                String propName)
                         throws XMPException
Description copied from interface: XMPMeta
Convenience method to retrieve the literal value of a property.

Specified by:
getPropertyBase64 in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in getProperty().
propName - The name of the property. Has the same usage as in getProperty().
Returns:
Returns a byte[]-array contained the decoded base64 value or null if the property does not exist.
Throws:
XMPException - Wraps all exceptions that may occur, especially conversion errors.
See Also:
XMPMeta.getPropertyBase64(String, String)

getPropertyString

public String getPropertyString(String schemaNS,
                                String propName)
                         throws XMPException
Description copied from interface: XMPMeta
Convenience method to retrieve the literal value of a property. Note: There is no setPropertyString(), because setProperty() sets a string value.

Specified by:
getPropertyString in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in getProperty().
propName - The name of the property. Has the same usage as in getProperty().
Returns:
Returns a String value or null if the property does not exist.
Throws:
XMPException - Wraps all exceptions that may occur, especially conversion errors.
See Also:
XMPMeta.getPropertyString(String, String)

setPropertyBase64

public void setPropertyBase64(String schemaNS,
                              String propName,
                              byte[] propValue,
                              PropertyOptions options)
                       throws XMPException
Description copied from interface: XMPMeta
Convenience method to set a property from a binary byte[]-array, which is serialized as base64-string.

Specified by:
setPropertyBase64 in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in setProperty().
propName - The name of the property. Has the same usage as in getProperty().
propValue - the literal property value as byte array.
options - options of the property to set (optional).
Throws:
XMPException - Wraps all exceptions that may occur.
See Also:
XMPMeta.setPropertyBase64(String, String, byte[], PropertyOptions)

setPropertyBase64

public void setPropertyBase64(String schemaNS,
                              String propName,
                              byte[] propValue)
                       throws XMPException
Specified by:
setPropertyBase64 in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property
propName - The name of the property
propValue - the literal property value as byte array
Throws:
XMPException - Wraps all exceptions
See Also:
XMPMeta.setPropertyBase64(String, String, byte[])

getQualifier

public XMPProperty getQualifier(String schemaNS,
                                String propName,
                                String qualNS,
                                String qualName)
                         throws XMPException
Description copied from interface: XMPMeta
Provides access to a qualifier attached to a property. The namespace for the qualifier is passed as a URI, you need not worry about the path string syntax. In many regards qualifiers are like struct fields. See the introductory discussion of qualified properties for more information.

The names of qualifiers should be XML qualified names, that is within an XML namespace. The path syntax for a qualified name uses the namespace prefix. This is unreliable since the prefix is never guaranteed. The URI is the formal name, the prefix is just a local shorthand in a given sequence of XML text.

Note: Qualifiers are only supported for simple leaf properties at this time.

Specified by:
getQualifier in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the struct. Has the same usage as in getProperty.
propName - The name of the property to which the qualifier is attached. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as in getProperty().
qualNS - The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter.
qualName - The name of the qualifier. Must be a single XML name, must not be null or the empty string. Has the same namespace prefix usage as the propName parameter.
Returns:
Returns a XMPProperty containing the value and the options of the qualifier or null if the property does not exist. The name of the qualifier must be a single XML name, must not be null or the empty string. Has the same namespace prefix usage as the propName parameter.

The value of the qualifier is only set if it has one (Arrays and non-leaf levels of structs do not have values).

Throws:
XMPException
See Also:
XMPMeta.getQualifier(String, String, String, String)

getStructField

public XMPProperty getStructField(String schemaNS,
                                  String structName,
                                  String fieldNS,
                                  String fieldName)
                           throws XMPException
Description copied from interface: XMPMeta
Provides access to fields within a nested structure. The namespace for the field is passed as a URI, you need not worry about the path string syntax.

The names of fields should be XML qualified names, that is within an XML namespace. The path syntax for a qualified name uses the namespace prefix. This is unreliable since the prefix is never guaranteed. The URI is the formal name, the prefix is just a local shorthand in a given sequence of XML text.

Specified by:
getStructField in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the struct. Has the same usage as in getProperty.
structName - The name of the struct. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propName in getProperty().
fieldNS - The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter.
fieldName - The name of the field. Must be a single XML name, must not be null or the empty string. Has the same namespace prefix usage as the structName parameter.
Returns:
Returns a XMPProperty containing the value and the options or null if the property does not exist. Arrays and non-leaf levels of structs do not have values.
Throws:
XMPException - Wraps all errors and exceptions that may occur.
See Also:
XMPMeta.getStructField(String, String, String, String)

iterator

public XMPIterator iterator()
                     throws XMPException
Description copied from interface: XMPMeta
Constructs an iterator for the properties within this XMP object.

Specified by:
iterator in interface XMPMeta
Returns:
Returns an XMPIterator.
Throws:
XMPException
See Also:
XMPMeta.iterator()

iterator

public XMPIterator iterator(IteratorOptions options)
                     throws XMPException
Description copied from interface: XMPMeta
Constructs an iterator for the properties within this XMP object using some options.

Specified by:
iterator in interface XMPMeta
Parameters:
options - Option flags to control the iteration.
Returns:
Returns an XMPIterator.
Throws:
XMPException - Wraps all errors and exceptions that may occur.
See Also:
XMPMeta.iterator(IteratorOptions)

iterator

public XMPIterator iterator(String schemaNS,
                            String propName,
                            IteratorOptions options)
                     throws XMPException
Description copied from interface: XMPMeta
Construct an iterator for the properties within an XMP object. According to the parameters it iterates the entire data tree, properties within a specific schema, or a subtree rooted at a specific node.

Specified by:
iterator in interface XMPMeta
Parameters:
schemaNS - Optional schema namespace URI to restrict the iteration. Omitted (visit all schema) by passing null or empty String.
propName - Optional property name to restrict the iteration. May be an arbitrary path expression. Omitted (visit all properties) by passing null or empty String. If no schema URI is given, it is ignored.
options - Option flags to control the iteration. See IteratorOptions for details.
Returns:
Returns an XMPIterator for this XMPMeta-object considering the given options.
Throws:
XMPException - Wraps all errors and exceptions that may occur.
See Also:
XMPMeta.iterator(String, String, IteratorOptions)

setArrayItem

public void setArrayItem(String schemaNS,
                         String arrayName,
                         int itemIndex,
                         String itemValue,
                         PropertyOptions options)
                  throws XMPException
Description copied from interface: XMPMeta
Replaces an item within an array. The index is passed as an integer, you need not worry about the path string syntax for array items, convert a loop index to a string, etc. The array passed must already exist. In normal usage the selected array item is modified. A new item is automatically appended if the index is the array size plus 1.

Specified by:
setArrayItem in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the array. Has the same usage as in getProperty.
arrayName - The name of the array. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propName in getProperty.
itemIndex - The index of the desired item. Arrays in XMP are indexed from 1. To address the last existing item, use XMPMeta.countArrayItems(String, String) to find out the length of the array.
itemValue - the new value of the array item. Has the same usage as propValue in setProperty().
options - the set options for the item.
Throws:
XMPException
See Also:
XMPMeta.setArrayItem(String, String, int, String, PropertyOptions)

setArrayItem

public void setArrayItem(String schemaNS,
                         String arrayName,
                         int itemIndex,
                         String itemValue)
                  throws XMPException
Specified by:
setArrayItem in interface XMPMeta
Parameters:
schemaNS - The namespace URI
arrayName - The name of the array
itemIndex - The index to insert the new item
itemValue - the new value of the array item
Throws:
XMPException - Wraps all errors and exceptions
See Also:
XMPMeta.setArrayItem(String, String, int, String)

insertArrayItem

public void insertArrayItem(String schemaNS,
                            String arrayName,
                            int itemIndex,
                            String itemValue,
                            PropertyOptions options)
                     throws XMPException
Description copied from interface: XMPMeta
Inserts an item into an array previous to the given index. The index is passed as an integer, you need not worry about the path string syntax for array items, convert a loop index to a string, etc. The array passed must already exist. In normal usage the selected array item is modified. A new item is automatically appended if the index is the array size plus 1.

Specified by:
insertArrayItem in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the array. Has the same usage as in getProperty.
arrayName - The name of the array. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propName in getProperty.
itemIndex - The index to insert the new item. Arrays in XMP are indexed from 1. Use XMPConst.ARRAY_LAST_ITEM to append items.
itemValue - the new value of the array item. Has the same usage as propValue in setProperty().
options - the set options that decide about the kind of the node.
Throws:
XMPException
See Also:
XMPMeta.insertArrayItem(String, String, int, String, PropertyOptions)

insertArrayItem

public void insertArrayItem(String schemaNS,
                            String arrayName,
                            int itemIndex,
                            String itemValue)
                     throws XMPException
Specified by:
insertArrayItem in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the array
arrayName - The name of the array
itemIndex - The index to insert the new item
itemValue - the value of the array item
Throws:
XMPException - Wraps all errors and exceptions
See Also:
XMPMeta.insertArrayItem(String, String, int, String)

setProperty

public void setProperty(String schemaNS,
                        String propName,
                        Object propValue,
                        PropertyOptions options)
                 throws XMPException
Description copied from interface: XMPMeta
The property value setters all take a property specification, their differences are in the form of this. The first two parameters are always the top level namespace URI (the schema namespace) and the basic name of the property being referenced. See the introductory discussion of path expression usage for more information.

All of the functions take a string value for the property and option flags describing the property. The value must be Unicode in UTF-8 encoding. Arrays and non-leaf levels of structs do not have values. Empty arrays and structs may be created using appropriate option flags. All levels of structs that is assigned implicitly are created if necessary. appendArayItem implicitly creates the named array if necessary.

See PropertyOptions for detailed information about the options.

This is the simplest property setter, mainly for top level simple properties or after using the path composition functions in XMPPathFactory.

Specified by:
setProperty in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the property. Has the same usage as in getProperty.
propName - The name of the property. Has the same usage as in getProperty().
propValue - the value for the property (only leaf properties have a value). Arrays and non-leaf levels of structs do not have values. Must be null if the value is not relevant.
The value is automatically detected: Boolean, Integer, Long, Double, XMPDateTime and byte[] are handled, on all other toString() is called.
options - Option flags describing the property. See the earlier description.
Throws:
XMPException
See Also:
XMPMeta.setProperty(String, String, Object, PropertyOptions)

setProperty

public void setProperty(String schemaNS,
                        String propName,
                        Object propValue)
                 throws XMPException
Specified by:
setProperty in interface XMPMeta
Parameters:
schemaNS - The namespace URI
propName - The name of the property
propValue - the value for the property
Throws:
XMPException - Wraps all errors and exceptions
See Also:
XMPMeta.setProperty(String, String, Object)

setQualifier

public void setQualifier(String schemaNS,
                         String propName,
                         String qualNS,
                         String qualName,
                         String qualValue,
                         PropertyOptions options)
                  throws XMPException
Description copied from interface: XMPMeta
Provides access to a qualifier attached to a property. The namespace for the qualifier is passed as a URI, you need not worry about the path string syntax. In many regards qualifiers are like struct fields. See the introductory discussion of qualified properties for more information. The names of qualifiers should be XML qualified names, that is within an XML namespace. The path syntax for a qualified name uses the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is just a local shorthand in a given sequence of XML text. The property the qualifier will be attached has to exist.

Specified by:
setQualifier in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the struct. Has the same usage as in getProperty.
propName - The name of the property to which the qualifier is attached. Has the same usage as in getProperty.
qualNS - The namespace URI for the qualifier. Has the same URI and prefix usage as the schemaNS parameter.
qualName - The name of the qualifier. Must be a single XML name, must not be null or the empty string. Has the same namespace prefix usage as the propName parameter.
qualValue - A pointer to the null terminated UTF-8 string that is the value of the qualifier, if the qualifier has a value. Has the same usage as propValue in getProperty.
options - Option flags describing the qualifier. See the earlier description.
Throws:
XMPException
See Also:
XMPMeta.setQualifier(String, String, String, String, String, PropertyOptions)

setQualifier

public void setQualifier(String schemaNS,
                         String propName,
                         String qualNS,
                         String qualName,
                         String qualValue)
                  throws XMPException
Specified by:
setQualifier in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the struct
propName - The name of the property to which the qualifier is attached
qualNS - The namespace URI for the qualifier
qualName - The name of the qualifier
qualValue - the value of the qualifier
Throws:
XMPException - Wraps all errors and exceptions
See Also:
XMPMeta.setQualifier(String, String, String, String, String)

setStructField

public void setStructField(String schemaNS,
                           String structName,
                           String fieldNS,
                           String fieldName,
                           String fieldValue,
                           PropertyOptions options)
                    throws XMPException
Description copied from interface: XMPMeta
Provides access to fields within a nested structure. The namespace for the field is passed as a URI, you need not worry about the path string syntax. The names of fields should be XML qualified names, that is within an XML namespace. The path syntax for a qualified name uses the namespace prefix, which is unreliable because the prefix is never guaranteed. The URI is the formal name, the prefix is just a local shorthand in a given sequence of XML text.

Specified by:
setStructField in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the struct. Has the same usage as in getProperty.
structName - The name of the struct. May be a general path expression, must not be null or the empty string. Has the same namespace prefix usage as propName in getProperty.
fieldNS - The namespace URI for the field. Has the same URI and prefix usage as the schemaNS parameter.
fieldName - The name of the field. Must be a single XML name, must not be null or the empty string. Has the same namespace prefix usage as the structName parameter.
fieldValue - the value of thefield, if the field has a value. Has the same usage as propValue in getProperty.
options - Option flags describing the field. See the earlier description.
Throws:
XMPException - Wraps all errors and exceptions that may occur.
See Also:
XMPMeta.setStructField(String, String, String, String, String, PropertyOptions)

setStructField

public void setStructField(String schemaNS,
                           String structName,
                           String fieldNS,
                           String fieldName,
                           String fieldValue)
                    throws XMPException
Specified by:
setStructField in interface XMPMeta
Parameters:
schemaNS - The namespace URI for the struct
structName - The name of the struct
fieldNS - The namespace URI for the field
fieldName - The name of the field
fieldValue - the value of the field
Throws:
XMPException - Wraps all errors and exceptions
See Also:
XMPMeta.setStructField(String, String, String, String, String)

getObjectName

public String getObjectName()
Description copied from interface: XMPMeta
This correlates to the about-attribute, returns the empty String if no name is set.

Specified by:
getObjectName in interface XMPMeta
Returns:
Returns the name of the XMP object.
See Also:
XMPMeta.getObjectName()

setObjectName

public void setObjectName(String name)
Specified by:
setObjectName in interface XMPMeta
Parameters:
name - Sets the name of the XMP object.
See Also:
XMPMeta.setObjectName(String)

getPacketHeader

public String getPacketHeader()
Specified by:
getPacketHeader in interface XMPMeta
Returns:
Returns the unparsed content of the <?xpacket> processing instruction. This contains normally the attribute-like elements 'begin="<BOM>" id="W5M0MpCehiHzreSzNTczkc9d"' and possibly the deprecated elements 'bytes="1234"' or 'encoding="XXX"'. If the parsed packet has not been wrapped into an xpacket, null is returned.
See Also:
XMPMeta.getPacketHeader()

setPacketHeader

public void setPacketHeader(String packetHeader)
Sets the packetHeader attributes, only used by the parser.

Parameters:
packetHeader - the processing instruction content

clone

public Object clone()
Performs a deep clone of the XMPMeta-object

Specified by:
clone in interface XMPMeta
Overrides:
clone in class Object
Returns:
Returns a deep copy of this instance.
See Also:
Object.clone()

dumpObject

public String dumpObject()
Description copied from interface: XMPMeta
Renders this node and the tree unter this node in a human readable form.

Specified by:
dumpObject in interface XMPMeta
Returns:
Returns a multiline string containing the dump.
See Also:
XMPMeta.dumpObject()

sort

public void sort()
Description copied from interface: XMPMeta
Sorts the complete datamodel according to the following rules:

Specified by:
sort in interface XMPMeta
See Also:
XMPMeta.sort()

normalize

public void normalize(ParseOptions options)
               throws XMPException
Description copied from interface: XMPMeta
Perform the normalization as a separate parsing step. Normally it is done during parsing, unless the parsing option ParseOptions.OMIT_NORMALIZATION is set to true. Note: It does no harm to call this method to an already normalized xmp object. It was a PDF/A requirement to get hand on the unnormalized XMPMeta object.

Specified by:
normalize in interface XMPMeta
Parameters:
options - optional parsing options.
Throws:
XMPException - Wraps all errors and exceptions that may occur.
See Also:
XMPMeta.normalize(ParseOptions)

getRoot

public com.itextpdf.xmp.impl.XMPNode getRoot()
Returns:
Returns the root node of the XMP tree.


Copyright © 2013. All Rights Reserved.