- java.lang.Object
-
- com.ibm.jzos.fields.PackedDecimalAsIntField
-
- All Implemented Interfaces:
Field
,IntAccessor
- Direct Known Subclasses:
PackedSignedIntField
,PackedUnsignedIntField
public class PackedDecimalAsIntField extends java.lang.Object implements IntAccessor
A packed decimalField
up to 9 digits (5 bytes) with int accessors.- Since:
- 2.1.0
-
-
Constructor Summary
Constructors Constructor Description PackedDecimalAsIntField(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.Integer anInteger, int anInt)
Compare an Integer, possibly null, with an int for equality.int
getByteLength()
Answer the length of the field described by the receiverint
getInt(byte[] buffer)
Answer a int from the given byte array buffer, at the offset of this field.int
getInt(byte[] buffer, int bufOffset)
Answer a int 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 bytesint
getPrecision()
Answer the number of decimal digits of precision.boolean
isSigned()
Answer whether the field is signedvoid
putInt(int value, byte[] buffer)
Put a int into the given byte array buffer, at the offset of this field.void
putInt(int value, byte[] buffer, int bufOffset)
Put a int into the given byte array buffer, at the bufOffset + offset of this field.void
setOffset(int offset)
-
-
-
Constructor Detail
-
PackedDecimalAsIntField
public PackedDecimalAsIntField(int offset, int precision, boolean signed)
Construct an instance- Parameters:
offset
- position of this fieldprecision
- total number of digits <= 9. 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 interfaceField
- Returns:
- int
-
getOffset
public int getOffset()
Answer the offset of this field into some array of bytes
-
setOffset
public void setOffset(int offset)
- Specified by:
setOffset
in interfaceField
- See Also:
getOffset()
-
getPrecision
public int getPrecision()
Answer the number of decimal digits of precision.- Returns:
- int
-
getInt
public int getInt(byte[] buffer) throws java.lang.IllegalArgumentException
Answer a int 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:
getInt
in interfaceIntAccessor
- Parameters:
buffer
- the byte array- Returns:
- int
- Throws:
java.lang.IllegalArgumentException
- if the field contains an invalid sign
-
getInt
public int getInt(byte[] buffer, int bufOffset) throws java.lang.IllegalArgumentException
Answer a int 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:
getInt
in interfaceIntAccessor
- Parameters:
buffer
- the byte arraybufOffset
- the additional offset into the byte array- Returns:
- int
- Throws:
java.lang.IllegalArgumentException
- if the field contains an invalid sign
-
putInt
public void putInt(int value, byte[] buffer) throws java.lang.IllegalArgumentException
Put a int 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:
putInt
in interfaceIntAccessor
- Parameters:
value
- the signed int valuebuffer
- the byte array- Throws:
java.lang.IllegalArgumentException
- if the value is out of range
-
putInt
public void putInt(int value, byte[] buffer, int bufOffset) throws java.lang.IllegalArgumentException
Put a int 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:
putInt
in interfaceIntAccessor
- Parameters:
value
- the signed int valuebuffer
- the byte arraybufOffset
- 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 interfaceIntAccessor
-
equals
public boolean equals(java.lang.Integer anInteger, int anInt)
Compare an Integer, possibly null, with an int for equality.- Parameters:
anInteger
-anInt
-- Returns:
- boolean true if equal, false otherwise
-
-