edu.harvard.hul.ois.jhove.module.jpeg2000
Class CrossRefBox

java.lang.Object
  extended by edu.harvard.hul.ois.jhove.module.jpeg2000.BoxHolder
      extended by edu.harvard.hul.ois.jhove.module.jpeg2000.JP2Box
          extended by edu.harvard.hul.ois.jhove.module.jpeg2000.CrossRefBox
All Implemented Interfaces:
java.util.Iterator<java.lang.Object>

public class CrossRefBox
extends JP2Box

Cross Reference Box (JPX). A Cross Reference Box may be found in a Codestream Header, Compositing Layer Header, or Association box. When it is encountered, the box to which it refers should be substituted for the Cross Reference Box. Interesting features of the box are that it isn't all in one place, but is scattered through multiple locations by a fragment list, and it doesn't follow standard superbox rules. See ISO/IEC FCD15444-2: 2000, L.9.7

Author:
Gary McGath

Field Summary
 
Fields inherited from class edu.harvard.hul.ois.jhove.module.jpeg2000.JP2Box
_bytesRead, associations, DESCRIPTION_NAME, noJP2Hdr, startBytesRead
 
Fields inherited from class edu.harvard.hul.ois.jhove.module.jpeg2000.BoxHolder
_boxHeader, _dstrm, _module, _parentBox, _raf, _repInfo, bytesLeft, filePos, hasBoxes
 
Constructor Summary
CrossRefBox(java.io.RandomAccessFile raf, BoxHolder parent)
          Constructor with superbox.
 
Method Summary
 java.io.DataInputStream getCrossRefStream()
          Returns a DataInputStream based on a FragmentInputStream so that the fragments can be read as a single entity.
protected  java.lang.String getSelfPropName()
          Returns the name of the Box.
 boolean readBox()
          Reads the box, putting appropriate information in the RepInfo object.
 
Methods inherited from class edu.harvard.hul.ois.jhove.module.jpeg2000.JP2Box
addAssociation, boxMaker, emptyBox, finalizeBytesRead, getBytesRead, getLength, getSelfPropDesc, init, initBytesRead, makeAssocProperty, selfDescProperty, setBoxHeader, setDataInputStream, setModule, setRandomAccessFile, setRepInfo, skipBox, wrongBoxContext, wrongBoxSize
 
Methods inherited from class edu.harvard.hul.ois.jhove.module.jpeg2000.BoxHolder
getFilePos, hasNext, next, remove, superboxOverrun, superboxUnderrun
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CrossRefBox

public CrossRefBox(java.io.RandomAccessFile raf,
                   BoxHolder parent)
Constructor with superbox.

Parameters:
parent - parent superbox of this box or TopLevelBoxHolder
Method Detail

readBox

public boolean readBox()
                throws java.io.IOException
Reads the box, putting appropriate information in the RepInfo object. setModule, setBoxHeader, setRepInfo and setDataInputStream must be called before readBox is called. readBox must completely consume the box, so that the next byte to be read by the DataInputStream is the FF byte of the next Box.

Specified by:
readBox in class JP2Box
Throws:
java.io.IOException

getCrossRefStream

public java.io.DataInputStream getCrossRefStream()
Returns a DataInputStream based on a FragmentInputStream so that the fragments can be read as a single entity.


getSelfPropName

protected java.lang.String getSelfPropName()
Returns the name of the Box.

Overrides:
getSelfPropName in class JP2Box