//
// Android PDF Writer
// http://coderesearchlabs.com/androidpdfwriter
//
// by Javier Santo Domingo (j-a-s-d@coderesearchlabs.com)
//
package totalcross.util.pdf;
import totalcross.sys.*;
public class CrossReferenceTable extends List
{
private int mObjectNumberStart;
public CrossReferenceTable()
{
super();
clear();
}
public void setObjectNumberStart(int Value)
{
mObjectNumberStart = Value;
}
public int getObjectNumberStart()
{
return mObjectNumberStart;
}
private String getObjectsXRefInfo()
{
return renderList();
}
public void addObjectXRefInfo(int ByteOffset, int Generation, boolean InUse)
{
StringBuilder sb = new StringBuilder();
sb.append(Convert.zeroPad(ByteOffset,10));
sb.append(" ");
sb.append(Convert.zeroPad(5, Generation));
if (InUse)
{
sb.append(" n ");
}
else
{
sb.append(" f ");
}
sb.append("\r\n");
mList.add(sb.toString());
}
private String render()
{
StringBuilder sb = new StringBuilder();
sb.append("xref");
sb.append("\r\n");
sb.append(mObjectNumberStart);
sb.append(" ");
sb.append(mList.size());
sb.append("\r\n");
sb.append(getObjectsXRefInfo());
return sb.toString();
}
public String toPDFString()
{
return render();
}
public void clear()
{
super.clear();
addObjectXRefInfo(0, 65536, false); // free objects linked list head
mObjectNumberStart = 0;
}
}