Module ibm.jzos

Class ExternalDecimalAsLongField

java.lang.Object
com.ibm.jzos.fields.ExternalDecimalAsLongField
All Implemented Interfaces:
Field, LongAccessor
Direct Known Subclasses:
ZonedEmbeddedLeadingSignedLongField, ZonedEmbeddedTrailingSignedLongField, ZonedExternalLeadingSignedLongField, ZonedExternalTrailingSignedLongField, ZonedUnsignedLongField

public class ExternalDecimalAsLongField extends Object implements LongAccessor
An external (aka "display", "zoned") decimal field up to 18 digits with long accessors.

Since:
2.1.0
  • Constructor Summary

    Constructors
    Constructor
    Description
    ExternalDecimalAsLongField(int offset, int precision, boolean signed, boolean signTrailing, boolean signExternal, boolean blankWhenZero)
    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
    int
     
    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
     
    boolean
     
    boolean
    Answer whether the field is signed
    boolean
     
    boolean
     
    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)
     
    void
    setSignExternal(boolean signExternal)
     

    Methods inherited from class java.lang.Object

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

    • ExternalDecimalAsLongField

      public ExternalDecimalAsLongField(int offset, int precision, boolean signed, boolean signTrailing, boolean signExternal, boolean blankWhenZero)
      Construct an instance
      Parameters:
      offset - position of this field
      precision - total number of digits <= 18.
      signed - if the field has a sign somewhere
      signTrailing - true if the sign follows the field, false if it precedes it
      signExternal - true if the sign occupies a separate byte, false if it only occupies a high-order nibble Note: signTrailing and signExternal are ignored if signed is not true.
  • Method Details

    • getByteLength

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

      public int getOffset()
      Description copied from interface: Field
      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:
    • getLong

      public long getLong(byte[] buffer)
      Answer a long value from the given byte array buffer, at the offset of this field.
      Specified by:
      getLong in interface LongAccessor
      Parameters:
      buffer - the byte array
      Returns:
      long
    • 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. TODO need to verify proper runtime optimization of this method.
      Specified by:
      getLong in interface LongAccessor
      Parameters:
      buffer - the byte array
      bufOffset - the additional offset into the byte array
      Returns:
      long
    • 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.
      Specified by:
      putLong in interface LongAccessor
      Parameters:
      value - the long 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.
      Specified by:
      putLong in interface LongAccessor
      Parameters:
      value - the long 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
    • isBlankWhenZero

      public boolean isBlankWhenZero()
    • isSignExternal

      public boolean isSignExternal()
    • isSignTrailing

      public boolean isSignTrailing()
    • getLength

      public int getLength()
    • getPrecision

      public int getPrecision()
    • setSignExternal

      public void setSignExternal(boolean signExternal)