diff options
author | CGantert345 <57003061+CGantert345@users.noreply.github.com> | 2022-11-22 14:04:27 +0100 |
---|---|---|
committer | CGantert345 <57003061+CGantert345@users.noreply.github.com> | 2022-11-22 14:04:27 +0100 |
commit | fc6a4042f7fca1828f0b8e267cfd660e6fe1d40a (patch) | |
tree | 8547d80b7536becc8fdcc1b42b4c2a9a8bb1d7c6 /src/main/java/org/uic/barcode/ssbFrame/SsbCommonTicketPart.java | |
parent | Merge pull request #54 from UnionInternationalCheminsdeFer/adding_comments_on_the_coutry_code_of_Kosovo (diff) | |
download | UIC-barcode-fc6a4042f7fca1828f0b8e267cfd660e6fe1d40a.tar UIC-barcode-fc6a4042f7fca1828f0b8e267cfd660e6fe1d40a.tar.gz UIC-barcode-fc6a4042f7fca1828f0b8e267cfd660e6fe1d40a.tar.bz2 UIC-barcode-fc6a4042f7fca1828f0b8e267cfd660e6fe1d40a.tar.lz UIC-barcode-fc6a4042f7fca1828f0b8e267cfd660e6fe1d40a.tar.xz UIC-barcode-fc6a4042f7fca1828f0b8e267cfd660e6fe1d40a.tar.zst UIC-barcode-fc6a4042f7fca1828f0b8e267cfd660e6fe1d40a.zip |
Diffstat (limited to '')
-rw-r--r-- | src/main/java/org/uic/barcode/ssbFrame/SsbCommonTicketPart.java | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/src/main/java/org/uic/barcode/ssbFrame/SsbCommonTicketPart.java b/src/main/java/org/uic/barcode/ssbFrame/SsbCommonTicketPart.java new file mode 100644 index 0000000..9512fc1 --- /dev/null +++ b/src/main/java/org/uic/barcode/ssbFrame/SsbCommonTicketPart.java @@ -0,0 +1,132 @@ +package org.uic.barcode.ssbFrame; + +import org.uic.barcode.asn1.uper.BitBuffer; +import org.uic.barcode.asn1.uper.ByteBitBuffer; + +public abstract class SsbCommonTicketPart extends SsbTicketPart { + + /* + Number of adult passengers Num (<100) 7,000 + Number of child passengers Num (<100) 7,000 + "specimen" code Bit Flag 1,000 + Class of travel Lookup of 64 options 6,000 + TCN: Issuing unique Ticket number 14 AlphaNum 84,000 + Year of issue Num (0..9) 4,000 + Issuing day, from first of January Num (<512) 9,000 + */ + + protected int numberOfAdults = 0; + protected int numberOfChildren = 0; + protected boolean specimen = true; + protected SsbClass classCode = null; + protected String ticketNumber = null; + protected int year = 0; + protected int day = 0; + + protected int decodeCommonPart(byte[] bytes) { + + BitBuffer bits = new ByteBitBuffer(bytes); + + int offset = 27; // header offset + numberOfAdults = bits.getInteger(offset, 7); + offset = offset + 7; + numberOfChildren = bits.getInteger(offset, 7); + offset = offset + 7; + specimen = bits.get(offset); + offset++; + int classIndex = bits.getInteger(offset, 6); + classCode = SsbClass.values()[classIndex]; + offset = offset + 6; + ticketNumber = bits.getChar6String(offset, 84); + offset = offset + 84; + year = bits.getInteger(offset, 4); + offset = offset + 4; + day = bits.getInteger(offset, 9); + offset = offset + 9; + return offset; + } + + protected int encodeCommonPart(byte[] bytes) { + + BitBuffer bits = new ByteBitBuffer(bytes); + + int offset = 27; // header offset + bits.putInteger(offset,7, numberOfAdults); + offset = offset + 7; + bits.putInteger(numberOfChildren,offset, 7); + offset = offset + 7; + bits.put(offset,specimen); + offset++; + bits.putInteger(offset, 6,classCode.ordinal()); + offset = offset + 6; + bits.putChar6String(offset, 84, ticketNumber); + offset = offset + 84; + bits.putInteger(offset, 4, year); + offset = offset + 4; + bits.putInteger(offset, 9, day); + offset = offset + 9; + + return offset; + + + } + + public int getNumberOfAdults() { + return numberOfAdults; + } + + public void setNumberOfAdults(int numberOfAdults) { + this.numberOfAdults = numberOfAdults; + } + + public int getNumberOfChildren() { + return numberOfChildren; + } + + public void setNumberOfChildren(int numberOfChildren) { + this.numberOfChildren = numberOfChildren; + } + + public boolean isSpecimen() { + return specimen; + } + + public void setSpecimen(boolean specimen) { + this.specimen = specimen; + } + + public SsbClass getClassCode() { + return classCode; + } + + public void setClassCode(SsbClass classCode) { + this.classCode = classCode; + } + + public String getTicketNumber() { + return ticketNumber; + } + + public void setTicketNumber(String ticketNumber) { + this.ticketNumber = ticketNumber; + } + + public int getYear() { + return year; + } + + public void setYear(int year) { + this.year = year; + } + + public int getDay() { + return day; + } + + public void setDay(int day) { + this.day = day; + } + + + +} |