protected ISOFieldPackager getDelegate(int length, String description) { return new IFA_LLLBINARY(length, description); }
@Override public byte[] pack(ISOComponent c) throws ISOException { byte[] tagBytes = packTag(c); byte[] message = super.pack(c); byte[] b = new byte[tagBytes.length + message.length]; System.arraycopy(tagBytes, 0, b, 0, tagBytes.length); System.arraycopy(message, 0, b, tagBytes.length, message.length); return b; }
@Override public int unpack(ISOComponent c, byte[] b, int offset) throws ISOException { int consumed = unpackTag(c, b, offset); return consumed + super.unpack(c, b, offset + consumed); }
public void testReversability() throws Exception { byte[] origin = new byte[] {0x12, 0x34, 0x56, 0x78}; ISOBinaryField f = new ISOBinaryField(12, origin); IFA_LLLBINARY packager = new IFA_LLLBINARY(4, "Should be 12345678"); ISOBinaryField unpack = new ISOBinaryField(12); packager.unpack(unpack, packager.pack(f), 0); TestUtils.assertEquals(origin, (byte[])unpack.getValue()); } }
public void testPack() throws Exception { ISOBinaryField field = new ISOBinaryField(12, new byte[] {0x12, 0x34}); IFA_LLLBINARY packager = new IFA_LLLBINARY(2, "Should be 1234"); TestUtils.assertEquals(new byte[] {0x30, 0x30, 0x32, 0x12, 0x34}, packager.pack(field)); }
public void testUnpack() throws Exception { byte[] raw = new byte[] {0x30, 0x30, 0x32, 0x12, 0x34}; IFA_LLLBINARY packager = new IFA_LLLBINARY(2, "Should be 1234"); ISOBinaryField field = new ISOBinaryField(12); packager.unpack(field, raw, 0); TestUtils.assertEquals(new byte[] {0x12, 0x34}, (byte[])field.getValue()); }
/** * @param len - field len * @param description symbolic descrption */ public IFA_LLLBINARY (int len, String description) { super(len, description, LiteralBinaryInterpreter.INSTANCE, AsciiPrefixer.LLL); checkLength(len, 999); }
@Override public ISOComponent createComponent(int fieldNumber) { return new ISOTaggedField(getToken(), super.createComponent(fieldNumber)); }
public void setLength(int len) { checkLength(len, 999); super.setLength(len); } }
@Override public void pack(ISOComponent c, ObjectOutput out) throws IOException, ISOException { byte[] tagBytes = packTag(c); out.write(tagBytes); super.pack(c, out); }
@Override public void unpack(ISOComponent c, InputStream in) throws IOException, ISOException { unpackTag(c, in); super.unpack(c, in); }