DixShtix

com.dixshtix.niff
Class Parser

java.lang.Object
  |
  +--com.dixshtix.niff.Parser
All Implemented Interfaces:
NiffParserListener

public class Parser
extends java.lang.Object
implements NiffParserListener

Parse chunk information from a niff file.


Inner Class Summary
static class Parser.DefaultContext
          A simple modal class for keeping track of parser state.
 
Field Summary
protected  NiffParserContext context
           
protected  InStream in
          RIFF input stream.
protected  NiffParserListener listener
           
 
Constructor Summary
Parser(java.io.InputStream io)
          Very Easy constructor.
Parser(java.io.InputStream io, NiffParserContext context)
          Easy constructor.
Parser(InStream riff, NiffParserContext context)
          Expert constructor.
 
Method Summary
 void beginContainerChunk(FourByteConstant containerType, FourByteConstant chunkType, NiffParserContext context)
           
 void beginMiscChunk(java.lang.String chunkType, NiffParserContext context)
           
 void beginNiffChunk(FourByteConstant chunkType, int expectedLength, NiffParserContext context)
           
 void beginNiffTag(byte tagID, NiffParserContext context)
           
 void beginRiffChunk(FourByteConstant chunkType, NiffParserContext context)
           
 void byteAttribute(java.lang.String attribute, int value, NiffParserContext context)
           
 void dataBytes(byte[] data, int offset, int length, NiffParserContext context)
           
 void endContainerChunk(FourByteConstant containerType, FourByteConstant chunkType, NiffParserContext context)
           
 void endMiscChunk(java.lang.String chunkType, NiffParserContext context)
           
 void endNiffChunk(FourByteConstant chunkType, NiffParserContext context)
           
 void endNiffTag(byte tagID, NiffParserContext context)
           
 void endRiffChunk(FourByteConstant chunkType, NiffParserContext context)
           
 void fillMiscChunk(java.lang.String chunkType, NiffParserContext context)
           
 void fillNiffChunk(FourByteConstant chunkType, NiffParserContext context)
           
 void fillNiffTag(byte tagID, NiffParserContext context)
           
 void fillRiffChunk(FourByteConstant chunkType, NiffParserContext context)
           
 void fontidxAttribute(java.lang.String attribute, int value, NiffParserContext context)
           
 void fourccAttribute(java.lang.String attribute, FourByteConstant value, NiffParserContext context)
           
 void longAttribute(java.lang.String attribute, int value, NiffParserContext context)
           
 void parse()
          Main routine for opening a NIFF file and dumping schematic of contents to the out;
(package private)  void parseKnownChunk(InStream prf, IOChunk chunk)
          Print Chunk and then descend recursively into the NIFF file hierarchy.
protected  int parseNiffChunk(FourByteConstant fcc, byte[] data, int offset, int length)
           
protected  int parseNiffTag(byte[] data, int offset)
          Parse NIFF tag data into a series of events.
protected  int parseRiffChunk(FourByteConstant fcc, byte[] data, int offset, int length)
           
(package private)  void parseTastedChunk(InStream prf, FourByteConstant fcc)
          Descend into the NIFF file hierarchy, recursively parsing chunks.
(package private)  void parseUnknownChunk(InStream prf)
          Descend into the NIFF file hierarchy, recursively parsing chunks.
 void rationalAttribute(java.lang.String attribute, int top, int bottom, NiffParserContext context)
           
 void setListener(NiffParserListener listener)
           
 void shortAttribute(java.lang.String attribute, int value, NiffParserContext context)
           
 void signedbyteAttribute(java.lang.String attribute, byte value, NiffParserContext context)
           
 void stringAttribute(java.lang.String attribute, java.lang.String value, NiffParserContext context)
           
 void stroffsetAttribute(java.lang.String attribute, int value, NiffParserContext context)
           
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

in

protected InStream in
RIFF input stream.

context

protected NiffParserContext context

listener

protected NiffParserListener listener
Constructor Detail

Parser

public Parser(InStream riff,
              NiffParserContext context)
Expert constructor.

Parser

public Parser(java.io.InputStream io,
              NiffParserContext context)
Easy constructor.

Parser

public Parser(java.io.InputStream io)
Very Easy constructor.
Method Detail

setListener

public void setListener(NiffParserListener listener)

beginContainerChunk

public void beginContainerChunk(FourByteConstant containerType,
                                FourByteConstant chunkType,
                                NiffParserContext context)
Specified by:
beginContainerChunk in interface NiffParserListener

beginMiscChunk

public void beginMiscChunk(java.lang.String chunkType,
                           NiffParserContext context)
Specified by:
beginMiscChunk in interface NiffParserListener

beginNiffChunk

public void beginNiffChunk(FourByteConstant chunkType,
                           int expectedLength,
                           NiffParserContext context)
Specified by:
beginNiffChunk in interface NiffParserListener

beginNiffTag

public void beginNiffTag(byte tagID,
                         NiffParserContext context)
Specified by:
beginNiffTag in interface NiffParserListener

beginRiffChunk

public void beginRiffChunk(FourByteConstant chunkType,
                           NiffParserContext context)
Specified by:
beginRiffChunk in interface NiffParserListener

byteAttribute

public void byteAttribute(java.lang.String attribute,
                          int value,
                          NiffParserContext context)
Specified by:
byteAttribute in interface NiffParserListener

dataBytes

public void dataBytes(byte[] data,
                      int offset,
                      int length,
                      NiffParserContext context)
Specified by:
dataBytes in interface NiffParserListener

endContainerChunk

public void endContainerChunk(FourByteConstant containerType,
                              FourByteConstant chunkType,
                              NiffParserContext context)
Specified by:
endContainerChunk in interface NiffParserListener

endMiscChunk

public void endMiscChunk(java.lang.String chunkType,
                         NiffParserContext context)
Specified by:
endMiscChunk in interface NiffParserListener

endNiffChunk

public void endNiffChunk(FourByteConstant chunkType,
                         NiffParserContext context)
Specified by:
endNiffChunk in interface NiffParserListener

endNiffTag

public void endNiffTag(byte tagID,
                       NiffParserContext context)
Specified by:
endNiffTag in interface NiffParserListener

endRiffChunk

public void endRiffChunk(FourByteConstant chunkType,
                         NiffParserContext context)
Specified by:
endRiffChunk in interface NiffParserListener

fillMiscChunk

public void fillMiscChunk(java.lang.String chunkType,
                          NiffParserContext context)
Specified by:
fillMiscChunk in interface NiffParserListener

fillNiffChunk

public void fillNiffChunk(FourByteConstant chunkType,
                          NiffParserContext context)
Specified by:
fillNiffChunk in interface NiffParserListener

fillNiffTag

public void fillNiffTag(byte tagID,
                        NiffParserContext context)
Specified by:
fillNiffTag in interface NiffParserListener

fillRiffChunk

public void fillRiffChunk(FourByteConstant chunkType,
                          NiffParserContext context)
Specified by:
fillRiffChunk in interface NiffParserListener

fontidxAttribute

public void fontidxAttribute(java.lang.String attribute,
                             int value,
                             NiffParserContext context)
Specified by:
fontidxAttribute in interface NiffParserListener

fourccAttribute

public void fourccAttribute(java.lang.String attribute,
                            FourByteConstant value,
                            NiffParserContext context)
Specified by:
fourccAttribute in interface NiffParserListener

longAttribute

public void longAttribute(java.lang.String attribute,
                          int value,
                          NiffParserContext context)
Specified by:
longAttribute in interface NiffParserListener

rationalAttribute

public void rationalAttribute(java.lang.String attribute,
                              int top,
                              int bottom,
                              NiffParserContext context)
Specified by:
rationalAttribute in interface NiffParserListener

shortAttribute

public void shortAttribute(java.lang.String attribute,
                           int value,
                           NiffParserContext context)
Specified by:
shortAttribute in interface NiffParserListener

signedbyteAttribute

public void signedbyteAttribute(java.lang.String attribute,
                                byte value,
                                NiffParserContext context)
Specified by:
signedbyteAttribute in interface NiffParserListener

stringAttribute

public void stringAttribute(java.lang.String attribute,
                            java.lang.String value,
                            NiffParserContext context)
Specified by:
stringAttribute in interface NiffParserListener

stroffsetAttribute

public void stroffsetAttribute(java.lang.String attribute,
                               int value,
                               NiffParserContext context)
Specified by:
stroffsetAttribute in interface NiffParserListener

parseNiffTag

protected int parseNiffTag(byte[] data,
                           int offset)
Parse NIFF tag data into a series of events.
Parameters:
data - A buffer containing the whole of the NIFF tag.
offset - A 0-based index indicating the begining of the tag.
Returns:
The offset of the first byte after the tag.

parseNiffChunk

protected int parseNiffChunk(FourByteConstant fcc,
                             byte[] data,
                             int offset,
                             int length)

parseRiffChunk

protected int parseRiffChunk(FourByteConstant fcc,
                             byte[] data,
                             int offset,
                             int length)

parseKnownChunk

void parseKnownChunk(InStream prf,
                     IOChunk chunk)
Print Chunk and then descend recursively into the NIFF file hierarchy.
Parameters:
prf - An input stream of NIFF data.
chunk - The enclosing chunk, yet to be parsed.

parseUnknownChunk

void parseUnknownChunk(InStream prf)
Descend into the NIFF file hierarchy, recursively parsing chunks.
Parameters:
prf - An input stream of NIFF data, positioned just prior to a chunk.

parseTastedChunk

void parseTastedChunk(InStream prf,
                      FourByteConstant fcc)
Descend into the NIFF file hierarchy, recursively parsing chunks.
Parameters:
prf - An input stream of NIFF data, where fcc has already been read.
fcc - The first four bytes of the current NIFF chunk.

parse

public void parse()
Main routine for opening a NIFF file and dumping schematic of contents to the out;

DixShtix