mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-04 03:13:49 +00:00
refactored SwissTiming connector APIs
This commit is contained in:
1 parent
9ee8128701
commit
c802d2885d
10 files changed
+104
-27
No files matched your search
+8
@@ -0,0 +1,8 @@
|
||||
package com.sap.sailing.domain.swisstimingadapter;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
public interface SailMasterConnector {
|
||||
SailMasterMessage sendRequestAndGetResponse(String requestMessage) throws UnknownHostException, IOException;
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package com.sap.sailing.domain.swisstimingadapter;
|
||||
|
||||
public interface SailMasterMessage {
|
||||
|
||||
/**
|
||||
* @return the entire message with STX and ETX stripped
|
||||
*/
|
||||
String getMessage();
|
||||
|
||||
/**
|
||||
* @return the {@link #getMessage()} result split along occurrences of the "|" character ("pipe")
|
||||
*/
|
||||
String[] getSections();
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package com.sap.sailing.domain.swisstimingadapter;
|
||||
|
||||
import com.sap.sailing.domain.swisstimingadapter.impl.SwissTimingFactoryImpl;
|
||||
|
||||
public interface SwissTimingFactory {
|
||||
SwissTimingFactory INSTANCE = new SwissTimingFactoryImpl();
|
||||
|
||||
SwissTimingMessageParser createMessageParser();
|
||||
|
||||
SailMasterConnector createSailMasterConnector(String host, int port);
|
||||
}
|
||||
-3
@@ -1,11 +1,8 @@
|
||||
package com.sap.sailing.domain.swisstimingadapter;
|
||||
|
||||
import com.sap.sailing.domain.swisstimingadapter.impl.SwissTimingMessageParserImpl;
|
||||
import com.sap.sailing.udpconnector.UDPMessageParser;
|
||||
|
||||
public interface SwissTimingMessageParser extends UDPMessageParser<SwissTimingMessage> {
|
||||
SwissTimingMessageParser INSTANCE = new SwissTimingMessageParserImpl();
|
||||
|
||||
SwissTimingMessage parse(byte[] message) throws SwissTimingFormatException;
|
||||
|
||||
SwissTimingMessage parse(byte[] message, int offset, int length) throws SwissTimingFormatException;
|
||||
|
||||
+7
-4
@@ -5,22 +5,25 @@ import java.io.OutputStream;
|
||||
import java.net.Socket;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
public class SailMasterConnector extends SailMasterTransceiver {
|
||||
import com.sap.sailing.domain.swisstimingadapter.SailMasterConnector;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SailMasterMessage;
|
||||
|
||||
public class SailMasterConnectorImpl extends SailMasterTransceiver implements SailMasterConnector {
|
||||
private final String host;
|
||||
private final int port;
|
||||
private Socket socket;
|
||||
|
||||
public SailMasterConnector(String host, int port) {
|
||||
public SailMasterConnectorImpl(String host, int port) {
|
||||
super();
|
||||
this.host = host;
|
||||
this.port = port;
|
||||
}
|
||||
|
||||
public String sendRequestAndGetResponse(String requestMessage) throws UnknownHostException, IOException {
|
||||
public SailMasterMessage sendRequestAndGetResponse(String requestMessage) throws UnknownHostException, IOException {
|
||||
ensureSocketIsOpen();
|
||||
OutputStream os = socket.getOutputStream();
|
||||
sendMessage(requestMessage, os);
|
||||
return receiveMessage(socket.getInputStream());
|
||||
return new SailMasterMessageImpl(receiveMessage(socket.getInputStream()));
|
||||
}
|
||||
|
||||
private void ensureSocketIsOpen() throws UnknownHostException, IOException {
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package com.sap.sailing.domain.swisstimingadapter.impl;
|
||||
|
||||
import com.sap.sailing.domain.swisstimingadapter.SailMasterMessage;
|
||||
|
||||
public class SailMasterMessageImpl implements SailMasterMessage {
|
||||
private final String message;
|
||||
|
||||
public SailMasterMessageImpl(String message) {
|
||||
super();
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getSections() {
|
||||
return getMessage().split("|");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getMessage();
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package com.sap.sailing.domain.swisstimingadapter.impl;
|
||||
|
||||
import com.sap.sailing.domain.swisstimingadapter.SailMasterConnector;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
|
||||
import com.sap.sailing.domain.swisstimingadapter.SwissTimingMessageParser;
|
||||
|
||||
public class SwissTimingFactoryImpl implements SwissTimingFactory {
|
||||
|
||||
@Override
|
||||
public SwissTimingMessageParser createMessageParser() {
|
||||
return new SwissTimingMessageParserImpl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public SailMasterConnector createSailMasterConnector(String host, int port) {
|
||||
return new SailMasterConnectorImpl(host, port);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user