Package org.apache.tika.xmp
Class XMPMetadata
java.lang.Object
org.apache.tika.metadata.Metadata
org.apache.tika.xmp.XMPMetadata
- All Implemented Interfaces:
Serializable
,ClimateForcast
,CreativeCommons
,Geographic
,HttpHeaders
,Message
,TIFF
,TikaMimeKeys
Provides a conversion of the Metadata map from Tika to the XMP data model by also providing the
Metadata API for clients to ease transition. But clients can also work directly on the XMP data
model, by getting the XMPMeta reference from this class. Usually the instance would be
initialized by providing the Metadata object that had been returned from Tika-core which
populates the XMP data model with all properties that can be converted.
This class is not serializable!
- See Also:
-
Field Summary
Fields inherited from interface org.apache.tika.metadata.ClimateForcast
ACKNOWLEDGEMENT, COMMAND_LINE, COMMENT, CONTACT, CONVENTIONS, EXPERIMENT_ID, HISTORY, INSTITUTION, MODEL_NAME_ENGLISH, PROGRAM_ID, PROJECT_ID, REALIZATION, REFERENCES, SOURCE, TABLE_ID
Fields inherited from interface org.apache.tika.metadata.CreativeCommons
LICENSE_LOCATION, LICENSE_URL, WORK_TYPE
Fields inherited from interface org.apache.tika.metadata.Geographic
ALTITUDE, LATITUDE, LONGITUDE
Fields inherited from interface org.apache.tika.metadata.HttpHeaders
CONTENT_DISPOSITION, CONTENT_ENCODING, CONTENT_LANGUAGE, CONTENT_LENGTH, CONTENT_LOCATION, CONTENT_MD5, CONTENT_TYPE, LOCATION
Fields inherited from interface org.apache.tika.metadata.Message
MESSAGE_BCC, MESSAGE_BCC_DISPLAY_NAME, MESSAGE_BCC_EMAIL, MESSAGE_BCC_NAME, MESSAGE_CC, MESSAGE_CC_DISPLAY_NAME, MESSAGE_CC_EMAIL, MESSAGE_CC_NAME, MESSAGE_FROM, MESSAGE_FROM_EMAIL, MESSAGE_FROM_NAME, MESSAGE_PREFIX, MESSAGE_RAW_HEADER_PREFIX, MESSAGE_RECIPIENT_ADDRESS, MESSAGE_TO, MESSAGE_TO_DISPLAY_NAME, MESSAGE_TO_EMAIL, MESSAGE_TO_NAME, MULTIPART_BOUNDARY, MULTIPART_SUBTYPE
Fields inherited from interface org.apache.tika.metadata.TIFF
BITS_PER_SAMPLE, EQUIPMENT_MAKE, EQUIPMENT_MODEL, EXIF_PAGE_COUNT, EXPOSURE_TIME, F_NUMBER, FLASH_FIRED, FOCAL_LENGTH, IMAGE_LENGTH, IMAGE_WIDTH, ISO_SPEED_RATINGS, ORIENTATION, ORIGINAL_DATE, RESOLUTION_HORIZONTAL, RESOLUTION_UNIT, RESOLUTION_VERTICAL, SAMPLES_PER_PIXEL, SOFTWARE
Fields inherited from interface org.apache.tika.metadata.TikaMimeKeys
MIME_TYPE_MAGIC, TIKA_MIME_FILE
-
Constructor Summary
ConstructorDescriptionInitializes with an empty XMP packetXMPMetadata
(Metadata meta) XMPMetadata
(Metadata meta, String mimetype) Initializes the data by converting the Metadata information to XMP. -
Method Summary
Modifier and TypeMethodDescriptionvoid
As this API could only possibly work for simple properties in XMP, it just calls the set method, which replaces any existing valuestatic void
deleteNamespace
(String namespaceURI) Deletes a namespace from the registry.boolean
This method is not implemented, yet.Returns the value of a simple property or the first one of an array.Returns the value (if any) of the identified metadata property.Returns the value of the identified Date based metadata property.Returns the value of the identified Integer based metadata property.static String
getNamespacePrefix
(String namespaceURI) Obtain the prefix for a registered namespace URI.static String
getNamespaceURI
(String namespacePrefix) Obtain the URI for a registered namespace prefix.String[]
Returns the value of a simple property or all if the property is an array and the elements are of simple type.String[]
Get the values associated to a metadata name.com.adobe.internal.xmp.XMPMeta
Provides direct access to the XMP data model, in case a client prefers to work directly on it instead of using the Metadata APIint
hashCode()
boolean
isMultiValued
(String name) Checks if the named property is an array.boolean
isMultiValued
(Property property) Returns true if named value is multivalued.String[]
names()
For XMP it is not clear what that API should return, therefor not implementedvoid
void
Converts the Metadata information to XMP.static String
registerNamespace
(String namespaceURI, String suggestedPrefix) Register a namespace URI with a suggested prefix.void
Removes the given property from the XMP data.void
void
Sets the given property.void
Sets the real or rational value of the identified metadata property.void
Sets the integer value of the identified metadata property.void
Sets the value of the identified metadata property.void
Sets array properties.void
Sets the date value of the identified metadata property.void
setAll
(Properties properties) It will set all simple and array properties that have QName keys in registered namespaces.int
size()
Returns the number of top-level namespacestoString()
Serializes the XMP data in compact form without packet wrapperMethods inherited from class org.apache.tika.metadata.Metadata
add, add, add, add, getIntValues, getLongValues, set, set, set, set, setMetadataWriteFilter
-
Constructor Details
-
XMPMetadata
public XMPMetadata()Initializes with an empty XMP packet -
XMPMetadata
- Throws:
TikaException
- See Also:
-
XMPMetadata
Initializes the data by converting the Metadata information to XMP. If a mimetype is provided, a specific converter can be used, that converts all available metadata. If there is no mimetype provided or no specific converter available a generic conversion is done which will convert only those properties that are in known namespaces and are using the correct prefixes- Parameters:
meta
- the Metadata information from Tika-coremimetype
- mimetype information- Throws:
TikaException
- case an error occurred during conversion
-
-
Method Details
-
registerNamespace
public static String registerNamespace(String namespaceURI, String suggestedPrefix) throws com.adobe.internal.xmp.XMPException Register a namespace URI with a suggested prefix. It is not an error if the URI is already registered, no matter what the prefix is. If the URI is not registered but the suggested prefix is in use, a unique prefix is created from the suggested one. The actual registered prefix is always returned. The function result tells if the registered prefix is the suggested one. Note: No checking is presently done on either the URI or the prefix.- Parameters:
namespaceURI
- The URI for the namespace. Must be a valid XML URI.suggestedPrefix
- The suggested prefix to be used if the URI is not yet registered. Must be a valid XML name.- Returns:
- Returns the registered prefix for this URI, is equal to the suggestedPrefix if the namespace hasn't been registered before, otherwise the existing prefix.
- Throws:
com.adobe.internal.xmp.XMPException
- If the parameters are not accordingly set
-
getNamespacePrefix
Obtain the prefix for a registered namespace URI. It is not an error if the namespace URI is not registered.- Parameters:
namespaceURI
- The URI for the namespace. Must not be null or the empty string.- Returns:
- Returns the prefix registered for this namespace URI or null.
-
getNamespaceURI
Obtain the URI for a registered namespace prefix. It is not an error if the namespace prefix is not registered.- Parameters:
namespacePrefix
- The prefix for the namespace. Must not be null or the empty string.- Returns:
- Returns the URI registered for this prefix or null.
-
getNamespaces
- Returns:
- Returns the registered prefix/namespace-pairs as map, where the keys are the namespaces and the values are the prefixes.
-
getPrefixes
- Returns:
- Returns the registered namespace/prefix-pairs as map, where the keys are the prefixes and the values are the namespaces.
-
deleteNamespace
Deletes a namespace from the registry.Does nothing if the URI is not registered, or if the namespaceURI parameter is null or the empty string.
Note: Not yet implemented.
- Parameters:
namespaceURI
- The URI for the namespace.
-
process
- Throws:
TikaException
- See Also:
-
process
Converts the Metadata information to XMP. If a mimetype is provided, a specific converter can be used, that converts all available metadata. If there is no mimetype provided or no specific converter available a generic conversion is done which will convert only those properties that are in known namespaces and are using the correct prefixes- Parameters:
meta
- the Metadata information from Tika-coremimetype
- mimetype information- Throws:
TikaException
- case an error occurred during conversion
-
getXMPData
public com.adobe.internal.xmp.XMPMeta getXMPData()Provides direct access to the XMP data model, in case a client prefers to work directly on it instead of using the Metadata API- Returns:
- the "internal" XMP data object
-
isMultiValued
Description copied from class:Metadata
Returns true if named value is multivalued.- Overrides:
isMultiValued
in classMetadata
- Parameters:
property
- metadata property- Returns:
- true is named value is multivalued, false if single value or null
- See Also:
-
isMultiValued
Checks if the named property is an array.- Overrides:
isMultiValued
in classMetadata
- Parameters:
name
- name of metadata- Returns:
- true is named value is multivalued, false if single value or null
- See Also:
-
names
For XMP it is not clear what that API should return, therefor not implemented -
get
Returns the value of a simple property or the first one of an array. The given name must contain a namespace prefix of a registered namespace. -
get
Description copied from class:Metadata
Returns the value (if any) of the identified metadata property. -
getInt
Description copied from class:Metadata
Returns the value of the identified Integer based metadata property. -
getDate
Description copied from class:Metadata
Returns the value of the identified Date based metadata property. -
getValues
Description copied from class:Metadata
Get the values associated to a metadata name. -
getValues
Returns the value of a simple property or all if the property is an array and the elements are of simple type. The given name must contain a namespace prefix of a registered namespace. -
add
As this API could only possibly work for simple properties in XMP, it just calls the set method, which replaces any existing value -
set
Sets the given property. If the property already exists, it is overwritten. Only simple properties that use a registered prefix are stored in the XMP. -
set
Description copied from class:Metadata
Sets the value of the identified metadata property. -
set
Description copied from class:Metadata
Sets the integer value of the identified metadata property. -
set
Description copied from class:Metadata
Sets the real or rational value of the identified metadata property. -
set
Description copied from class:Metadata
Sets the date value of the identified metadata property. -
set
Sets array properties. If the property already exists, it is overwritten. Only array properties that use a registered prefix are stored in the XMP. -
setAll
It will set all simple and array properties that have QName keys in registered namespaces. -
remove
- See Also:
-
remove
Removes the given property from the XMP data. If it is a complex property the whole subtree is removed -
size
public int size()Returns the number of top-level namespaces -
equals
This method is not implemented, yet. It is very tedious to check for semantic equality of XMP packets -
hashCode
public int hashCode() -
toString
Serializes the XMP data in compact form without packet wrapper
-