Module ibm.jzos

Class PackedDecimalAsLongField

    • Constructor Summary

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Long aLong, long along)
      Compare a Long, possibly null, with a long for equality.
      int getByteLength()
      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 getOffset()
      Answer the offset of this field into some array of bytes
      int getPrecision()
      Answer the number of decimal digits of precision.
      boolean isSigned()
      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 Detail

      • 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 Detail

      • 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
      • getPrecision

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

        public long getLong​(byte[] buffer)
                     throws java.lang.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:
        java.lang.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:
        java.lang.IllegalArgumentException - if the field contains an invalid sign
      • putLong

        public void putLong​(long value,
                            byte[] buffer)
                     throws java.lang.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:
        java.lang.IllegalArgumentException - if the value is out of range
      • putLong

        public void putLong​(long value,
                            byte[] buffer,
                            int bufOffset)
                     throws java.lang.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:
        java.lang.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​(java.lang.Long aLong,
                              long along)
        Compare a Long, possibly null, with a long for equality.
        Parameters:
        aLong -
        along -
        Returns:
        boolean true if equal, false otherwise