org.apache.pdfbox.pdmodel.interactive.form

## Class PDField

- java.lang.Object
- - org.apache.pdfbox.pdmodel.interactive.form.PDField

All Implemented Interfaces:
  COSObjectable

Direct Known Subclasses:
  PDNonTerminalField, PDTerminalField

    public abstract class PDField
    extends Object
    implements COSObjectable

A field in an interactive form.

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`PDAcroForm` `getAcroForm()` This will get the acroform that this field is part of.
`PDFormFieldAdditionalActions` `getActions()` Get the additional actions for this field.
`String` `getAlternateFieldName()` Gets the alternate name of the field ("shall be used in place of the actual field name wherever the field shall be identified in the user interface (such as in error or status messages referring to the field)").
`COSDictionary` `getCOSObject()` This will get the dictionary associated with this field.
`abstract int` `getFieldFlags()` This will get the flags for this field.
`abstract String` `getFieldType()` Get the FT entry of the field.
`String` `getFullyQualifiedName()` Returns the fully qualified name of the field, which is a concatenation of the names of all the parents fields.
`protected COSBase` `getInheritableAttribute(COSName key)` Returns the given attribute, inheriting from parent nodes if necessary.
`String` `getMappingName()` Gets the mapping name of the field.
`PDNonTerminalField` `getParent()` Get the parent field to this field, or null if none exists.
`String` `getPartialName()` Returns the partial name of the field.
`abstract String` `getValueAsString()` Returns a string representation of the "V" entry, or an empty string.
`abstract List<PDAnnotationWidget>` `getWidgets()` Returns the widget annotations associated with this field.
`boolean` `isNoExport()`
`boolean` `isReadOnly()`
`boolean` `isRequired()`
`void` `setAlternateFieldName(String alternateFieldName)` This will set the alternate name of the field ("shall be used in place of the actual field name wherever the field shall be identified in the user interface (such as in error or status messages referring to the field)").
`void` `setFieldFlags(int flags)` This will set the flags for this field.
`void` `setMappingName(String mappingName)` This will set the mapping name of the field.
`void` `setNoExport(boolean noExport)` sets the field to be not exported.
`void` `setPartialName(String name)` This will set the partial name of the field.
`void` `setReadOnly(boolean readonly)` sets the field to be read-only.
`void` `setRequired(boolean required)` sets the flag whether the field is to be required to have a value at the time it is exported by a submit-form action.
`abstract void` `setValue(String value)` Sets the value of the field.
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Method Detail

#### getInheritableAttribute

    protected COSBase getInheritableAttribute(COSName key)

Returns the given attribute, inheriting from parent nodes if necessary.

Parameters:
  `key` - the key to look up
Returns:
  COS value for the given key

#### getFieldType

    public abstract 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.

Returns:
  The Field type.

#### getValueAsString

    public abstract String getValueAsString()

Returns a string representation of the "V" entry, or an empty string.

Returns:
  The list of widget annotations.

#### setValue

    public abstract void setValue(String value)
                           throws IOException

Sets the value of the field.

Parameters:
  `value` - the new field value.
Throws:
  `IOException` - if the value could not be set

#### getWidgets

    public abstract List<PDAnnotationWidget> getWidgets()

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.

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.

#### setReadOnly

    public void setReadOnly(boolean readonly)

sets the field to be read-only.

Parameters:
  `readonly` - The new flag for readonly.

#### isReadOnly

    public boolean isReadOnly()

Returns:
  true if the field is readonly

#### setRequired

    public void setRequired(boolean required)

sets the flag whether the field is to be required to have a value at the time it is exported by a submit-form action.

Parameters:
  `required` - The new flag for required.

#### isRequired

    public boolean isRequired()

Returns:
  true if the field is required to have a value at the time it is exported by a submit-form action.

#### setNoExport

    public void setNoExport(boolean noExport)

sets the field to be not exported.

Parameters:
  `noExport` - The new flag for noExport.

#### isNoExport

    public boolean isNoExport()

Returns:
  true if the field is not to be exported.

#### getFieldFlags

    public abstract int getFieldFlags()

This will get the flags for this field.

Returns:
  flags The set of flags.

#### setFieldFlags

    public void setFieldFlags(int flags)

This will set the flags for this field.

Parameters:
  `flags` - The new flags.

#### getActions

    public PDFormFieldAdditionalActions getActions()

Get the additional actions for this field. This will return null if there are no additional actions for this field.

Returns:
  The actions of the field.

#### getParent

    public PDNonTerminalField getParent()

Get the parent field to this field, or null if none exists.

Returns:
  The parent field.

#### getAcroForm

    public PDAcroForm getAcroForm()

This will get the acroform that this field is part of.

Returns:
  The form this field is on.

#### getCOSObject

    public COSDictionary getCOSObject()

This will get the dictionary associated with this field.

Specified by:
  `getCOSObject` in interface `COSObjectable`
Returns:
  the dictionary that this class wraps.

#### getPartialName

    public String getPartialName()

Returns the partial name of the field.

Returns:
  the name of the field

#### setPartialName

    public void setPartialName(String name)

This will set the partial name of the field.

Parameters:
  `name` - The new name for the field.
Throws:
  `IllegalArgumentException` - If the name contains a period character.

#### getFullyQualifiedName

    public String getFullyQualifiedName()

Returns the fully qualified name of the field, which is a concatenation of the names of all the parents fields.

Returns:
  the name of the field

#### getAlternateFieldName

    public String getAlternateFieldName()

Gets the alternate name of the field ("shall be used in place of the actual field name wherever the field shall be identified in the user interface (such as in error or status messages referring to the field)").

Returns:
  the alternate name of the field

#### setAlternateFieldName

    public void setAlternateFieldName(String alternateFieldName)

This will set the alternate name of the field ("shall be used in place of the actual field name wherever the field shall be identified in the user interface (such as in error or status messages referring to the field)"). The text appears as a tool tip in Adobe Reader. Because of the usage for error or status messages, it should be different for each field.

Parameters:
  `alternateFieldName` - the alternate name of the field.

#### getMappingName

    public String getMappingName()

Gets the mapping name of the field. The mapping name shall be used when exporting interactive form field data from the document.

Returns:
  the mapping name of the field

#### setMappingName

    public void setMappingName(String mappingName)

This will set the mapping name of the field.

Parameters:
  `mappingName` - the mapping name of the field

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`