Module ibm.jzos

Class PackedDecimalAsLongField

java.lang.Object
com.ibm.jzos.fields.PackedDecimalAsLongField
All Implemented Interfaces:
Field, LongAccessor
Direct Known Subclasses:
PackedSignedLongField, PackedUnsignedLongField

public class PackedDecimalAsLongField extends Object implements LongAccessor
A packed decimal Field up to 18 digits (10 bytes) with long accessors.

Since:
2.1.0
  • Constructor Summary

    Constructors
    Constructor
    Description
    PackedDecimalAsLongField(int offset, int precision, boolean signed)
    Construct an instance
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    equals(Long aLong, long along)
    Compare a Long, possibly null, with a long for equality.
    int
    Answer the length of the field described by the receiver
    long
    getLong(byte[] buffer)
    Answer a long value from the given byte array buffer, at the offset of this field.
    long
    getLong(byte[] buffer, int bufOffset)
    Answer a long value from the given byte array buffer, at the bufOffset + offset of this field.
    int
    Answer the offset of this field into some array of bytes
    int
    Answer the number of decimal digits of precision.
    boolean
    Answer whether the field is signed
    void
    putLong(long value, byte[] buffer)
    Put a long value into the given byte array buffer, at the offset of this field.
    void
    putLong(long value, byte[] buffer, int bufOffset)
    Put a long value into the given byte array buffer, at the bufOffset + offset of this field.
    void
    setOffset(int offset)
     

    Methods inherited from class java.lang.Object

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

    • PackedDecimalAsLongField

      public PackedDecimalAsLongField(int offset, int precision, boolean signed)
      Construct an instance
      Parameters:
      offset - position of this field
      precision - total number of digits <= 18. If even, this value is rounded up to the next odd number.
      signed - if true the last nibble is a sign
  • Method Details

    • getByteLength

      public int getByteLength()
      Answer the length of the field described by the receiver
      Specified by:
      getByteLength in interface Field
      Returns:
      int
    • getOffset

      public int getOffset()
      Answer the offset of this field into some array of bytes
      Specified by:
      getOffset in interface Field
      Returns:
      int
    • setOffset

      public void setOffset(int offset)
      Specified by:
      setOffset in interface Field
      See Also:
    • getPrecision

      public int getPrecision()
      Answer the number of decimal digits of precision.
      Returns:
      int
    • getLong

      public long getLong(byte[] buffer) throws IllegalArgumentException
      Answer a long value from the given byte array buffer, at the offset of this field.

      Note: the data is not checked for valid decimal digits, although the sign nibble is checked for a valid value in the range x'A'-x'F'.

      Specified by:
      getLong in interface LongAccessor
      Parameters:
      buffer - the byte array
      Returns:
      long
      Throws:
      IllegalArgumentException - if the field contains an invalid sign
    • getLong

      public long getLong(byte[] buffer, int bufOffset)
      Answer a long value from the given byte array buffer, at the bufOffset + offset of this field.

      Note: the data is not checked for valid decimal digits, although the sign nibble is checked for a valid value in the range x'A'-x'F'.

      Specified by:
      getLong in interface LongAccessor
      Parameters:
      buffer - the byte array
      bufOffset - the additional offset into the byte array
      Returns:
      long
      Throws:
      IllegalArgumentException - if the field contains an invalid sign
    • putLong

      public void putLong(long value, byte[] buffer) throws IllegalArgumentException
      Put a long value into the given byte array buffer, at the offset of this field.

      Note: If the field is unsigned, a x'F' is supplied as the sign nibble in the field.

      Specified by:
      putLong in interface LongAccessor
      Parameters:
      value - the signed int value
      buffer - the byte array
      Throws:
      IllegalArgumentException - if the value is out of range
    • putLong

      public void putLong(long value, byte[] buffer, int bufOffset) throws IllegalArgumentException
      Put a long value into the given byte array buffer, at the bufOffset + offset of this field.

      Note: If the field is unsigned, a x'F' is supplied as the sign nibble in the field.

      Specified by:
      putLong in interface LongAccessor
      Parameters:
      value - the signed int value
      buffer - the byte array
      bufOffset - the additional offset into the byte array
      Throws:
      IllegalArgumentException - if the value is out of range
    • isSigned

      public boolean isSigned()
      Answer whether the field is signed
      Specified by:
      isSigned in interface LongAccessor
    • equals

      public boolean equals(Long aLong, long along)
      Compare a Long, possibly null, with a long for equality.
      Parameters:
      aLong -
      along -
      Returns:
      boolean true if equal, false otherwise