com.lowagie.rups.model
Class IndirectObjectFactory

java.lang.Object
  extended by com.lowagie.rups.model.IndirectObjectFactory

public class IndirectObjectFactory
extends Object

A factory that can produce all the indirect objects in a PDF file.


Field Summary
protected  int current
          The current xref number.
protected  IntHashtable idxToRef
          Mapping between the index in the objects list and the reference number in the xref table.
protected  int n
          The highest xref number.
protected  ArrayList<PdfObject> objects
          A list of all the indirect objects in a PDF file.
protected  PdfReader reader
          The reader object.
protected  IntHashtable refToIdx
          Mapping between the reference number in the xref table and the index in the objects list .
 
Constructor Summary
IndirectObjectFactory(PdfReader reader)
          Creates a list that will contain all the indirect objects in a PDF document.
 
Method Summary
 int getCurrent()
          Gets the last object that has been registered.
 int getIndexByRef(int ref)
          Gets the index of an object based on its number in the xref table.
 PdfObject getObjectByIndex(int i)
          Gets an object based on its index in the indirect object list.
 PdfObject getObjectByReference(int ref)
          Gets an object based on its reference number in the xref table.
 int getRefByIndex(int i)
          Gets the reference number in the xref table based on the index in the indirect object list.
 int getXRefMaximum()
          Gets the highest possible object number in the XRef table.
 PdfObject loadObjectByReference(int ref)
          Loads an object based on its reference number in the xref table.
 int size()
          Gets the total number of indirect objects in the PDF file.
private  void store(PdfObject object)
          If we store all the objects, we might run out of memory; that's why we'll only store the objects that are necessary to construct other objects (for instance the page table).
 boolean storeNextObject()
          Stores the next object of the XRef table.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

reader

protected PdfReader reader
The reader object.


current

protected int current
The current xref number.


n

protected int n
The highest xref number.


objects

protected ArrayList<PdfObject> objects
A list of all the indirect objects in a PDF file.


idxToRef

protected IntHashtable idxToRef
Mapping between the index in the objects list and the reference number in the xref table.


refToIdx

protected IntHashtable refToIdx
Mapping between the reference number in the xref table and the index in the objects list .

Constructor Detail

IndirectObjectFactory

public IndirectObjectFactory(PdfReader reader)
Creates a list that will contain all the indirect objects in a PDF document.

Parameters:
reader - the reader that will read the PDF document
Method Detail

getCurrent

public int getCurrent()
Gets the last object that has been registered. This method only makes sense while loading the factory. with loadNextObject().

Returns:
the number of the last object that was stored

getXRefMaximum

public int getXRefMaximum()
Gets the highest possible object number in the XRef table.

Returns:
an object number

storeNextObject

public boolean storeNextObject()
Stores the next object of the XRef table. As soon as this method returns false, it makes no longer sense calling it as all the objects have been stored.

Returns:
false if there are no objects left to check.

store

private void store(PdfObject object)
If we store all the objects, we might run out of memory; that's why we'll only store the objects that are necessary to construct other objects (for instance the page table).

Parameters:
object - an object we might want to store

size

public int size()
Gets the total number of indirect objects in the PDF file. This isn't necessarily the same number as returned by getXRefMaximum(). The PDF specification allows gaps between object numbers.

Returns:
the total number of indirect objects in the PDF.

getIndexByRef

public int getIndexByRef(int ref)
Gets the index of an object based on its number in the xref table.

Parameters:
ref - a number in the xref table
Returns:
the index in the list of indirect objects

getRefByIndex

public int getRefByIndex(int i)
Gets the reference number in the xref table based on the index in the indirect object list.

Parameters:
i - the index of an object in the indirect object list
Returns:
the corresponding reference number in the xref table

getObjectByIndex

public PdfObject getObjectByIndex(int i)
Gets an object based on its index in the indirect object list.

Parameters:
i - an index in the indirect object list
Returns:
a PDF object

getObjectByReference

public PdfObject getObjectByReference(int ref)
Gets an object based on its reference number in the xref table.

Parameters:
ref - a number in the xref table
Returns:
a PDF object

loadObjectByReference

public PdfObject loadObjectByReference(int ref)
Loads an object based on its reference number in the xref table.

Parameters:
ref - a reference number in the xref table.
Returns:
a PDF object

Hosted by Hostbasket