У меня есть несколько полей, которые меняют свои определения в зависимости от того, какое использование этого поля используется.
Например, F48 определяется как:
Variable Length, 1-byte binary + 255 bytes, variable by usage, max 256 bytes
Достаточно просто обрабатывать одно использование за раз, например, использование A определено в спецификации и моем упаковщике:
Variable length, 1-byte binary + 255 bytes, EBCDIC, max 256 bytes
<isofield
id="48"
length="255"
name="ADITIONAL DATA - PRIVATE"
class="org.jpos.iso.IFB_LLHECHAR"/>
Но другое использование может быть определено как
variable length, 1-byte binary + 4 N, 4-bit BCD
Or
variable length, 1-byte binary + 143 AN, EBCDIC
И так далее. Я не совсем понимаю, как обрабатывать несколько вариантов использования одного и того же поля в моем универсальном упаковщике.
Я думал об использовании isofieldpackager для обработки его как подполя, а затем, в зависимости от того, что мне нужно, я просто использую это подполе.
Например, с использованием A я попытался
<isofieldpackager
id="48"
length="255"
name="F48 ADDITIONAL DATA - PRIVATE"
emitBitmap="false"
firstField="0"
class="org.jpos.iso.IFB_LLHBINARY"
packager="org.jpos.iso.packager.GenericSubFieldPackager">
<isofield
id="0"
length="255"
name="ADITIONAL DATA - PRIVATE"
class="org.jpos.iso.IFB_LLHECHAR"/>
</isofieldpackager>
а затем установить поле как isoMSG.set(48.0, это мои данные), что, кажется, работает по большей части, но есть некоторые нечитаемые данные, которые добавляются к этому полю, когда они достигают моего процесса получения.
Спасибо за любую помощь, если вам нужна дополнительная информация, дайте мне знать