36 lines
1.1 KiB
Java
36 lines
1.1 KiB
Java
package de.swingbe.ifleet.parser;
|
|
|
|
import de.swingbe.ifleet.model.Telegr;
|
|
import de.swingbe.ifleet.model.TelegrCntnt;
|
|
import de.swingbe.ifleet.model.TelegramHdr;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import static de.swingbe.ifleet.model.TelegramHdr.TELEGRAM_HDR_FIELD_NO;
|
|
import static de.swingbe.ifleet.utils.TelegramUtils.popField;
|
|
|
|
class TelegrParserImpl implements TelegrParser {
|
|
private final static Logger LOG = LoggerFactory.getLogger(TelegrParserImpl.class);
|
|
|
|
TelegrParserImpl() {
|
|
}
|
|
|
|
public Telegr parse(final String input) {
|
|
|
|
TelegramHdr teleHeader = TelegramHdrParserFactory.createTelegramHdrParser().parse(input);
|
|
final String type = teleHeader.getTeleType();
|
|
LOG.debug("parse() teleHeader.getTeleType(): " + type);
|
|
|
|
String inputNew = popField(input, TELEGRAM_HDR_FIELD_NO);
|
|
|
|
TelegrCntnt telegrCntnt = null;
|
|
switch (type){
|
|
case "1":
|
|
default:
|
|
telegrCntnt = LctMsgParserFactory.createLctMsgParer().parse(type,inputNew);
|
|
break;
|
|
}
|
|
return new Telegr(teleHeader, telegrCntnt);
|
|
}
|
|
}
|