org.jpos.iso
Class ISOBinaryFieldPackager

java.lang.Object
  extended by org.jpos.iso.ISOFieldPackager
      extended by org.jpos.iso.ISOBinaryFieldPackager
Direct Known Subclasses:
IFA_BINARY, IFA_LLBINARY, IFA_LLLBINARY, IFA_LLLLBINARY, IFA_LLLLLBINARY, IFA_LLLLLLBINARY, IFB_BINARY, IFB_LLBINARY, IFB_LLHBINARY, IFB_LLLBINARY, IFB_LLLHBINARY, IFB_LLLLBINARY, IFE_BINARY, IFE_LLBINARY, IFE_LLLBINARY, ISOTagBinaryFieldPackager

public class ISOBinaryFieldPackager
extends ISOFieldPackager

Version:
$Revision$ $Date$
Author:
joconnor

Field Summary
 
Fields inherited from class org.jpos.iso.ISOFieldPackager
pad
 
Constructor Summary
ISOBinaryFieldPackager()
          Constructs a default ISOBinaryFieldPackager.
ISOBinaryFieldPackager(BinaryInterpreter interpreter, Prefixer prefixer)
          Creates an ISOBinaryFieldPackager.
ISOBinaryFieldPackager(int maxLength, String description, BinaryInterpreter interpreter, Prefixer prefixer)
          Creates an ISOBinaryFieldPackager.
 
Method Summary
protected  void checkLength(int len, int maxLength)
          Checks the length of the data against the maximum, and throws an IllegalArgumentException.
 ISOComponent createComponent(int fieldNumber)
          component factory
 int getMaxPackedLength()
           
 byte[] pack(ISOComponent c)
          Convert the component into a byte[].
 void setInterpreter(BinaryInterpreter interpreter)
          Sets the Interpreter.
 void setPrefixer(Prefixer prefixer)
          Sets the length prefixer.
 int unpack(ISOComponent c, byte[] b, int offset)
           
 void unpack(ISOComponent c, InputStream in)
          Unpack from an input stream
 
Methods inherited from class org.jpos.iso.ISOFieldPackager
getDescription, getLength, pack, readBytes, setDescription, setLength, setPad
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ISOBinaryFieldPackager

public ISOBinaryFieldPackager()
Constructs a default ISOBinaryFieldPackager. There is no length prefix and a literal interpretation. The set methods must be called to make this ISOBinaryFieldPackager useful.


ISOBinaryFieldPackager

public ISOBinaryFieldPackager(int maxLength,
                              String description,
                              BinaryInterpreter interpreter,
                              Prefixer prefixer)
Creates an ISOBinaryFieldPackager.

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.
interpreter - The interpreter used to encode the field.
prefixer - The type of length prefixer used to encode this field.

ISOBinaryFieldPackager

public ISOBinaryFieldPackager(BinaryInterpreter interpreter,
                              Prefixer prefixer)
Creates an ISOBinaryFieldPackager.

Parameters:
interpreter - The interpreter used to encode the field.
prefixer - The type of length prefixer used to encode this field.
Method Detail

setInterpreter

public void setInterpreter(BinaryInterpreter interpreter)
Sets the Interpreter.

Parameters:
interpreter - The interpreter to use in packing and unpacking.

setPrefixer

public void setPrefixer(Prefixer prefixer)
Sets the length prefixer.

Parameters:
prefixer - The length prefixer to use during packing and unpacking.

getMaxPackedLength

public int getMaxPackedLength()
Specified by:
getMaxPackedLength in class ISOFieldPackager
See Also:
ISOFieldPackager.getMaxPackedLength()

pack

public byte[] pack(ISOComponent c)
            throws ISOException
Convert the component into a byte[].

Specified by:
pack in class ISOFieldPackager
Parameters:
c - - a component
Returns:
packed component
Throws:
ISOException

unpack

public int unpack(ISOComponent c,
                  byte[] b,
                  int offset)
           throws ISOException
Specified by:
unpack in class ISOFieldPackager
Parameters:
c - - the Component to unpack
b - - binary image
offset - - starting offset within the binary image
Returns:
consumed bytes
Throws:
ISOException
See Also:
ISOFieldPackager.unpack(org.jpos.iso.ISOComponent, byte[], int)

unpack

public void unpack(ISOComponent c,
                   InputStream in)
            throws IOException,
                   ISOException
Unpack from an input stream

Overrides:
unpack in class ISOFieldPackager
Parameters:
c - - the Component to unpack
in - - input stream
Throws:
ISOException
IOException

createComponent

public ISOComponent createComponent(int fieldNumber)
component factory

Overrides:
createComponent in class ISOFieldPackager
Parameters:
fieldNumber - - the field number
Returns:
the newly created component

checkLength

protected void checkLength(int len,
                           int maxLength)
                    throws IllegalArgumentException
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.


Copyright © 1998-2012 jPOS.org. All Rights Reserved.