summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/uic/barcode/ssbFrame/SsbNonUic.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/uic/barcode/ssbFrame/SsbNonUic.java')
-rw-r--r--src/main/java/org/uic/barcode/ssbFrame/SsbNonUic.java41
1 files changed, 32 insertions, 9 deletions
diff --git a/src/main/java/org/uic/barcode/ssbFrame/SsbNonUic.java b/src/main/java/org/uic/barcode/ssbFrame/SsbNonUic.java
index 28e5105..1f0049e 100644
--- a/src/main/java/org/uic/barcode/ssbFrame/SsbNonUic.java
+++ b/src/main/java/org/uic/barcode/ssbFrame/SsbNonUic.java
@@ -6,31 +6,54 @@ import org.uic.barcode.asn1.uper.ByteBitBuffer;
public class SsbNonUic extends SsbTicketPart {
+
+
+
byte[] openData = null;
@Override
- protected void decodeContent(byte[] bytes) {
+ protected int decodeContent(byte[] bytes, int offset) {
+
+ BitBuffer bits = new ByteBitBuffer(bytes);
+
+ StringBuffer sb = new StringBuffer();
+
+
+ for (int i = offset; i < openDataLength; i++) {
+ if (bits.get(i) == false) {
+ sb.append("1");
+ } else {
+ sb.append("0");
+ }
+ }
+
+ for (int i = openDataLength; i < 440; i++) {
+ sb.append("0");
+ }
- String bitString = AsnUtils.toBooleanString(bytes);
-
- openData = AsnUtils.fromBooleanString(bitString);
+ openData = AsnUtils.fromBooleanString(sb.toString());
+
+ return offset + openDataLength ;
}
@Override
- protected void encodeContent(byte[] bytes) {
+ protected int encodeContent(byte[] bytes, int offset) {
BitBuffer bits = new ByteBitBuffer(bytes);
String bitString = AsnUtils.toBooleanString(openData);
- for (int i = 0;i< 58 *8 ;i++) {
- if (bitString.charAt(i) == '0') {
- bits.put(27 + i, true);
+
+ for (int i = 0; i< openDataLength ; i++) {
+ if (i < bitString.length() && bitString.charAt(i) == '0') {
+ bits.put(offset + i, true);
} else {
- bits.put(27 + i, false);
+ bits.put(offset + i, false);
}
}
+
+ return offset + openDataLength;
}
public byte[] getOpenData() {