org.apache.pdfbox.pdfwriter.COSWriterXRefEntry Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pdfbox Show documentation
Show all versions of pdfbox Show documentation
The Apache PDFBox library is an open source Java tool for working with PDF documents.
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.pdfbox.pdfwriter;
import org.apache.pdfbox.cos.COSObjectKey;
import org.apache.pdfbox.cos.COSBase;
/**
* this is en entry in the xref section of the physical pdf document
* generated by the COSWriter.
*
* @author Michael Traut
*/
public class COSWriterXRefEntry implements Comparable
{
private long offset;
private COSBase object;
private COSObjectKey key;
private boolean free = false;
private static final COSWriterXRefEntry NULLENTRY;
static
{
NULLENTRY = new COSWriterXRefEntry(0, null, new COSObjectKey(0, 65535));
NULLENTRY.setFree(true);
}
/**
* {@inheritDoc}
*/
@Override
public int compareTo(COSWriterXRefEntry obj)
{
if (obj != null)
{
if (getKey().getNumber() < obj.getKey().getNumber())
{
return -1;
}
else if (getKey().getNumber() > obj.getKey().getNumber())
{
return 1;
}
return 0;
}
return -1;
}
/**
* This will return a null entry: 0000000000 65535 f.
*
* @return null COSWriterXRefEntry
*/
public static COSWriterXRefEntry getNullEntry()
{
return NULLENTRY;
}
/**
* This will get the Object key.
*
* @return The object key.
*/
public COSObjectKey getKey()
{
return key;
}
/**
* This will get the offset into the document.
*
* @return The offset into the document.
*/
public long getOffset()
{
return offset;
}
/**
* Gets the xref 'free' attribute.
*
* @return The free attribute.
*/
public boolean isFree()
{
return free;
}
/**
* This will set the free attribute.
*
* @param newFree The newly freed attribute.
*/
public void setFree(boolean newFree)
{
free = newFree;
}
/**
* This will set the object key.
*
* @param newKey The new object key.
*/
private void setKey(COSObjectKey newKey)
{
key = newKey;
}
/**
* The offset attribute.
*
* @param newOffset The new value for the offset.
*/
public final void setOffset(long newOffset)
{
offset = newOffset;
}
/**
* COSWriterXRefEntry constructor comment.
*
* @param start The start attribute.
* @param obj The COS object that this entry represents.
* @param keyValue The key to the COS object.
*/
public COSWriterXRefEntry(long start, COSBase obj, COSObjectKey keyValue)
{
super();
setOffset(start);
setObject(obj);
setKey(keyValue);
}
/**
* This will get the object.
*
* @return The object.
*/
public COSBase getObject()
{
return object;
}
/**
* This will set the object for this xref.
*
* @param newObject The object that is being set.
*/
private void setObject(COSBase newObject)
{
object = newObject;
}
}