Package org.jpos.iso
Class ISOTagBinaryFieldPackager
- java.lang.Object
-
- org.jpos.iso.ISOFieldPackager
-
- org.jpos.iso.ISOBinaryFieldPackager
-
- org.jpos.iso.ISOTagBinaryFieldPackager
-
- Direct Known Subclasses:
IFEPE_LLBINARY
,IFMC_LLBINARY
,IFMC_LLLBINARY
public class ISOTagBinaryFieldPackager extends ISOBinaryFieldPackager
Generic class for handling binary fields in Tag-Len-Value formatFormat TTLL.... Where TT is the n>0 digit field number (Tag) LL is the n>=0 digit field length (if n=0 it's means fixed length field with prefixer) .. is the field content
-
-
Field Summary
-
Fields inherited from class org.jpos.iso.ISOFieldPackager
pad, trim
-
-
Constructor Summary
Constructors Constructor Description ISOTagBinaryFieldPackager()
Constructs a default ISOTagBinaryFieldPackager.ISOTagBinaryFieldPackager(int maxLength, java.lang.String description, Prefixer tagPrefixer, Padder padder, BinaryInterpreter interpreter, Prefixer prefixer)
Creates an ISOTagBinaryFieldPackager.ISOTagBinaryFieldPackager(Prefixer tagPrefixer, Padder padder, BinaryInterpreter interpreter, Prefixer prefixer)
Constructs an ISOTagBinaryFieldPackager with a specific Padder, Interpreter and Prefixer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
getMaxPackedLength()
Returns the prefixer's packed length and the interpreter's packed length.byte[]
pack(ISOComponent c)
Convert the component into a byte[].void
setInterpreter(BinaryInterpreter interpreter)
Sets the Interpreter.void
setPadder(Padder padder)
Sets the Padder.void
setPrefixer(Prefixer prefixer)
Sets the length prefixer.int
unpack(ISOComponent c, byte[] b, int offset)
Unpacks the byte array into the component.void
unpack(ISOComponent c, java.io.InputStream in)
Unpack the input stream into the component.-
Methods inherited from class org.jpos.iso.ISOBinaryFieldPackager
checkLength, createComponent
-
Methods inherited from class org.jpos.iso.ISOFieldPackager
getDescription, getLength, pack, readBytes, setDescription, setLength, setPad, setTrim
-
-
-
-
Constructor Detail
-
ISOTagBinaryFieldPackager
public ISOTagBinaryFieldPackager()
Constructs a default ISOTagBinaryFieldPackager. There is ASCII tag L prefixer, no padding, no length prefix and a literal binary interpretation. The set methods must be called to make this ISOBaseFieldPackager useful.
-
ISOTagBinaryFieldPackager
public ISOTagBinaryFieldPackager(Prefixer tagPrefixer, Padder padder, BinaryInterpreter interpreter, Prefixer prefixer)
Constructs an ISOTagBinaryFieldPackager with a specific Padder, Interpreter and Prefixer. The length and description should be set with setLength() and setDescription methods.- Parameters:
tagPrefixer
- The type of tag prefixer used to encode tag.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.
-
ISOTagBinaryFieldPackager
public ISOTagBinaryFieldPackager(int maxLength, java.lang.String description, Prefixer tagPrefixer, Padder padder, BinaryInterpreter interpreter, Prefixer prefixer)
Creates an ISOTagBinaryFieldPackager.- 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.tagPrefixer
- The type of tag prefixer used to encode tag.interpreter
- The interpreter used to encode the field.padder
- The type of padding used.prefixer
- The type of length prefixer used to encode this field.
-
-
Method Detail
-
setPadder
public void setPadder(Padder padder)
Sets the Padder.- Parameters:
padder
- The padder to use during packing and unpacking.
-
setInterpreter
public void setInterpreter(BinaryInterpreter interpreter)
Sets the Interpreter.- Overrides:
setInterpreter
in classISOBinaryFieldPackager
- Parameters:
interpreter
- The interpreter to use in packing and unpacking.
-
setPrefixer
public void setPrefixer(Prefixer prefixer)
Sets the length prefixer.- Overrides:
setPrefixer
in classISOBinaryFieldPackager
- Parameters:
prefixer
- The length prefixer to use during packing and unpacking.
-
getMaxPackedLength
public int getMaxPackedLength()
Returns the prefixer's packed length and the interpreter's packed length.- Overrides:
getMaxPackedLength
in classISOBinaryFieldPackager
- See Also:
ISOFieldPackager.getMaxPackedLength()
-
pack
public byte[] pack(ISOComponent c) throws ISOException
Convert the component into a byte[].- Overrides:
pack
in classISOBinaryFieldPackager
- Parameters:
c
- - a component- Returns:
- packed component
- Throws:
ISOException
-
unpack
public int unpack(ISOComponent c, byte[] b, int offset) throws ISOException
Unpacks the byte array into the component.- Overrides:
unpack
in classISOBinaryFieldPackager
- 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
public void unpack(ISOComponent c, java.io.InputStream in) throws java.io.IOException, ISOException
Unpack the input stream into the component.- Overrides:
unpack
in classISOBinaryFieldPackager
- Parameters:
c
- The Component to unpack into.in
- Input stream where the packed bytes come from.- Throws:
java.io.IOException
- Thrown if there's a problem reading the input stream.ISOException
-
-