class AdobePDFSchema extends XMPSchema
{

    @PropertyType(type = Types.Text, card = Cardinality.Simple)
    public static final String KEYWORDS = "Keywords";

    @PropertyType(type = Types.Text, card = Cardinality.Simple)
    public static final String PDF_VERSION = "PDFVersion";

    @PropertyType(type = Types.Text, card = Cardinality.Simple)
    public static final String PRODUCER = "Producer";

    /**
     * Constructor of an Adobe PDF schema with preferred prefix
     * 
     * @param metadata
     *            The metadata to attach this schema
     */
    public AdobePDFSchema(XMPMetadata metadata)
    {
        super(metadata);
    }

    /**
     * Constructor of an Adobe PDF schema with specified prefix
     * 
     * @param metadata
     *            The metadata to attach this schema
     * @param ownPrefix
     *            The prefix to assign
     */
    public AdobePDFSchema(XMPMetadata metadata, String ownPrefix)
    {
        super(metadata, ownPrefix);
    }

    /**
     * Set the PDF keywords
     * 
     * @param value
     *            Value to set
     */
    public void setKeywords(String value)
    {
        TextType keywords;
        keywords = createTextType(KEYWORDS, value);
        addProperty(keywords);
    }

    /**
     * Set the PDF keywords
     * 
     * @param keywords
     *            Property to set
     */
    public void setKeywordsProperty(TextType keywords)
    {
        addProperty(keywords);
    }

    /**
     * Set the PDFVersion
     * 
     * @param value
     *            Value to set
     */
    public void setPDFVersion(String value)
    {
        TextType version;
        version = createTextType(PDF_VERSION, value);
        addProperty(version);

    }

    /**
     * Set the PDFVersion
     * 
     * @param version
     *            Property to set
     */
    public void setPDFVersionProperty(TextType version)
    {
        addProperty(version);
    }

    /**
     * Set the PDFProducer
     * 
     * @param value
     *            Value to set
     */
    public void setProducer(String value)
    {
        TextType producer;
        producer = createTextType(PRODUCER, value);
        addProperty(producer);
    }

    /**
     * Set the PDFProducer
     * 
     * @param producer
     *            Property to set
     */
    public void setProducerProperty(TextType producer)
    {
        addProperty(producer);
    }

    /**
     * Give the PDF Keywords property
     * 
     * @return The property object
     */
    public TextType getKeywordsProperty()
    {
        AbstractField tmp = getProperty(KEYWORDS);
        if (tmp instanceof TextType)
        {
            return (TextType) tmp;
        }
        return null;
    }

    /**
     * Give the PDF Keywords property value (string)
     * 
     * @return The property value
     */
    public String getKeywords()
    {
        AbstractField tmp = getProperty(KEYWORDS);
        if (tmp instanceof TextType)
        {
            return ((TextType) tmp).getStringValue();
        }
        return null;
    }

    /**
     * Give the PDFVersion property
     * 
     * @return The property object
     */
    public TextType getPDFVersionProperty()
    {<FILL_FUNCTION_BODY>}

    /**
     * Give the PDFVersion property value (string)
     * 
     * @return The property value
     */
    public String getPDFVersion()
    {
        AbstractField tmp = getProperty(PDF_VERSION);
        if (tmp instanceof TextType)
        {
            return ((TextType) tmp).getStringValue();
        }
        return null;
    }

    /**
     * Give the producer property
     * 
     * @return The property object
     */
    public TextType getProducerProperty()
    {
        AbstractField tmp = getProperty(PRODUCER);
        if (tmp instanceof TextType)
        {
            return (TextType) tmp;
        }
        return null;
    }

    /**
     * Give the producer property value (string)
     * 
     * @return The property value
     */
    public String getProducer()
    {
        AbstractField tmp = getProperty(PRODUCER);
        if (tmp instanceof TextType)
        {
            return ((TextType) tmp).getStringValue();
        }
        return null;
    }

}

        AbstractField tmp = getProperty(PDF_VERSION);
        if (tmp instanceof TextType)
        {
            return (TextType) tmp;
        }
        return null;
    
<methods>public void <init>(org.apache.xmpbox.XMPMetadata, java.lang.String, java.lang.String, java.lang.String) ,public void <init>(org.apache.xmpbox.XMPMetadata) ,public void <init>(org.apache.xmpbox.XMPMetadata, java.lang.String) ,public void <init>(org.apache.xmpbox.XMPMetadata, java.lang.String, java.lang.String) ,public void addBagValue(java.lang.String, org.apache.xmpbox.type.AbstractField) ,public void addBagValueAsSimple(java.lang.String, java.lang.String) ,public void addQualifiedBagValue(java.lang.String, java.lang.String) ,public void addSequenceDateValueAsSimple(java.lang.String, java.util.Calendar) ,public void addUnqualifiedSequenceDateValue(java.lang.String, java.util.Calendar) ,public void addUnqualifiedSequenceValue(java.lang.String, java.lang.String) ,public void addUnqualifiedSequenceValue(java.lang.String, org.apache.xmpbox.type.AbstractField) ,public org.apache.xmpbox.type.Attribute getAboutAttribute() ,public java.lang.String getAboutValue() ,public org.apache.xmpbox.type.AbstractField getAbstractProperty(java.lang.String) ,public org.apache.xmpbox.type.BooleanType getBooleanProperty(java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public java.lang.Boolean getBooleanPropertyValue(java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public java.lang.Boolean getBooleanPropertyValueAsSimple(java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public org.apache.xmpbox.type.DateType getDateProperty(java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public java.util.Calendar getDatePropertyValue(java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public java.util.Calendar getDatePropertyValueAsSimple(java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public org.apache.xmpbox.type.IntegerType getIntegerProperty(java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public java.lang.Integer getIntegerPropertyValue(java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public java.lang.Integer getIntegerPropertyValueAsSimple(java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public List<org.apache.xmpbox.type.AbstractField> getUnqualifiedArrayList(java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public List<java.lang.String> getUnqualifiedBagValueList(java.lang.String) ,public List<java.lang.String> getUnqualifiedLanguagePropertyLanguagesValue(java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public java.lang.String getUnqualifiedLanguagePropertyValue(java.lang.String, java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public List<java.util.Calendar> getUnqualifiedSequenceDateValueList(java.lang.String) ,public List<java.lang.String> getUnqualifiedSequenceValueList(java.lang.String) ,public org.apache.xmpbox.type.TextType getUnqualifiedTextProperty(java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public java.lang.String getUnqualifiedTextPropertyValue(java.lang.String) throws org.apache.xmpbox.type.BadFieldValueException,public void merge(org.apache.xmpbox.schema.XMPSchema) throws java.io.IOException,public void removeUnqualifiedArrayValue(java.lang.String, org.apache.xmpbox.type.AbstractField) ,public void removeUnqualifiedBagValue(java.lang.String, java.lang.String) ,public void removeUnqualifiedSequenceDateValue(java.lang.String, java.util.Calendar) ,public void removeUnqualifiedSequenceValue(java.lang.String, java.lang.String) ,public void removeUnqualifiedSequenceValue(java.lang.String, org.apache.xmpbox.type.AbstractField) ,public void reorganizeAltOrder(org.apache.xmpbox.type.ComplexPropertyContainer) ,public void setAbout(org.apache.xmpbox.type.Attribute) throws org.apache.xmpbox.type.BadFieldValueException,public void setAboutAsSimple(java.lang.String) ,public void setBooleanProperty(org.apache.xmpbox.type.BooleanType) ,public void setBooleanPropertyValue(java.lang.String, java.lang.Boolean) ,public void setBooleanPropertyValueAsSimple(java.lang.String, java.lang.Boolean) ,public void setDateProperty(org.apache.xmpbox.type.DateType) ,public void setDatePropertyValue(java.lang.String, java.util.Calendar) ,public void setDatePropertyValueAsSimple(java.lang.String, java.util.Calendar) ,public void setIntegerProperty(org.apache.xmpbox.type.IntegerType) ,public void setIntegerPropertyValue(java.lang.String, java.lang.Integer) ,public void setIntegerPropertyValueAsSimple(java.lang.String, java.lang.Integer) ,public void setTextProperty(org.apache.xmpbox.type.TextType) ,public void setTextPropertyValue(java.lang.String, java.lang.String) ,public void setTextPropertyValueAsSimple(java.lang.String, java.lang.String) ,public void setUnqualifiedLanguagePropertyValue(java.lang.String, java.lang.String, java.lang.String) <variables>