Module ibm.jzos

Class ExternalDecimalAsBigDecimalField

java.lang.Object
com.ibm.jzos.fields.ExternalDecimalAsBigDecimalField
All Implemented Interfaces:
BigDecimalAccessor, Field
Direct Known Subclasses:
ZonedEmbeddedLeadingSignedBigDecimalField, ZonedEmbeddedTrailingSignedBigDecimalField, ZonedExternalLeadingSignedBigDecimalField, ZonedExternalTrailingSignedBigDecimalField

public class ExternalDecimalAsBigDecimalField extends Object implements BigDecimalAccessor
An external (aka "display", "zoned") decimal field with BigDecimal accessors. A "scale" determines the implied number of digits in the fractional part of the field.

Since:
2.1.0
  • Constructor Details

    • ExternalDecimalAsBigDecimalField

      public ExternalDecimalAsBigDecimalField(int offset, int precision, int scale, boolean signed, boolean signTrailing, boolean signExternal, boolean blankWhenZero)
      Construct an instance
      Parameters:
      offset - position of this field
      precision - total number of digits.
      scale - number of digits (>=0) in the fractional part of the field
      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: signTailing 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:
    • getPrecision

      public int getPrecision()
    • isSigned

      public boolean isSigned()
    • isSignExternal

      public boolean isSignExternal()
    • isSignTrailing

      public boolean isSignTrailing()
    • isBlankWhenZero

      public boolean isBlankWhenZero()
    • getBigDecimal

      public BigDecimal getBigDecimal(byte[] buffer)
      Description copied from interface: BigDecimalAccessor
      Answer a BigDecimal from the given byte array buffer, at the offset of this field.
      Specified by:
      getBigDecimal in interface BigDecimalAccessor
      Parameters:
      buffer - the byte array
      Returns:
      BigDecimal
    • getBigDecimal

      public BigDecimal getBigDecimal(byte[] buffer, int bufOffset)
      Description copied from interface: BigDecimalAccessor
      Answer a BigDecimal from the given byte array buffer, at the bufOffset + offset of this field.
      Specified by:
      getBigDecimal in interface BigDecimalAccessor
      Parameters:
      buffer - the byte array
      bufOffset - the additional offset into the byte array
      Returns:
      BigDecimal
    • putBigDecimal

      public void putBigDecimal(BigDecimal value, byte[] buffer) throws IllegalArgumentException
      Description copied from interface: BigDecimalAccessor
      Put a BigDecimal into the given byte array buffer, at the offset of this field.
      Specified by:
      putBigDecimal in interface BigDecimalAccessor
      Parameters:
      value - the BigDecimal value
      buffer - the byte array
      Throws:
      IllegalArgumentException - if the value is out of range
    • putBigDecimal

      public void putBigDecimal(BigDecimal value, byte[] buffer, int bufOffset) throws IllegalArgumentException
      Description copied from interface: BigDecimalAccessor
      Put a BigDecimal into the given byte array buffer, at the bufOffset + offset of this field.
      Specified by:
      putBigDecimal in interface BigDecimalAccessor
      Parameters:
      value - the BigDecimal value
      buffer - the byte array
      bufOffset - the additional offset into the byte array
      Throws:
      IllegalArgumentException - if the value is out of range
    • equals

      public boolean equals(BigDecimal a, BigDecimal b)
      Compare two BigDecimal instances, possibly null, for equality.
      Parameters:
      a - BigDecimal
      b - BigDecimal
      Returns:
      boolean true if equal, false otherwise
    • getScale

      public int getScale()