Class XMPSchema

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String NS_NAMESPACE
      The standard xmlns namespace.
      protected java.lang.String prefix
      The XML schema prefix.
      protected org.w3c.dom.Element schema
      The DOM representation of this object.
    • Constructor Summary

      Constructors 
      Constructor Description
      XMPSchema​(XMPMetadata parent, java.lang.String namespaceName, java.lang.String namespaceURI)
      Create a new blank schema that can be populated.
      XMPSchema​(org.w3c.dom.Element element, java.lang.String aPrefix)
      Create schema from an existing XML element.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addBagValue​(java.lang.String bagName, java.lang.String bagValue)
      Add an entry to a bag property.
      void addSequenceDateValue​(java.lang.String seqName, java.util.Calendar date)
      Add a date sequence value to the list.
      void addSequenceValue​(java.lang.String seqName, java.lang.String seqValue)
      Add a new value to a sequence property.
      void addSequenceValue​(java.lang.String seqName, Elementable seqValue)
      Add a new value to a sequence property.
      java.lang.String getAbout()
      Get the RDF about attribute.
      java.util.List<java.lang.String> getBagList​(java.lang.String bagName)
      Get all the values of the bag property.
      java.lang.Boolean getBooleanProperty​(java.lang.String propertyName)
      Get the value of the property as a boolean.
      java.util.Calendar getDateProperty​(java.lang.String propertyName)
      Get the value of the property as a date.
      org.w3c.dom.Element getElement()
      Get the XML element that is represented by this schema.
      java.util.List<ResourceEvent> getEventSequenceList​(java.lang.String seqName)
      Get a list of ResourceEvent objects.
      java.lang.Integer getIntegerProperty​(java.lang.String propertyName)
      Get the value of the property as an integer.
      java.lang.String getLanguageProperty​(java.lang.String propertyName, java.lang.String language)
      Get the value of a multi-lingual property.
      java.util.List<java.lang.String> getLanguagePropertyLanguages​(java.lang.String propertyName)
      Get a list of all languages that are currently defined for a specific property.
      java.util.List<java.util.Calendar> getSequenceDateList​(java.lang.String seqName)
      Get all the date values in a sequence property.
      java.util.List<java.lang.String> getSequenceList​(java.lang.String seqName)
      Get all the values in a sequence property.
      java.lang.String getTextProperty​(java.lang.String propertyName)
      Get the value of a simple text property.
      Thumbnail getThumbnailProperty​(java.lang.String propertyName, java.lang.String language)
      Get the value of a multi-lingual property.
      void merge​(XMPSchema xmpSchema)
      A basic schema merge, it merges bags and sequences and replace everything else.
      void removeBagValue​(java.lang.String bagName, java.lang.String bagValue)
      Remove all matching entries with the given value from the bag.
      void removeSequenceDateValue​(java.lang.String seqName, java.util.Calendar date)
      Remove a date sequence value from the list.
      void removeSequenceValue​(java.lang.String seqName, java.lang.String seqValue)
      Remove all matching values from a sequence property.
      void removeSequenceValue​(java.lang.String seqName, Elementable seqValue)
      Remove a value from a sequence property.
      void setAbout​(java.lang.String about)
      Set the RDF 'about' attribute.
      void setBooleanProperty​(java.lang.String propertyName, java.lang.Boolean bool)
      Set the value of the property as a boolean.
      void setDateProperty​(java.lang.String propertyName, java.util.Calendar date)
      Set the value of the property as a date.
      void setIntegerProperty​(java.lang.String propertyName, java.lang.Integer intValue)
      Set the value of the property as an integer.
      void setLanguageProperty​(java.lang.String propertyName, java.lang.String language, java.lang.String value)
      Set the value of a multi-lingual property.
      void setTextProperty​(java.lang.String propertyName, java.lang.String propertyValue)
      Set a simple text property on the schema.
      void setThumbnailProperty​(java.lang.String propertyName, java.lang.String language, Thumbnail value)
      Set the value of a multi-lingual property.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • NS_NAMESPACE

        public static final java.lang.String NS_NAMESPACE
        The standard xmlns namespace.
        See Also:
        Constant Field Values
      • prefix

        protected java.lang.String prefix
        The XML schema prefix.
      • schema

        protected org.w3c.dom.Element schema
        The DOM representation of this object.
    • Constructor Detail

      • XMPSchema

        public XMPSchema​(XMPMetadata parent,
                         java.lang.String namespaceName,
                         java.lang.String namespaceURI)
        Create a new blank schema that can be populated.
        Parameters:
        parent - The parent XMP document that this schema will be part of.
        namespaceName - The name of the namespace, ie pdf,dc,...
        namespaceURI - The URI of the namespace, ie "http://ns.adobe.com/pdf/1.3/"
      • XMPSchema

        public XMPSchema​(org.w3c.dom.Element element,
                         java.lang.String aPrefix)
        Create schema from an existing XML element.
        Parameters:
        element - The existing XML element.
        aPrefix - The XML prefix.
    • Method Detail

      • getElement

        public org.w3c.dom.Element getElement()
        Get the XML element that is represented by this schema.
        Returns:
        The root XML element of this schema.
      • getAbout

        public java.lang.String getAbout()
        Get the RDF about attribute.
        Returns:
        The RDF 'about' attribute.
      • setAbout

        public void setAbout​(java.lang.String about)
        Set the RDF 'about' attribute. Passing in null will clear this attribute.
        Parameters:
        about - The new RFD about value.
      • setTextProperty

        public void setTextProperty​(java.lang.String propertyName,
                                    java.lang.String propertyValue)
        Set a simple text property on the schema.
        Parameters:
        propertyName - The name of the property, it must contain the namespace prefix, ie "pdf:Keywords"
        propertyValue - The value for the property, can be any string. Passing null will remove the property.
      • getTextProperty

        public java.lang.String getTextProperty​(java.lang.String propertyName)
        Get the value of a simple text property.
        Parameters:
        propertyName - The name of the property to get, it must include the namespace prefix. ie "pdf:Keywords".
        Returns:
        The value of the text property or the null if there is no value.
      • getDateProperty

        public java.util.Calendar getDateProperty​(java.lang.String propertyName)
                                           throws java.io.IOException
        Get the value of the property as a date.
        Parameters:
        propertyName - The fully qualified property name for the date.
        Returns:
        The value of the property as a date.
        Throws:
        java.io.IOException - If there is an error converting the value to a date.
      • setDateProperty

        public void setDateProperty​(java.lang.String propertyName,
                                    java.util.Calendar date)
        Set the value of the property as a date.
        Parameters:
        propertyName - The fully qualified property name for the date.
        date - The date to set, or null to clear.
      • getBooleanProperty

        public java.lang.Boolean getBooleanProperty​(java.lang.String propertyName)
        Get the value of the property as a boolean.
        Parameters:
        propertyName - The fully qualified property name for the boolean.
        Returns:
        The value of the property as a boolean.
      • setBooleanProperty

        public void setBooleanProperty​(java.lang.String propertyName,
                                       java.lang.Boolean bool)
        Set the value of the property as a boolean.
        Parameters:
        propertyName - The fully qualified property name for the boolean.
        bool - The boolean to set, or null to clear.
      • getIntegerProperty

        public java.lang.Integer getIntegerProperty​(java.lang.String propertyName)
        Get the value of the property as an integer.
        Parameters:
        propertyName - The fully qualified property name for the integer.
        Returns:
        The value of the property as an integer.
      • setIntegerProperty

        public void setIntegerProperty​(java.lang.String propertyName,
                                       java.lang.Integer intValue)
        Set the value of the property as an integer.
        Parameters:
        propertyName - The fully qualified property name for the integer.
        intValue - The int to set, or null to clear.
      • removeBagValue

        public void removeBagValue​(java.lang.String bagName,
                                   java.lang.String bagValue)
        Remove all matching entries with the given value from the bag.
        Parameters:
        bagName - The name of the bag, it must include the namespace prefix. ie "pdf:Keywords".
        bagValue - The value to remove from the bagList.
      • addBagValue

        public void addBagValue​(java.lang.String bagName,
                                java.lang.String bagValue)
        Add an entry to a bag property.
        Parameters:
        bagName - The name of the bag, it must include the namespace prefix. ie "pdf:Keywords".
        bagValue - The value to add to the bagList.
      • getBagList

        public java.util.List<java.lang.String> getBagList​(java.lang.String bagName)
        Get all the values of the bag property. This will return a list of java.lang.String objects, this is a read-only list.
        Parameters:
        bagName - The name of the bag property to get, it must include the namespace prefix. ie "pdf:Keywords"
        Returns:
        All of the values of the bag property in a list.
      • removeSequenceValue

        public void removeSequenceValue​(java.lang.String seqName,
                                        java.lang.String seqValue)
        Remove all matching values from a sequence property.
        Parameters:
        seqName - The name of the sequence property. It must include the namespace prefix. ie "pdf:Keywords".
        seqValue - The value to remove from the list.
      • removeSequenceValue

        public void removeSequenceValue​(java.lang.String seqName,
                                        Elementable seqValue)
        Remove a value from a sequence property. This will remove all entries from the list.
        Parameters:
        seqName - The name of the sequence property. It must include the namespace prefix. ie "pdf:Keywords".
        seqValue - The value to remove from the list.
      • addSequenceValue

        public void addSequenceValue​(java.lang.String seqName,
                                     java.lang.String seqValue)
        Add a new value to a sequence property.
        Parameters:
        seqName - The name of the sequence property, it must include the namespace prefix. ie "pdf:Keywords"
        seqValue - The value to add to the sequence.
      • addSequenceValue

        public void addSequenceValue​(java.lang.String seqName,
                                     Elementable seqValue)
        Add a new value to a sequence property.
        Parameters:
        seqName - The name of the sequence property, it must include the namespace prefix. ie "pdf:Keywords"
        seqValue - The value to add to the sequence.
      • getSequenceList

        public java.util.List<java.lang.String> getSequenceList​(java.lang.String seqName)
        Get all the values in a sequence property.
        Parameters:
        seqName - The name of the sequence property, it must include the namespace prefix. ie "pdf:Keywords".
        Returns:
        A read-only list of java.lang.String objects or null if the property does not exist.
      • getEventSequenceList

        public java.util.List<ResourceEvent> getEventSequenceList​(java.lang.String seqName)
        Get a list of ResourceEvent objects.
        Parameters:
        seqName - The name of the sequence to retrieve.
        Returns:
        A list of ResourceEvent objects or null if they do not exist.
      • removeSequenceDateValue

        public void removeSequenceDateValue​(java.lang.String seqName,
                                            java.util.Calendar date)
        Remove a date sequence value from the list.
        Parameters:
        seqName - The name of the sequence property, it must include the namespace prefix. ie "pdf:Keywords"
        date - The date to remove from the sequence property.
      • addSequenceDateValue

        public void addSequenceDateValue​(java.lang.String seqName,
                                         java.util.Calendar date)
        Add a date sequence value to the list.
        Parameters:
        seqName - The name of the sequence property, it must include the namespace prefix. ie "pdf:Keywords"
        date - The date to add to the sequence property.
      • getSequenceDateList

        public java.util.List<java.util.Calendar> getSequenceDateList​(java.lang.String seqName)
                                                               throws java.io.IOException
        Get all the date values in a sequence property.
        Parameters:
        seqName - The name of the sequence property, it must include the namespace prefix. ie "pdf:Keywords".
        Returns:
        A read-only list of java.util.Calendar objects or null if the property does not exist.
        Throws:
        java.io.IOException - If there is an error converting the value to a date.
      • setLanguageProperty

        public void setLanguageProperty​(java.lang.String propertyName,
                                        java.lang.String language,
                                        java.lang.String value)
        Set the value of a multi-lingual property.
        Parameters:
        propertyName - The name of the property, it must include the namespace prefix. ie "pdf:Keywords"
        language - The language code of the value. If null then "x-default" is assumed.
        value - The value of the property in the specified language.
      • getLanguageProperty

        public java.lang.String getLanguageProperty​(java.lang.String propertyName,
                                                    java.lang.String language)
        Get the value of a multi-lingual property.
        Parameters:
        propertyName - The name of the property, it must include the namespace prefix. ie "pdf:Keywords"
        language - The language code of the value. If null then "x-default" is assumed.
        Returns:
        The value of the language property.
      • setThumbnailProperty

        public void setThumbnailProperty​(java.lang.String propertyName,
                                         java.lang.String language,
                                         Thumbnail value)
        Set the value of a multi-lingual property.
        Parameters:
        propertyName - The name of the property, it must include the namespace prefix. ie "pdf:Keywords"
        language - The language code of the value. If null then "x-default" is assumed.
        value - The value of the property in the specified language.
      • getThumbnailProperty

        public Thumbnail getThumbnailProperty​(java.lang.String propertyName,
                                              java.lang.String language)
        Get the value of a multi-lingual property.
        Parameters:
        propertyName - The name of the property, it must include the namespace prefix. ie "pdf:Keywords"
        language - The language code of the value. If null then "x-default" is assumed.
        Returns:
        The value of the language property.
      • getLanguagePropertyLanguages

        public java.util.List<java.lang.String> getLanguagePropertyLanguages​(java.lang.String propertyName)
        Get a list of all languages that are currently defined for a specific property.
        Parameters:
        propertyName - The name of the property, it must include the namespace prefix. ie "pdf:Keywords"
        Returns:
        A list of all languages, this will return an non-null empty list if none have been defined.
      • merge

        public void merge​(XMPSchema xmpSchema)
                   throws java.io.IOException
        A basic schema merge, it merges bags and sequences and replace everything else.
        Parameters:
        xmpSchema - The schema to merge.
        Throws:
        java.io.IOException - If there is an error during the merge.