package org.hccp.pdf; public class IndirectObject implements DocumentObject { private int objectIdentifier; private int generationNumber; DocumentObject value; public IndirectObjectReference getIndirectObjectReference() { return new IndirectObjectReference(new Numeric(objectIdentifier), new Numeric(generationNumber)); } public Numeric getObjectIdentifier() { return new Numeric(objectIdentifier); } public Numeric getGenerationNumber() { return new Numeric(generationNumber); } public IndirectObject(int objectIdentifier, int generationNumber, DocumentObject value) { this.objectIdentifier = objectIdentifier; this.generationNumber = generationNumber; this.value = value; } public IndirectObject(int objectIdentifier, int generationNumber) { this.objectIdentifier = objectIdentifier; this.generationNumber = generationNumber; value = new Null(); } public void setValue(DocumentObject value) { this.value = value; } public String getValue() { StringBuffer sb = new StringBuffer(); sb.append(objectIdentifier); sb.append(" "); sb.append(generationNumber); sb.append(" obj\n"); sb.append(value.getValue()); sb.append("\nendobj\n"); return sb.toString(); } public String getSize() { return getValue().getBytes().length + ""; } }