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;
public class Receiver {
private final String receiver;
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;
public class Receiver extends Peer{
public Receiver(String type, String id) {
super(type, id);
}
}

View File

@ -1,22 +1,7 @@
package de.swingbe.ifleet.model;
public class Sender {
private final String sender;
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;
public class Sender extends Peer{
public Sender(String type, String id) {
super(type, id);
}
}

View File

@ -4,15 +4,9 @@ import de.swingbe.ifleet.model.Communication;
import de.swingbe.ifleet.model.Header;
import de.swingbe.ifleet.model.Telegram;
import de.swingbe.ifleet.utils.TelegramUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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() {
}
@ -33,8 +27,6 @@ class ComParserImpl implements ComParser {
//parse Telegram
String inputSupPop = TelegramUtils.popField(inputSup, 4);
telegram = TelegramParserFactory.createTelegramParser().parse(inputSupPop);
} else {
LOG.warn("telegram NOT included");
}
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.Entity;
import de.swingbe.ifleet.utils.TelegramUtils;
import java.util.Arrays;
@ -16,19 +17,19 @@ class EntityParserImpl implements EntityParser {
String[] splits = input.split(" ");
//parse date
String date = null;
String date = "";
if (splits.length > 0) {
date = splits[0];
}
//parse time
String time = null;
String time = "";
if (splits.length > 1) {
time = splits[1];
}
//parse log level
String logLevel = null;
String logLevel = "";
if (splits.length > 2) {
logLevel = splits[2];
}
@ -36,30 +37,30 @@ class EntityParserImpl implements EntityParser {
//index three is empty
//parse addressPartA
String addressPartA = null;
String addressPartA = "";
if (splits.length > 4) {
addressPartA = splits[4].replaceFirst("\\[", "");
}
//parse addressPartB
String addressPartB = null;
String addressPartB = "";
if (splits.length > 5) {
addressPartB = splits[5].replaceFirst("/", "")
.replaceFirst("\\]", "");
}
//parse peer
String peer = null;
String peer = "";
if (splits.length > 6) {
peer = splits[6];
}
//parse address next
String addressNext = null;
String addressNext = "";
if (splits.length > 7) {
addressNext = splits[7].replaceFirst("/", "");
}
//parse direction
String direction = null;
String direction = "";
if (splits.length > 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.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.utils.TelegramUtils.popField;
@ -13,8 +10,6 @@ class LocationMsgParserImpl implements LocationMsgParser {
public final static int DRIVER_NO_FIELD_NO = 1;
private final static Logger LOG = LoggerFactory.getLogger(LocationMsgParserImpl.class);
public LocationMsg parse(String input) {
//parse position
@ -28,8 +23,6 @@ class LocationMsgParserImpl implements LocationMsgParser {
String driverNo = "";
if (splits.length > 0) {
driverNo = splits[0];
} else {
LOG.warn("driverNo unavailable");
}
//parse trip

View File

@ -1,17 +1,9 @@
package de.swingbe.ifleet.parser;
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 {
private final static Logger LOG = LoggerFactory.getLogger(PositionParserImpl.class);
@Override
public Position parse(final String input) {
@ -23,56 +15,42 @@ public class PositionParserImpl implements PositionParser {
String netPoint = "";
if (splits.length > 0) {
netPoint = splits[0];
} else {
LOG.warn("netPoint unavailable");
}
//parse RelPosition
String relPosition = "";
if (splits.length > 1) {
relPosition = splits[1];
} else {
LOG.warn("relPosition unavailable");
}
//parse lon
String lon = "";
if (splits.length > 2) {
lon = splits[2];
} else {
LOG.warn("lon unavailable");
}
//parse lat
String lat = "";
if (splits.length > 3) {
lat = splits[3];
} else {
LOG.warn("lat unavailable");
}
//parse offRoute
String offRoute = "";
if (splits.length > 4) {
offRoute = splits[4];
} else {
LOG.warn("offRoute unavailable");
}
//parse vel
String vel = "";
if (splits.length > 5) {
vel = splits[5];
} else {
LOG.warn("vel unavailable");
}
//parse hdg
String hdg = "";
if (splits.length > 6) {
hdg = splits[6];
} else {
LOG.warn("hdg unavailable");
}
return new Position(netPoint, relPosition, lon, lat, offRoute, vel, hdg);

View File

@ -7,25 +7,21 @@ class ReceiverParserImpl implements ReceiverParser {
@Override
public Receiver parse(final String input) {
Receiver receiver = null;
String[] splits = input.split("#");
//parse receiver part A
String receiverPartA = null;
//parse type
String type = "";
if (splits.length > 0) {
receiverPartA = splits[0];
type = splits[0];
}
//parse receiver part A
String receiverPartB = null;
//parse id
String id = "";
if (splits.length > 1) {
receiverPartB = splits[1];
id = splits[1];
}
if (receiverPartA != null && receiverPartB != null) {
receiver = new Receiver(receiverPartA + "#" + receiverPartB);
}
return receiver;
return new Receiver(type, id);
}
}

View File

@ -6,25 +6,20 @@ class SenderParserImpl implements SenderParser {
public Sender parse(final String input) {
Sender sender = null;
String[] splits = input.split("#");
//parse sender part A
String senderPartA = null;
//parse type
String type = "";
if (splits.length > 0) {
senderPartA = splits[0];
type = splits[0];
}
//parse sender part A
String senderPartB = null;
//parse id
String id = "";
if (splits.length > 1) {
senderPartB = splits[1];
id = splits[1];
}
if (senderPartA != null && senderPartB != null) {
sender = new Sender(senderPartA + "#" + senderPartB);
}
return sender;
return new Sender(type, id);
}
}

View File

@ -11,28 +11,24 @@ class TelegramHdrParserImpl implements TelegramHdrParser {
TelegramHdrParserImpl() {
}
public static boolean isNumeric(String str) {
return str != null && str.matches("[0-9.]+");
}
public TelegramHdr parse(final String input) {
String[] splits = input.split("#");
//parse type
String type = null;
//parse teleType
String type = "";
if (splits.length > 0) {
type = splits[0];
}
//parse version
String version = null;
//parse teleVersion
String version = "";
if (splits.length > 1) {
version = splits[1];
}
//parse id
String id = null;
//parse teleId
String id = "";
if (splits.length > 2) {
id = splits[2];
}

View File

@ -1,13 +1,9 @@
package de.swingbe.ifleet.parser;
import de.swingbe.ifleet.model.Trip;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TripParserImpl implements TripParser {
private final static Logger LOG = LoggerFactory.getLogger(TripParserImpl.class);
@Override
public Trip parse(final String input) {
@ -19,64 +15,48 @@ public class TripParserImpl implements TripParser {
String blockNo = "";
if (splits.length > 0) {
blockNo = splits[0];
} else {
LOG.warn("blockNo unavailable");
}
//parse lineNo
String lineNo = "";
if (splits.length > 1) {
lineNo = splits[1];
} else {
LOG.warn("lineNo unavailable");
}
//parse tripNo
String tripNo = "";
if (splits.length > 2) {
tripNo = splits[2];
} else {
LOG.warn("tripNo unavailable");
}
//parse routeNo
String routeNo = "";
if (splits.length > 3) {
routeNo = splits[3];
} else {
LOG.warn("routeNo unavailable");
}
//parse deviation
String deviation = "";
if (splits.length > 4) {
deviation = splits[4];
} else {
LOG.warn("deviation unavailable");
}
//parse loadDegree
String loadDegree = "";
if (splits.length > 5) {
loadDegree = splits[5];
} else {
LOG.warn("loadDegree unavailable");
}
//parse destinationNo
String destinationNo = "";
if (splits.length > 6) {
destinationNo = splits[6];
} else {
LOG.warn("destinationNo unavailable");
}
//parse tripType
String tripType = "";
if (splits.length > 6) {
tripType = splits[6];
} else {
LOG.warn("tripType unavailable");
}
return new Trip(blockNo, lineNo, tripNo, routeNo, deviation, loadDegree, destinationNo, tripType);