Class ISOFilledStringFieldPackager
java.lang.Object
org.jpos.iso.ISOFieldPackager
org.jpos.iso.ISOFilledStringFieldPackager
- Direct Known Subclasses:
IFA_FLLCHAR, IFA_FLLNUM
-
Field Summary
Fields inherited from class ISOFieldPackager
pad, trim -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a default ISOFilledStringFieldPackager.ISOFilledStringFieldPackager(int maxLength, String description, Padder padder, Interpreter interpreter, Prefixer prefixer) Creates an ISOFilledStringFieldPackager.ISOFilledStringFieldPackager(Padder padder, Interpreter interpreter, Prefixer prefixer) Constructs an ISOFilledStringFieldPackager with a specific Padder, Interpreter and Prefixer. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcheckLength(int len, int maxLength) Checks the length of the data against the maximum, and throws an IllegalArgumentException.intReturns the prefixer's packed length and the interpreter's packed length.byte[]pack(ISOComponent c) Convert the component into a byte[].voidsetInterpreter(Interpreter interpreter) Sets the Interpreter.voidSets the Padder.voidsetPrefixer(Prefixer prefixer) Sets the length prefixer.intunpack(ISOComponent c, byte[] b, int offset) Unpacks the byte array into the component.voidunpack(ISOComponent c, InputStream in) Unpack the input stream into the component.Methods inherited from class ISOFieldPackager
createComponent, getDescription, getLength, pack, readBytes, setDescription, setLength, setPad, setTrim
-
Constructor Details
-
ISOFilledStringFieldPackager
public ISOFilledStringFieldPackager()Constructs a default ISOFilledStringFieldPackager. There is no padding, no length prefix and a literal interpretation. The set methods must be called to make this useful. -
ISOFilledStringFieldPackager
Constructs an ISOFilledStringFieldPackager with a specific Padder, Interpreter and Prefixer. The length and description should be set with setLength() and setDescription methods.- Parameters:
padder- The type of padding used.interpreter- The interpreter used to encode the field.prefixer- The type of length prefixer used to encode this field.
-
ISOFilledStringFieldPackager
public ISOFilledStringFieldPackager(int maxLength, String description, Padder padder, Interpreter interpreter, Prefixer prefixer) Creates an ISOFilledStringFieldPackager.- Parameters:
maxLength- The maximum length of the field in characters or bytes depending on the datatype.description- The description of the field. For human readable output.padder- The type of padding used.interpreter- The interpreter used to encode the field.prefixer- The type of length prefixer used to encode this field.
-
-
Method Details
-
setPadder
-
setInterpreter
Sets the Interpreter.- Parameters:
interpreter- The interpreter to use in packing and unpacking.
-
setPrefixer
Sets the length prefixer.- Parameters:
prefixer- The length prefixer to use during packing and unpacking.
-
getMaxPackedLength
Returns the prefixer's packed length and the interpreter's packed length.- Specified by:
getMaxPackedLengthin classISOFieldPackager
-
pack
Convert the component into a byte[].- Specified by:
packin classISOFieldPackager- Parameters:
c- - a component- Returns:
- packed component
- Throws:
ISOException
-
unpack
Unpacks the byte array into the component.- Specified by:
unpackin classISOFieldPackager- Parameters:
c- The component to unpack into.b- The byte array to unpack.offset- The index in the byte array to start unpacking from.- Returns:
- The number of bytes consumed unpacking the component.
- Throws:
ISOException
-
unpack
Unpack the input stream into the component.- Overrides:
unpackin classISOFieldPackager- Parameters:
c- The Component to unpack into.in- Input stream where the packed bytes come from.- Throws:
IOException- Thrown if there's a problem reading the input stream.ISOException
-
checkLength
Checks the length of the data against the maximum, and throws an IllegalArgumentException. This is designed to be called from field Packager constructors and the setLength() method.- Parameters:
len- The length of the data for this field packager.maxLength- The maximum length allowed for this type of field packager. This depends on the prefixer that is used.- Throws:
IllegalArgumentException- If len > maxLength.
-