org.jaudiotagger.audio.asf.io
Class ChunkHeaderReader

java.lang.Object
  extended by org.jaudiotagger.audio.asf.io.ChunkHeaderReader
All Implemented Interfaces:
ChunkReader

final class ChunkHeaderReader
extends java.lang.Object
implements ChunkReader

Default reader, Reads GUID and size out of an input stream and creates a Chunkobject, finally skips the remaining chunk bytes.

Author:
Christian Laireiter

Field Summary
private static GUID[] APPLYING
          The GUID this reader applies to
private static ChunkHeaderReader INSTANCE
          Default instance.
 
Constructor Summary
private ChunkHeaderReader()
          Hidden Utility class constructor.
 
Method Summary
 boolean canFail()
          Tells whether the reader can fail to return a valid chunk.
The current Use would be a modified version of StreamChunkReader, which is configured to only manage audio streams.
 GUID[] getApplyingIds()
          Returns the GUIDs identifying the types of chunk, this reader will parse.
static ChunkHeaderReader getInstance()
          Returns an instance of the reader.
 Chunk read(GUID guid, java.io.InputStream stream, long chunkStart)
          Parses the chunk.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

APPLYING

private static final GUID[] APPLYING
The GUID this reader applies to


INSTANCE

private static final ChunkHeaderReader INSTANCE
Default instance.

Constructor Detail

ChunkHeaderReader

private ChunkHeaderReader()
Hidden Utility class constructor.

Method Detail

getInstance

public static ChunkHeaderReader getInstance()
Returns an instance of the reader.

Returns:
instance.

canFail

public boolean canFail()
Tells whether the reader can fail to return a valid chunk.
The current Use would be a modified version of StreamChunkReader, which is configured to only manage audio streams. However, the primary GUID for audio and video streams is the same. So if a stream shows itself to be a video stream, the reader would return null.

Specified by:
canFail in interface ChunkReader
Returns:
true, if further analysis of the chunk can show, that the reader is not applicable, despite the header GUID identification told it can handle the chunk.

getApplyingIds

public GUID[] getApplyingIds()
Returns the GUIDs identifying the types of chunk, this reader will parse.

Specified by:
getApplyingIds in interface ChunkReader
Returns:
the GUIDs identifying the types of chunk, this reader will parse.

read

public Chunk read(GUID guid,
                  java.io.InputStream stream,
                  long chunkStart)
           throws java.io.IOException
Parses the chunk.

Specified by:
read in interface ChunkReader
Parameters:
guid - the GUID of the chunks header, which is about to be read.
stream - source to read chunk from.
No GUID is expected at the currents stream position. The length of the chunk is about to follow.
chunkStart - the position in stream, the chunk starts.
Returns:
the read chunk. (Mostly a subclass of Chunk).
Throws:
java.io.IOException - On I/O Errors.