feat: adjust receiver and sender parsing

This commit is contained in:
dancingCycle 2022-02-23 09:25:05 -05:00
parent c5848854d4
commit 846c7961af
11 changed files with 63 additions and 134 deletions

View File

@ -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;
}
}

View File

@ -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;
} }
} }

View File

@ -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;
} }
} }

View File

@ -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);

View File

@ -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];
} }

View File

@ -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

View File

@ -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);

View File

@ -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;
} }
} }

View File

@ -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;
} }
} }

View File

@ -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];
} }

View File

@ -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);