org.apache.pdfbox.pdmodel.interactive.form

## Class PDNonTerminalField

- java.lang.Object
- - org.apache.pdfbox.pdmodel.interactive.form.PDField
  - - org.apache.pdfbox.pdmodel.interactive.form.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.

### Constructor Summary

Constructors
Constructor and Description
`PDNonTerminalField(PDAcroForm acroForm)` Constructor.

### Method Summary

All Methods Instance Methods Concrete Methods
`List<PDField>` `getChildren()` Returns this field's children.
`COSBase` `getDefaultValue()` Returns the default value of this field.
`int` `getFieldFlags()` This will get the flags for this field.
`String` `getFieldType()` Get the FT entry of the field.
`COSBase` `getValue()` Get the field value.
`String` `getValueAsString()` Returns a string representation of the "V" entry, or an empty string.
`List<PDAnnotationWidget>` `getWidgets()` Returns the widget annotations associated with this field.
`void` `setChildren(List<PDField> children)` Sets the child fields.
`void` `setDefaultValue(COSBase value)` Sets the default of this field.
`void` `setValue(COSBase object)` Sets the value of this field.
`void` `setValue(String value)` Sets the plain text value of this field.

### Methods inherited from class org.apache.pdfbox.pdmodel.interactive.form.PDField

`getAcroForm, getActions, getAlternateFieldName, getCOSObject, getFullyQualifiedName, getInheritableAttribute, getMappingName, getParent, getPartialName, isNoExport, isReadOnly, isRequired, setAlternateFieldName, setFieldFlags, setMappingName, setNoExport, setPartialName, setReadOnly, setRequired, toString`

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

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

### Constructor Detail

#### PDNonTerminalField

    public PDNonTerminalField(PDAcroForm acroForm)

Constructor.

Parameters:
  `acroForm` - The form that this field is part of.

### 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.

#### getChildren

    public 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(List<PDField> children)

Sets the child fields.

Parameters:
  `children` - The list of child fields.

#### getFieldType

    public 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 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 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:
  `IOException`

#### setValue

    public void setValue(String value)
                  throws IOException

Sets the plain text value of this field.

Specified by:
  `setValue` in class `PDField`
Parameters:
  `value` - Plain text
Throws:
  `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 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.