org.apache.pdfbox.util
Class PDFCloneUtility

java.lang.Object
  extended by org.apache.pdfbox.util.PDFCloneUtility

public class PDFCloneUtility
extends Object

Utility class used to clone PDF objects. It keeps track of objects it has already cloned.

Version:
$Revision$

Constructor Summary
PDFCloneUtility(PDDocument dest)
          Creates a new instance for the given target document.
 
Method Summary
 COSBase cloneForNewDocument(Object base)
          Deep-clones the given object for inclusion into a different PDF document identified by the destination parameter.
 void cloneMerge(COSObjectable base, COSObjectable target)
          Merges two objects of the same type by deep-cloning its members.
 PDDocument getDestination()
          Returns the destination PDF document this cloner instance is set up for.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PDFCloneUtility

public PDFCloneUtility(PDDocument dest)
Creates a new instance for the given target document.

Parameters:
dest - the destination PDF document that will receive the clones
Method Detail

getDestination

public PDDocument getDestination()
Returns the destination PDF document this cloner instance is set up for.

Returns:
the destination PDF document

cloneForNewDocument

public COSBase cloneForNewDocument(Object base)
                            throws IOException
Deep-clones the given object for inclusion into a different PDF document identified by the destination parameter.

Parameters:
base - the initial object as the root of the deep-clone operation
Returns:
the cloned instance of the base object
Throws:
IOException - if an I/O error occurs

cloneMerge

public void cloneMerge(COSObjectable base,
                       COSObjectable target)
                throws IOException
Merges two objects of the same type by deep-cloning its members.
Base and target must be instances of the same class.

Parameters:
base - the base object to be cloned
target - the merge target
Throws:
IOException - if an I/O error occurs