Class SegmentHeader
java.lang.Object
org.apache.pdfbox.jbig2.SegmentHeader
The basic class for all JBIG2 segments.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate intprivate byteprivate byteprivate SegmentHeader[]private static final Map<Integer, Class<? extends SegmentData>> private Reference<SegmentData> private longprivate longprivate longprivate intprivate intprivate final SubInputStream -
Constructor Summary
ConstructorsConstructorDescriptionSegmentHeader(JBIG2Document document, SubInputStream sis, long offset, int organisationType) -
Method Summary
Modifier and TypeMethodDescriptionvoidCreates and returns a newSubInputStreamthat provides the data part of this segment.intshortRetrieves the segments' data part.longlonglongintintprivate voidparse(JBIG2Document document, ImageInputStream subInputStream, long offset, int organisationType) private intreadAmountOfReferredToSegments(ImageInputStream subInputStream) 7.2.4 Amount of referred-to segmentsprivate voidreadDataStartOffset(ImageInputStream subInputStream, int organisationType) Sets the offset only if organization type is SEQUENTIAL.private int[]readReferredToSegmentsNumbers(ImageInputStream subInputStream, int countOfRTS) 7.2.5 Referred-to segments numbersprivate voidreadSegmentDataLength(ImageInputStream subInputStream) 7.2.7 Segment data lengthprivate voidreadSegmentHeaderFlag(ImageInputStream subInputStream) 7.2.3 Segment header flagsprivate voidreadSegmentHeaderLength(ImageInputStream subInputStream, long offset) private voidreadSegmentNumber(ImageInputStream subInputStream) 7.2.2 Segment numberprivate voidreadSegmentPageAssociation(JBIG2Document document, ImageInputStream subInputStream, int countOfRTS, int[] rtsNumbers) 7.2.6 Segment page associationvoidsetSegmentDataStartOffset(long segmentDataStartOffset) toString()
-
Field Details
-
SEGMENT_TYPE_MAP
-
segmentNr
private int segmentNr -
segmentType
private int segmentType -
retainFlag
private byte retainFlag -
pageAssociation
private int pageAssociation -
pageAssociationFieldSize
private byte pageAssociationFieldSize -
rtSegments
-
segmentHeaderLength
private long segmentHeaderLength -
segmentDataLength
private long segmentDataLength -
segmentDataStartOffset
private long segmentDataStartOffset -
subInputStream
-
segmentData
-
-
Constructor Details
-
SegmentHeader
public SegmentHeader(JBIG2Document document, SubInputStream sis, long offset, int organisationType) throws IOException - Throws:
IOException
-
-
Method Details
-
parse
private void parse(JBIG2Document document, ImageInputStream subInputStream, long offset, int organisationType) throws IOException - Parameters:
document-subInputStream-offset- - The offset where the segment header startsorganisationType-- Throws:
IOException
-
readSegmentNumber
7.2.2 Segment number- Parameters:
subInputStream-- Throws:
IOException
-
readSegmentHeaderFlag
7.2.3 Segment header flags- Parameters:
subInputStream-- Throws:
IOException
-
readAmountOfReferredToSegments
7.2.4 Amount of referred-to segments- Parameters:
subInputStream-- Returns:
- The amount of referred-to segments.
- Throws:
IOException
-
readReferredToSegmentsNumbers
private int[] readReferredToSegmentsNumbers(ImageInputStream subInputStream, int countOfRTS) throws IOException 7.2.5 Referred-to segments numbersGathers all segment numbers of referred-to segments. The segments itself are stored in the
rtSegmentsarray.- Parameters:
subInputStream- - Wrapped source data input stream.countOfRTS- - The amount of referred-to segments.- Returns:
- An array with the segment number of all referred-to segments.
- Throws:
IOException
-
readSegmentPageAssociation
private void readSegmentPageAssociation(JBIG2Document document, ImageInputStream subInputStream, int countOfRTS, int[] rtsNumbers) throws IOException 7.2.6 Segment page association- Parameters:
document-subInputStream-countOfRTS-rtsNumbers-- Throws:
IOException
-
readSegmentDataLength
7.2.7 Segment data lengthContains the length of the data part in bytes.
- Parameters:
subInputStream-- Throws:
IOException
-
readDataStartOffset
private void readDataStartOffset(ImageInputStream subInputStream, int organisationType) throws IOException Sets the offset only if organization type is SEQUENTIAL. If random, data starts after segment headers and can be determined when all segment headers are parsed and allocated.- Parameters:
subInputStream-organisationType-- Throws:
IOException
-
readSegmentHeaderLength
private void readSegmentHeaderLength(ImageInputStream subInputStream, long offset) throws IOException - Throws:
IOException
-
getSegmentNr
public int getSegmentNr() -
getSegmentType
public int getSegmentType() -
getSegmentHeaderLength
public long getSegmentHeaderLength() -
getSegmentDataLength
public long getSegmentDataLength() -
getSegmentDataStartOffset
public long getSegmentDataStartOffset() -
setSegmentDataStartOffset
public void setSegmentDataStartOffset(long segmentDataStartOffset) -
getRtSegments
-
getPageAssociation
public int getPageAssociation() -
getRetainFlag
public short getRetainFlag() -
getDataInputStream
Creates and returns a newSubInputStreamthat provides the data part of this segment. It is a clipped view of the source input stream.- Returns:
- The
SubInputStreamthat represents the data part of the segment.
-
getSegmentData
Retrieves the segments' data part.- Returns:
- Retrieved
SegmentDatainstance.
-
cleanSegmentData
public void cleanSegmentData() -
toString
-