org.apache.fop.pdf

## Class VersionController

- java.lang.Object
- - org.apache.fop.pdf.VersionController

    public abstract class VersionController
    extends Object

An abstraction that controls the mutability of the PDF version for a document.

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`static VersionController` `getDynamicVersionController(Version initialVersion, PDFDocument doc)` Returns a controller that allows subsequent changes to the document's version.
`static VersionController` `getFixedVersionController(Version version)` Returns a controller that disallows subsequent change to the document's version.
`Version` `getPDFVersion()` Returns the PDF version of the document.
`abstract void` `setPDFVersion(Version version)` Sets the PDF version of the document.
`String` `toString()`

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

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

### Method Detail

#### getPDFVersion

    public Version getPDFVersion()

Returns the PDF version of the document.

Returns:
  the PDF version

#### setPDFVersion

    public abstract void setPDFVersion(Version version)

Sets the PDF version of the document.

Parameters:
  `version` - the PDF version
Throws:
  `IllegalStateException` - if the PDF version is not allowed to change.

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### getFixedVersionController

    public static VersionController getFixedVersionController(Version version)

Returns a controller that disallows subsequent change to the document's version. The minimum allowed version is v1.4.

Parameters:
  `version` - the PDF version (must be >= v1.4)
Returns:
  the fixed PDF version controller

#### getDynamicVersionController

    public static VersionController getDynamicVersionController(Version initialVersion,
                                                                PDFDocument doc)

Returns a controller that allows subsequent changes to the document's version.

Parameters:
  `initialVersion` - the initial PDF version
  `doc` - the document whose version is being set
Returns:
  the dynamic PDF version controller