Class PDNonTerminalField

  • All Implemented Interfaces:
    COSObjectable

    public class PDNonTerminalField
    extends PDField
    A non terminal field in an interactive form. A non terminal field is a node in the fields tree node whose descendants are fields. The attributes such as FT (field type) or V (field value) do not logically belong to the non terminal field but are inheritable attributes for descendant terminal fields.
    • Field Detail

      • LOG

        private static final org.apache.commons.logging.Log LOG
    • Constructor Detail

      • PDNonTerminalField

        public PDNonTerminalField​(PDAcroForm acroForm)
        Constructor.
        Parameters:
        acroForm - The form that this field is part of.
      • PDNonTerminalField

        PDNonTerminalField​(PDAcroForm acroForm,
                           COSDictionary field,
                           PDNonTerminalField parent)
        Constructor.
        Parameters:
        acroForm - The form that this field is part of.
        field - the PDF object to represent as a field.
        parent - the parent node of the node to be created
    • Method Detail

      • getFieldFlags

        public int getFieldFlags()
        Description copied from class: PDField
        This will get the flags for this field.
        Specified by:
        getFieldFlags in class PDField
        Returns:
        flags The set of flags.
      • importFDF

        void importFDF​(FDFField fdfField)
                throws java.io.IOException
        Description copied from class: PDField
        This will import a fdf field from a fdf document.
        Overrides:
        importFDF in class PDField
        Parameters:
        fdfField - The fdf field to import.
        Throws:
        java.io.IOException - If there is an error importing the data for this field.
      • exportFDF

        FDFField exportFDF()
                    throws java.io.IOException
        Description copied from class: PDField
        Exports this field and its children as FDF.
        Specified by:
        exportFDF in class PDField
        Throws:
        java.io.IOException
      • getChildren

        public java.util.List<PDField> getChildren()
        Returns this field's children. These may be either terminal or non-terminal fields.
        Returns:
        the list of child fields. Be aware that this list is not backed by the children of the field, so adding or deleting has no effect on the PDF document until you call setChildren() with the modified list.
      • setChildren

        public void setChildren​(java.util.List<PDField> children)
        Sets the child fields.
        Parameters:
        children - The list of child fields.
      • getFieldType

        public java.lang.String getFieldType()
        Get the FT entry of the field. This is a read only field and is set depending on the actual type. The field type is an inheritable attribute.

        Note: while non-terminal fields do inherit field values, this method returns the local value, without inheritance.

        Specified by:
        getFieldType in class PDField
        Returns:
        The Field type.
      • getValue

        public COSBase getValue()
        Get the field value.

        Note: while non-terminal fields do inherit field values, this method returns the local value, without inheritance.

      • getValueAsString

        public java.lang.String getValueAsString()
        Returns a string representation of the "V" entry, or an empty string.

        Note: while non-terminal fields do inherit field values, this method returns the local value, without inheritance.

        Specified by:
        getValueAsString in class PDField
        Returns:
        The list of widget annotations.
      • setValue

        public void setValue​(COSBase object)
                      throws java.io.IOException
        Sets the value of this field. This may be of any kind which is valid for this field's children.

        Note: while non-terminal fields do inherit field values, this method returns the local value, without inheritance.

        Parameters:
        object -
        Throws:
        java.io.IOException
      • setValue

        public void setValue​(java.lang.String value)
                      throws java.io.IOException
        Sets the plain text value of this field.
        Specified by:
        setValue in class PDField
        Parameters:
        value - Plain text
        Throws:
        java.io.IOException - if the value could not be set
      • getDefaultValue

        public COSBase getDefaultValue()
        Returns the default value of this field. This may be of any kind which is valid for this field's children.

        Note: while non-terminal fields do inherit field values, this method returns the local value, without inheritance.

      • setDefaultValue

        public void setDefaultValue​(COSBase value)
        Sets the default of this field. This may be of any kind which is valid for this field's children.

        Note: while non-terminal fields do inherit field values, this method returns the local value, without inheritance.

        Parameters:
        value -
      • getWidgets

        public java.util.List<PDAnnotationWidget> getWidgets()
        Description copied from class: PDField
        Returns the widget annotations associated with this field. For PDNonTerminalField the list will be empty as non terminal fields have no visual representation in the form.
        Specified by:
        getWidgets in class PDField
        Returns:
        a List of PDAnnotationWidget annotations. Be aware that this list is not backed by the actual widget collection of the field, so adding or deleting has no effect on the PDF document. For PDTerminalField you'd have to call setWidgets() with the modified list.