com.ibm.jzos.fields
Class PackedDecimalAsBigDecimalField

java.lang.Object
  extended by com.ibm.jzos.fields.PackedDecimalAsBigDecimalField
All Implemented Interfaces:
BigDecimalAccessor, Field

public class PackedDecimalAsBigDecimalField
extends java.lang.Object
implements BigDecimalAccessor

A packed decimal Field with BigDecimal accessors. A "scale" determines the implied number of digits to the right of the decimal point.


Constructor Summary
PackedDecimalAsBigDecimalField(int offset, int precision, int scale, boolean signed)
          Construct an instance.
 
Method Summary
 boolean equals(java.math.BigDecimal a, java.math.BigDecimal b)
          Compare two BigDecimal instances, possibly null, for equality.
 java.math.BigDecimal getBigDecimal(byte[] buffer)
          Answer a BigDecimal from the given byte array buffer, at the offset of this field.
 java.math.BigDecimal getBigDecimal(byte[] buffer, int bufOffset)
          Answer a BigDecimal from the given byte array buffer, at the bufOffset + offset of this field.
 int getByteLength()
          Answer the length of the field described by the receiver
 int getOffset()
          Answer the offset of this field into some array of bytes
 int getPrecision()
           
 int getScale()
           
 boolean isSigned()
          Answer true if the field is signed.
 void putBigDecimal(java.math.BigDecimal value, byte[] buffer)
          Put a BigDecimal into the given byte array buffer, at the offset of this field.
 void putBigDecimal(java.math.BigDecimal value, byte[] buffer, int bufOffset)
          Put a BigDecimal into the given byte array buffer, at the bufOffset + offset of this field.
 void setOffset(int offset)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PackedDecimalAsBigDecimalField

public PackedDecimalAsBigDecimalField(int offset,
                                      int precision,
                                      int scale,
                                      boolean signed)
Construct an instance.

Parameters:
offset - int the offset of this field
precision - in the number of decimal degits of precision
scale - the number of implied decimal digits to the right of the decimal point
signed - boolean true if the value is signed, false if unsigned
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

setOffset

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

getPrecision

public int getPrecision()

getScale

public int getScale()

isSigned

public boolean isSigned()
Answer true if the field is signed.


getBigDecimal

public java.math.BigDecimal getBigDecimal(byte[] buffer)
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 java.math.BigDecimal getBigDecimal(byte[] buffer,
                                          int bufOffset)
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(java.math.BigDecimal value,
                          byte[] buffer)
                   throws java.lang.IllegalArgumentException
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:
java.lang.IllegalArgumentException - if the value is out of range

putBigDecimal

public void putBigDecimal(java.math.BigDecimal value,
                          byte[] buffer,
                          int bufOffset)
                   throws java.lang.IllegalArgumentException
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:
java.lang.IllegalArgumentException - if the value is out of range

equals

public boolean equals(java.math.BigDecimal a,
                      java.math.BigDecimal b)
Compare two BigDecimal instances, possibly null, for equality.

Parameters:
a - BigDecimal
b - BigDecimal
Returns:
boolean true if equal, false otherwise