blob: 80fc2bc48ff51993e3d44e3e785b1b79e1483dd7 (
plain) (
tree)
|
|
package org.uic.barcode.ssbFrame;
import org.uic.barcode.asn1.uper.BitBuffer;
import org.uic.barcode.asn1.uper.ByteBitBuffer;
import org.uic.barcode.ticket.EncodingFormatException;
public class SsbNonReservation extends SsbCommonTicketPart {
protected int firstDayOfValidity = 0;
protected int lastDayOfValidity = 0;
protected boolean isReturnJourney = false;
private int infoCode = 0;
private String text = null;
private SsbStations stations = new SsbStations();
@Override
protected int decodeContent(byte[] bytes, int offset) {
offset = offset + decodeCommonPart(bytes);
BitBuffer bits = new ByteBitBuffer(bytes);
isReturnJourney = bits.get(offset);
offset = offset++;
firstDayOfValidity = bits.getInteger(offset, 9);
offset = offset + 9;
lastDayOfValidity = bits.getInteger(offset, 9);
offset = offset + 9;
offset = stations.decode(offset, bytes);
infoCode = bits.getInteger(offset, 14);
offset = offset + 14;
text = bits.getChar6String(offset, 222);
offset = offset + 222;
return offset;
}
@Override
protected int encodeContent(byte[] bytes, int offset) throws EncodingFormatException {
offset = offset + encodeCommonPart(bytes, offset);
BitBuffer bits = new ByteBitBuffer(bytes);
bits.put(offset, isReturnJourney);
offset = offset++;
if (firstDayOfValidity < 0 || firstDayOfValidity > 511) {
throw new EncodingFormatException("SSB first day of validity too big");
}
bits.putInteger(offset, 9, firstDayOfValidity);
offset = offset + 9;
if (lastDayOfValidity < 0 || lastDayOfValidity > 511) {
throw new EncodingFormatException("SSB last day of validity too big");
}
bits.putInteger(offset, 9, lastDayOfValidity);
offset = offset + 9;
offset = stations.encode(offset, bytes);
if (infoCode < 0 || infoCode > 9999) {
throw new EncodingFormatException("SSB info code too big");
}
bits.putInteger(offset, 14, infoCode);
offset = offset + 14;
if (text.length() > 37) {
throw new EncodingFormatException("SSB text too big");
}
bits.putChar6String(offset, 222, text);
offset = offset + 222;
return offset;
}
public int getFirstDayOfValidity() {
return firstDayOfValidity;
}
public void setFirstDayOfValidity(int firstDayOfValidity) {
this.firstDayOfValidity = firstDayOfValidity;
}
public int getLastDayOfValidity() {
return lastDayOfValidity;
}
public void setLastDayOfValidity(int lastDayOfValidity) {
this.lastDayOfValidity = lastDayOfValidity;
}
public boolean isReturnJourney() {
return isReturnJourney;
}
public void setReturnJourney(boolean isReturnJourney) {
this.isReturnJourney = isReturnJourney;
}
public int getInfoCode() {
return infoCode;
}
public void setInfoCode(int infoCode) {
this.infoCode = infoCode;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public SsbStations getStations() {
return stations;
}
}
|