edu.sc.seis.seisFile.mseed
Class SeedRecord

java.lang.Object
  extended by edu.sc.seis.seisFile.mseed.SeedRecord
Direct Known Subclasses:
ControlRecord, DataRecord

public abstract class SeedRecord
extends java.lang.Object


Field Summary
protected static BlocketteFactory blocketteFactory
           
protected  java.util.List<Blockette> blockettes
           
protected  ControlHeader header
           
protected  int RECORD_SIZE
           
 
Constructor Summary
SeedRecord(ControlHeader header)
           
 
Method Summary
 void addBlockette(Blockette b)
           
static BlocketteFactory getBlocketteFactory()
           
 Blockette[] getBlockettes()
           
 Blockette[] getBlockettes(int type)
           
 ControlHeader getControlHeader()
           
 PartialBlockette getFirstPartialBlockette()
          if a seed blockette is continued in this record, a PartialBlockette will exist here.
 PartialBlockette getLastPartialBlockette()
          if a seed blockette is continued in the next record, a PartialBlockette will exist here.
 int getNumBlockettes(int type)
           
 int getRecordSize()
           
 Blockette getUniqueBlockette(int type)
           
static SeedRecord read(byte[] bytes)
           
static SeedRecord read(java.io.DataInput inStream)
           
static SeedRecord read(java.io.DataInput inStream, int defaultRecordSize)
          allows setting of a default record size, making reading of miniseed that lack a Blockette1000.
static void setBlocketteFactory(BlocketteFactory bf)
           
 java.lang.String toString()
           
 void writeASCII(java.io.PrintWriter out)
           
 void writeASCII(java.io.PrintWriter out, java.lang.String indent)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

blocketteFactory

protected static BlocketteFactory blocketteFactory

header

protected ControlHeader header

blockettes

protected java.util.List<Blockette> blockettes

RECORD_SIZE

protected int RECORD_SIZE
Constructor Detail

SeedRecord

public SeedRecord(ControlHeader header)
Method Detail

setBlocketteFactory

public static void setBlocketteFactory(BlocketteFactory bf)

getBlocketteFactory

public static BlocketteFactory getBlocketteFactory()

read

public static SeedRecord read(java.io.DataInput inStream)
                       throws java.io.IOException,
                              SeedFormatException
Throws:
java.io.IOException
SeedFormatException

read

public static SeedRecord read(byte[] bytes)
                       throws java.io.IOException,
                              SeedFormatException
Throws:
java.io.IOException
SeedFormatException

read

public static SeedRecord read(java.io.DataInput inStream,
                              int defaultRecordSize)
                       throws java.io.IOException,
                              SeedFormatException
allows setting of a default record size, making reading of miniseed that lack a Blockette1000. Compression is still unknown, but at least the record can be read in and manipulated. A value of 0 for defaultRecordSize means there must be a blockette 1000 or a MissingBlockette1000 will be thrown. If an exception is thrown and the underlying stream supports it, the stream will be reset to its state prior to any bytes being read. The buffer in the underlying stream must be large enough buffer any values read prior to the exception. A buffer sized to be the largest seed record expected is sufficient and so 4096 is a reasonable buffer size.

Throws:
java.io.IOException
SeedFormatException

addBlockette

public void addBlockette(Blockette b)
                  throws SeedFormatException
Throws:
SeedFormatException

getBlockettes

public Blockette[] getBlockettes()

getUniqueBlockette

public Blockette getUniqueBlockette(int type)
                             throws SeedFormatException
Throws:
SeedFormatException

getNumBlockettes

public int getNumBlockettes(int type)
                     throws SeedFormatException
Throws:
SeedFormatException

getBlockettes

public Blockette[] getBlockettes(int type)

getFirstPartialBlockette

public PartialBlockette getFirstPartialBlockette()
if a seed blockette is continued in this record, a PartialBlockette will exist here. It will know its type and length, but will not have all its needed bytes. The prior Seed Record, possibly with reading the subsequent Seed Record should allow the remaining portion of the data to be read. This returns null in the case of no first partial blockette existing.


getLastPartialBlockette

public PartialBlockette getLastPartialBlockette()
if a seed blockette is continued in the next record, a PartialBlockette will exist here. It will know its type and length, but will not have all its needed bytes. Reading the subsequent Seed Record should allow the remaining portion of the data to be read. This returns null in the case of no partial blockette existing.


getControlHeader

public ControlHeader getControlHeader()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

writeASCII

public void writeASCII(java.io.PrintWriter out)
                throws java.io.IOException
Throws:
java.io.IOException

writeASCII

public void writeASCII(java.io.PrintWriter out,
                       java.lang.String indent)
                throws java.io.IOException
Throws:
java.io.IOException

getRecordSize

public int getRecordSize()