Class ISOFilledStringFieldPackager

java.lang.Object
org.jpos.iso.ISOFieldPackager
org.jpos.iso.ISOFilledStringFieldPackager
Direct Known Subclasses:
IFA_FLLCHAR, IFA_FLLNUM

  • Constructor Details

    • 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

      public ISOFilledStringFieldPackager(Padder padder, Interpreter interpreter, Prefixer prefixer)
      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

      public void setPadder(Padder padder)
      Sets the Padder.
      Parameters:
      padder - The padder to use during packing and unpacking.
    • setInterpreter

      public void setInterpreter(Interpreter 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()
      Returns the prefixer's packed length and the interpreter's packed length.
      Specified by:
      getMaxPackedLength in class ISOFieldPackager
    • 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
      Unpacks the byte array into the component.
      Specified by:
      unpack in class ISOFieldPackager
      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, InputStream in) throws IOException, ISOException
      Unpack the input stream into the component.
      Overrides:
      unpack in class ISOFieldPackager
      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

      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.