Package nom.tam.util

Class ByteParser

java.lang.Object
nom.tam.util.ByteParser

@Deprecated public class ByteParser extends Object
Deprecated.
This class should not be exposed in the public API and is intended for internal use only in ASCII tables. Also, it may have overlapping functionality with other classes, which should probably be eliminated for simplicity's sake (and thus less chance of nasty bugs).
This class provides routines for efficient parsing of data stored in a byte array. This routine is optimized (in theory at least!) for efficiency rather than accuracy. The values read in for doubles or floats may differ in the last bit or so from the standard input utilities, especially in the case where a float is specified as a very long string of digits (substantially longer than the precision of the type).

The get methods generally are available with or without a length parameter specified. When a length parameter is specified only the bytes with the specified range from the current offset will be search for the number. If no length is specified, the entire buffer from the current offset will be searched.

The getString method returns a string with leading and trailing white space left intact. For all other get calls, leading white space is ignored. If fillFields is set, then the get methods check that only white space follows valid data and a FormatException is thrown if that is not the case. If fillFields is not set and valid data is found, then the methods return having read as much as possible. E.g., for the sequence "T123.258E13", a getBoolean, getInteger and getFloat call would return true, 123, and 2.58e12 when called in succession.

See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    ByteParser(byte[] input)
    Deprecated.
    Construct a parser.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Deprecated.
     
    boolean
    getBoolean(int length)
    Deprecated.
     
    byte[]
    Deprecated.
     
    double
    Deprecated.
    Read in the buffer until a double is read.
    double
    getDouble(int length)
    Deprecated.
     
    float
    Deprecated.
     
    float
    getFloat(int length)
    Deprecated.
     
    int
    Deprecated.
     
    int
    getInt(int length)
    Deprecated.
     
    long
    getLong(int length)
    Deprecated.
     
    int
    Deprecated.
     
    int
    Deprecated.
    Get the current offset.
    getString(int length)
    Deprecated.
     
    void
    setBuffer(byte[] buf)
    Deprecated.
    Set the buffer for the parser.
    void
    setOffset(int offset)
    Deprecated.
    Set the offset into the array.
    void
    skip(int nBytes)
    Deprecated.
    Skip bytes in the buffer.
    int
    skipWhite(int length)
    Deprecated.
    Skip white space.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ByteParser

      public ByteParser(byte[] input)
      Deprecated.
      Construct a parser.
      Parameters:
      input - The byte array to be parsed. Note that the array can be re-used by refilling its contents and resetting the offset.
  • Method Details

    • getBoolean

      public boolean getBoolean() throws FormatException
      Deprecated.
      Returns:
      a boolean value from the beginning of the buffer.
      Throws:
      FormatException - if the double was in an unknown format
    • getBoolean

      public boolean getBoolean(int length) throws FormatException
      Deprecated.
      Parameters:
      length - The maximum number of characters used to parse this boolean.
      Returns:
      a boolean value from a specified region of the buffer
      Throws:
      FormatException - if the double was in an unknown format
    • getBuffer

      public byte[] getBuffer()
      Deprecated.
      Returns:
      the buffer being used by the parser
    • getDouble

      public double getDouble() throws FormatException
      Deprecated.
      Read in the buffer until a double is read. This will read the entire buffer if fillFields is set.
      Returns:
      The value found.
      Throws:
      FormatException - if the double was in an unknown format
    • getDouble

      public double getDouble(int length) throws FormatException
      Deprecated.
      Parameters:
      length - The maximum number of characters used to parse this number. If fillFields is specified then exactly only whitespace may follow a valid double value.
      Returns:
      a parsed double from the buffer. Leading spaces are ignored.
      Throws:
      FormatException - if the double was in an unknown format
    • getFloat

      public float getFloat() throws FormatException
      Deprecated.
      Returns:
      a floating point value from the buffer. (see getDouble(int())
      Throws:
      FormatException - if the float was in an unknown format
    • getFloat

      public float getFloat(int length) throws FormatException
      Deprecated.
      Parameters:
      length - The maximum number of characters used to parse this float.
      Returns:
      a floating point value in a region of the buffer
      Throws:
      FormatException - if the float was in an unknown format
    • getInt

      public int getInt() throws FormatException
      Deprecated.
      Returns:
      an integer at the beginning of the buffer
      Throws:
      FormatException - if the integer was in an unknown format
    • getInt

      public int getInt(int length) throws FormatException
      Deprecated.
      Parameters:
      length - The maximum number of characters used to parse this integer. @throws FormatException if the integer was in an unknown format
      Returns:
      a region of the buffer to an integer
      Throws:
      FormatException - if the integer was in an unknown format
    • getLong

      public long getLong(int length) throws FormatException
      Deprecated.
      Parameters:
      length - The maximum number of characters used to parse this long.
      Returns:
      a long in a specified region of the buffer
      Throws:
      FormatException - if the long was in an unknown format
    • getNumberLength

      public int getNumberLength()
      Deprecated.
      Returns:
      the number of characters used to parse the previous number (or the length of the previous String returned).
    • getOffset

      public int getOffset()
      Deprecated.
      Get the current offset.
      Returns:
      The current offset within the buffer.
    • getString

      public String getString(int length)
      Deprecated.
      Parameters:
      length - The length of the string.
      Returns:
      a string.
    • setBuffer

      public void setBuffer(byte[] buf)
      Deprecated.
      Set the buffer for the parser.
      Parameters:
      buf - buffer to set
    • setOffset

      public void setOffset(int offset)
      Deprecated.
      Set the offset into the array.
      Parameters:
      offset - The desired offset from the beginning of the array.
    • skip

      public void skip(int nBytes)
      Deprecated.
      Skip bytes in the buffer.
      Parameters:
      nBytes - number of bytes to skip
    • skipWhite

      public int skipWhite(int length)
      Deprecated.
      Skip white space. This routine skips with space in the input .
      Parameters:
      length - The maximum number of characters to skip.
      Returns:
      the number of character skipped. White space is defined as ' ', '\t', '\n' or '\r'