feat: adjust receiver and sender parsing
This commit is contained in:
parent
c5848854d4
commit
846c7961af
|
@ -0,0 +1,28 @@
|
||||||
|
package de.swingbe.ifleet.model;
|
||||||
|
|
||||||
|
public class Peer {
|
||||||
|
|
||||||
|
private final String type;
|
||||||
|
private final String id;
|
||||||
|
|
||||||
|
public Peer(String type, String id) {
|
||||||
|
this.type = type;
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Peer{" +
|
||||||
|
"type='" + type + '\'' +
|
||||||
|
", id='" + id + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,22 +1,7 @@
|
||||||
package de.swingbe.ifleet.model;
|
package de.swingbe.ifleet.model;
|
||||||
|
|
||||||
public class Receiver {
|
public class Receiver extends Peer{
|
||||||
|
public Receiver(String type, String id) {
|
||||||
private final String receiver;
|
super(type, id);
|
||||||
|
|
||||||
public Receiver(String receiver) {
|
|
||||||
this.receiver = receiver;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getReceiver() {
|
|
||||||
return receiver;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
String rString = "Receiver{";
|
|
||||||
rString += receiver != null ? "receiver='" + receiver + '\'' : "" + '\'';
|
|
||||||
rString += '}';
|
|
||||||
return rString;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,22 +1,7 @@
|
||||||
package de.swingbe.ifleet.model;
|
package de.swingbe.ifleet.model;
|
||||||
|
|
||||||
public class Sender {
|
public class Sender extends Peer{
|
||||||
|
public Sender(String type, String id) {
|
||||||
private final String sender;
|
super(type, id);
|
||||||
|
|
||||||
public Sender(String sender) {
|
|
||||||
this.sender = sender;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSender() {
|
|
||||||
return sender;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
String sString = "Sender{";
|
|
||||||
sString += sender != null ? "sender='" + sender + '\'' : "" + '\'';
|
|
||||||
sString += '}';
|
|
||||||
return sString;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,15 +4,9 @@ import de.swingbe.ifleet.model.Communication;
|
||||||
import de.swingbe.ifleet.model.Header;
|
import de.swingbe.ifleet.model.Header;
|
||||||
import de.swingbe.ifleet.model.Telegram;
|
import de.swingbe.ifleet.model.Telegram;
|
||||||
import de.swingbe.ifleet.utils.TelegramUtils;
|
import de.swingbe.ifleet.utils.TelegramUtils;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
class ComParserImpl implements ComParser {
|
class ComParserImpl implements ComParser {
|
||||||
|
|
||||||
private final static Logger LOG = LoggerFactory.getLogger(ComParserImpl.class);
|
|
||||||
private static final String SEP = "#";
|
|
||||||
private static final String END = System.getProperty("line.separator");
|
|
||||||
|
|
||||||
ComParserImpl() {
|
ComParserImpl() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,8 +27,6 @@ class ComParserImpl implements ComParser {
|
||||||
//parse Telegram
|
//parse Telegram
|
||||||
String inputSupPop = TelegramUtils.popField(inputSup, 4);
|
String inputSupPop = TelegramUtils.popField(inputSup, 4);
|
||||||
telegram = TelegramParserFactory.createTelegramParser().parse(inputSupPop);
|
telegram = TelegramParserFactory.createTelegramParser().parse(inputSupPop);
|
||||||
} else {
|
|
||||||
LOG.warn("telegram NOT included");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Communication(header, telegram);
|
return new Communication(header, telegram);
|
||||||
|
|
|
@ -2,6 +2,7 @@ package de.swingbe.ifleet.parser;
|
||||||
|
|
||||||
import de.swingbe.ifleet.model.Communication;
|
import de.swingbe.ifleet.model.Communication;
|
||||||
import de.swingbe.ifleet.model.Entity;
|
import de.swingbe.ifleet.model.Entity;
|
||||||
|
import de.swingbe.ifleet.utils.TelegramUtils;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
@ -16,19 +17,19 @@ class EntityParserImpl implements EntityParser {
|
||||||
String[] splits = input.split(" ");
|
String[] splits = input.split(" ");
|
||||||
|
|
||||||
//parse date
|
//parse date
|
||||||
String date = null;
|
String date = "";
|
||||||
if (splits.length > 0) {
|
if (splits.length > 0) {
|
||||||
date = splits[0];
|
date = splits[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse time
|
//parse time
|
||||||
String time = null;
|
String time = "";
|
||||||
if (splits.length > 1) {
|
if (splits.length > 1) {
|
||||||
time = splits[1];
|
time = splits[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse log level
|
//parse log level
|
||||||
String logLevel = null;
|
String logLevel = "";
|
||||||
if (splits.length > 2) {
|
if (splits.length > 2) {
|
||||||
logLevel = splits[2];
|
logLevel = splits[2];
|
||||||
}
|
}
|
||||||
|
@ -36,30 +37,30 @@ class EntityParserImpl implements EntityParser {
|
||||||
//index three is empty
|
//index three is empty
|
||||||
|
|
||||||
//parse addressPartA
|
//parse addressPartA
|
||||||
String addressPartA = null;
|
String addressPartA = "";
|
||||||
if (splits.length > 4) {
|
if (splits.length > 4) {
|
||||||
addressPartA = splits[4].replaceFirst("\\[", "");
|
addressPartA = splits[4].replaceFirst("\\[", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse addressPartB
|
//parse addressPartB
|
||||||
String addressPartB = null;
|
String addressPartB = "";
|
||||||
if (splits.length > 5) {
|
if (splits.length > 5) {
|
||||||
addressPartB = splits[5].replaceFirst("/", "")
|
addressPartB = splits[5].replaceFirst("/", "")
|
||||||
.replaceFirst("\\]", "");
|
.replaceFirst("\\]", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse peer
|
//parse peer
|
||||||
String peer = null;
|
String peer = "";
|
||||||
if (splits.length > 6) {
|
if (splits.length > 6) {
|
||||||
peer = splits[6];
|
peer = splits[6];
|
||||||
}
|
}
|
||||||
//parse address next
|
//parse address next
|
||||||
String addressNext = null;
|
String addressNext = "";
|
||||||
if (splits.length > 7) {
|
if (splits.length > 7) {
|
||||||
addressNext = splits[7].replaceFirst("/", "");
|
addressNext = splits[7].replaceFirst("/", "");
|
||||||
}
|
}
|
||||||
//parse direction
|
//parse direction
|
||||||
String direction = null;
|
String direction = "";
|
||||||
if (splits.length > 8) {
|
if (splits.length > 8) {
|
||||||
direction = splits[8];
|
direction = splits[8];
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,9 +2,6 @@ package de.swingbe.ifleet.parser;
|
||||||
|
|
||||||
import de.swingbe.ifleet.model.LocationMsg;
|
import de.swingbe.ifleet.model.LocationMsg;
|
||||||
import de.swingbe.ifleet.model.Position;
|
import de.swingbe.ifleet.model.Position;
|
||||||
import de.swingbe.ifleet.model.Trip;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import static de.swingbe.ifleet.model.Position.POSITION_FIELD_NO;
|
import static de.swingbe.ifleet.model.Position.POSITION_FIELD_NO;
|
||||||
import static de.swingbe.ifleet.utils.TelegramUtils.popField;
|
import static de.swingbe.ifleet.utils.TelegramUtils.popField;
|
||||||
|
@ -13,8 +10,6 @@ class LocationMsgParserImpl implements LocationMsgParser {
|
||||||
|
|
||||||
public final static int DRIVER_NO_FIELD_NO = 1;
|
public final static int DRIVER_NO_FIELD_NO = 1;
|
||||||
|
|
||||||
private final static Logger LOG = LoggerFactory.getLogger(LocationMsgParserImpl.class);
|
|
||||||
|
|
||||||
public LocationMsg parse(String input) {
|
public LocationMsg parse(String input) {
|
||||||
|
|
||||||
//parse position
|
//parse position
|
||||||
|
@ -28,8 +23,6 @@ class LocationMsgParserImpl implements LocationMsgParser {
|
||||||
String driverNo = "";
|
String driverNo = "";
|
||||||
if (splits.length > 0) {
|
if (splits.length > 0) {
|
||||||
driverNo = splits[0];
|
driverNo = splits[0];
|
||||||
} else {
|
|
||||||
LOG.warn("driverNo unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse trip
|
//parse trip
|
||||||
|
|
|
@ -1,17 +1,9 @@
|
||||||
package de.swingbe.ifleet.parser;
|
package de.swingbe.ifleet.parser;
|
||||||
|
|
||||||
import de.swingbe.ifleet.model.Position;
|
import de.swingbe.ifleet.model.Position;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
import static de.swingbe.ifleet.parser.TelegramHdrParserImpl.isNumeric;
|
|
||||||
|
|
||||||
public class PositionParserImpl implements PositionParser {
|
public class PositionParserImpl implements PositionParser {
|
||||||
|
|
||||||
private final static Logger LOG = LoggerFactory.getLogger(PositionParserImpl.class);
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Position parse(final String input) {
|
public Position parse(final String input) {
|
||||||
|
|
||||||
|
@ -23,56 +15,42 @@ public class PositionParserImpl implements PositionParser {
|
||||||
String netPoint = "";
|
String netPoint = "";
|
||||||
if (splits.length > 0) {
|
if (splits.length > 0) {
|
||||||
netPoint = splits[0];
|
netPoint = splits[0];
|
||||||
} else {
|
|
||||||
LOG.warn("netPoint unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse RelPosition
|
//parse RelPosition
|
||||||
String relPosition = "";
|
String relPosition = "";
|
||||||
if (splits.length > 1) {
|
if (splits.length > 1) {
|
||||||
relPosition = splits[1];
|
relPosition = splits[1];
|
||||||
} else {
|
|
||||||
LOG.warn("relPosition unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse lon
|
//parse lon
|
||||||
String lon = "";
|
String lon = "";
|
||||||
if (splits.length > 2) {
|
if (splits.length > 2) {
|
||||||
lon = splits[2];
|
lon = splits[2];
|
||||||
} else {
|
|
||||||
LOG.warn("lon unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse lat
|
//parse lat
|
||||||
String lat = "";
|
String lat = "";
|
||||||
if (splits.length > 3) {
|
if (splits.length > 3) {
|
||||||
lat = splits[3];
|
lat = splits[3];
|
||||||
} else {
|
|
||||||
LOG.warn("lat unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse offRoute
|
//parse offRoute
|
||||||
String offRoute = "";
|
String offRoute = "";
|
||||||
if (splits.length > 4) {
|
if (splits.length > 4) {
|
||||||
offRoute = splits[4];
|
offRoute = splits[4];
|
||||||
} else {
|
|
||||||
LOG.warn("offRoute unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse vel
|
//parse vel
|
||||||
String vel = "";
|
String vel = "";
|
||||||
if (splits.length > 5) {
|
if (splits.length > 5) {
|
||||||
vel = splits[5];
|
vel = splits[5];
|
||||||
} else {
|
|
||||||
LOG.warn("vel unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse hdg
|
//parse hdg
|
||||||
String hdg = "";
|
String hdg = "";
|
||||||
if (splits.length > 6) {
|
if (splits.length > 6) {
|
||||||
hdg = splits[6];
|
hdg = splits[6];
|
||||||
} else {
|
|
||||||
LOG.warn("hdg unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Position(netPoint, relPosition, lon, lat, offRoute, vel, hdg);
|
return new Position(netPoint, relPosition, lon, lat, offRoute, vel, hdg);
|
||||||
|
|
|
@ -7,25 +7,21 @@ class ReceiverParserImpl implements ReceiverParser {
|
||||||
@Override
|
@Override
|
||||||
public Receiver parse(final String input) {
|
public Receiver parse(final String input) {
|
||||||
|
|
||||||
Receiver receiver = null;
|
|
||||||
String[] splits = input.split("#");
|
String[] splits = input.split("#");
|
||||||
|
|
||||||
//parse receiver part A
|
//parse type
|
||||||
String receiverPartA = null;
|
String type = "";
|
||||||
if (splits.length > 0) {
|
if (splits.length > 0) {
|
||||||
receiverPartA = splits[0];
|
type = splits[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse receiver part A
|
//parse id
|
||||||
String receiverPartB = null;
|
String id = "";
|
||||||
if (splits.length > 1) {
|
if (splits.length > 1) {
|
||||||
receiverPartB = splits[1];
|
id = splits[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (receiverPartA != null && receiverPartB != null) {
|
return new Receiver(type, id);
|
||||||
receiver = new Receiver(receiverPartA + "#" + receiverPartB);
|
|
||||||
}
|
|
||||||
return receiver;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,25 +6,20 @@ class SenderParserImpl implements SenderParser {
|
||||||
|
|
||||||
public Sender parse(final String input) {
|
public Sender parse(final String input) {
|
||||||
|
|
||||||
Sender sender = null;
|
|
||||||
|
|
||||||
String[] splits = input.split("#");
|
String[] splits = input.split("#");
|
||||||
|
|
||||||
//parse sender part A
|
//parse type
|
||||||
String senderPartA = null;
|
String type = "";
|
||||||
if (splits.length > 0) {
|
if (splits.length > 0) {
|
||||||
senderPartA = splits[0];
|
type = splits[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse sender part A
|
//parse id
|
||||||
String senderPartB = null;
|
String id = "";
|
||||||
if (splits.length > 1) {
|
if (splits.length > 1) {
|
||||||
senderPartB = splits[1];
|
id = splits[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (senderPartA != null && senderPartB != null) {
|
return new Sender(type, id);
|
||||||
sender = new Sender(senderPartA + "#" + senderPartB);
|
|
||||||
}
|
|
||||||
return sender;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,28 +11,24 @@ class TelegramHdrParserImpl implements TelegramHdrParser {
|
||||||
TelegramHdrParserImpl() {
|
TelegramHdrParserImpl() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isNumeric(String str) {
|
|
||||||
return str != null && str.matches("[0-9.]+");
|
|
||||||
}
|
|
||||||
|
|
||||||
public TelegramHdr parse(final String input) {
|
public TelegramHdr parse(final String input) {
|
||||||
|
|
||||||
String[] splits = input.split("#");
|
String[] splits = input.split("#");
|
||||||
|
|
||||||
//parse type
|
//parse teleType
|
||||||
String type = null;
|
String type = "";
|
||||||
if (splits.length > 0) {
|
if (splits.length > 0) {
|
||||||
type = splits[0];
|
type = splits[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse version
|
//parse teleVersion
|
||||||
String version = null;
|
String version = "";
|
||||||
if (splits.length > 1) {
|
if (splits.length > 1) {
|
||||||
version = splits[1];
|
version = splits[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse id
|
//parse teleId
|
||||||
String id = null;
|
String id = "";
|
||||||
if (splits.length > 2) {
|
if (splits.length > 2) {
|
||||||
id = splits[2];
|
id = splits[2];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,9 @@
|
||||||
package de.swingbe.ifleet.parser;
|
package de.swingbe.ifleet.parser;
|
||||||
|
|
||||||
import de.swingbe.ifleet.model.Trip;
|
import de.swingbe.ifleet.model.Trip;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
public class TripParserImpl implements TripParser {
|
public class TripParserImpl implements TripParser {
|
||||||
|
|
||||||
private final static Logger LOG = LoggerFactory.getLogger(TripParserImpl.class);
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Trip parse(final String input) {
|
public Trip parse(final String input) {
|
||||||
|
|
||||||
|
@ -19,64 +15,48 @@ public class TripParserImpl implements TripParser {
|
||||||
String blockNo = "";
|
String blockNo = "";
|
||||||
if (splits.length > 0) {
|
if (splits.length > 0) {
|
||||||
blockNo = splits[0];
|
blockNo = splits[0];
|
||||||
} else {
|
|
||||||
LOG.warn("blockNo unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse lineNo
|
//parse lineNo
|
||||||
String lineNo = "";
|
String lineNo = "";
|
||||||
if (splits.length > 1) {
|
if (splits.length > 1) {
|
||||||
lineNo = splits[1];
|
lineNo = splits[1];
|
||||||
} else {
|
|
||||||
LOG.warn("lineNo unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse tripNo
|
//parse tripNo
|
||||||
String tripNo = "";
|
String tripNo = "";
|
||||||
if (splits.length > 2) {
|
if (splits.length > 2) {
|
||||||
tripNo = splits[2];
|
tripNo = splits[2];
|
||||||
} else {
|
|
||||||
LOG.warn("tripNo unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse routeNo
|
//parse routeNo
|
||||||
String routeNo = "";
|
String routeNo = "";
|
||||||
if (splits.length > 3) {
|
if (splits.length > 3) {
|
||||||
routeNo = splits[3];
|
routeNo = splits[3];
|
||||||
} else {
|
|
||||||
LOG.warn("routeNo unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse deviation
|
//parse deviation
|
||||||
String deviation = "";
|
String deviation = "";
|
||||||
if (splits.length > 4) {
|
if (splits.length > 4) {
|
||||||
deviation = splits[4];
|
deviation = splits[4];
|
||||||
} else {
|
|
||||||
LOG.warn("deviation unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse loadDegree
|
//parse loadDegree
|
||||||
String loadDegree = "";
|
String loadDegree = "";
|
||||||
if (splits.length > 5) {
|
if (splits.length > 5) {
|
||||||
loadDegree = splits[5];
|
loadDegree = splits[5];
|
||||||
} else {
|
|
||||||
LOG.warn("loadDegree unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse destinationNo
|
//parse destinationNo
|
||||||
String destinationNo = "";
|
String destinationNo = "";
|
||||||
if (splits.length > 6) {
|
if (splits.length > 6) {
|
||||||
destinationNo = splits[6];
|
destinationNo = splits[6];
|
||||||
} else {
|
|
||||||
LOG.warn("destinationNo unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//parse tripType
|
//parse tripType
|
||||||
String tripType = "";
|
String tripType = "";
|
||||||
if (splits.length > 6) {
|
if (splits.length > 6) {
|
||||||
tripType = splits[6];
|
tripType = splits[6];
|
||||||
} else {
|
|
||||||
LOG.warn("tripType unavailable");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Trip(blockNo, lineNo, tripNo, routeNo, deviation, loadDegree, destinationNo, tripType);
|
return new Trip(blockNo, lineNo, tripNo, routeNo, deviation, loadDegree, destinationNo, tripType);
|
||||||
|
|
Loading…
Reference in New Issue