Merge remote-tracking branch 'remotes/origin/master' into story1291-hp
This commit is contained in:
@@ -183,6 +183,10 @@ public class BoatXMLReader extends XMLReader implements BoatDataSource {
|
||||
return sequenceNumber;
|
||||
}
|
||||
|
||||
public void setSequenceNumber(int sequenceNumber) {
|
||||
this.sequenceNumber = sequenceNumber;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void incrementSequenceNumber() {
|
||||
sequenceNumber++;
|
||||
|
||||
@@ -22,7 +22,7 @@ public class EmptyBoatDataSource implements BoatDataSource {
|
||||
private final Map<Integer, Mark> markerMap = new HashMap<>();
|
||||
|
||||
|
||||
private int sequenceNumber = 0;
|
||||
private int sequenceNumber = -1;
|
||||
|
||||
|
||||
public EmptyBoatDataSource() {
|
||||
|
||||
@@ -84,7 +84,7 @@ public class EmptyRaceDataSource implements RaceDataSource {
|
||||
private RaceTypeEnum raceType = RaceTypeEnum.NOT_A_RACE_TYPE;
|
||||
|
||||
|
||||
private int sequenceNumber = 0;
|
||||
private int sequenceNumber = -1;
|
||||
|
||||
|
||||
public EmptyRaceDataSource() {
|
||||
|
||||
@@ -60,7 +60,7 @@ public class EmptyRegattaDataSource implements RegattaDataSource {
|
||||
|
||||
|
||||
|
||||
private int sequenceNumber = 0;
|
||||
private int sequenceNumber = -1;
|
||||
|
||||
|
||||
public EmptyRegattaDataSource() {
|
||||
|
||||
@@ -499,6 +499,10 @@ public class RaceXMLReader extends XMLReader implements RaceDataSource {
|
||||
return sequenceNumber;
|
||||
}
|
||||
|
||||
public void setSequenceNumber(int sequenceNumber) {
|
||||
this.sequenceNumber = sequenceNumber;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void incrementSequenceNumber() {
|
||||
sequenceNumber++;
|
||||
|
||||
@@ -217,6 +217,10 @@ public class RegattaXMLReader extends XMLReader implements RegattaDataSource {
|
||||
return sequenceNumber;
|
||||
}
|
||||
|
||||
public void setSequenceNumber(int sequenceNumber) {
|
||||
this.sequenceNumber = sequenceNumber;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void incrementSequenceNumber() {
|
||||
sequenceNumber++;
|
||||
|
||||
@@ -148,9 +148,11 @@ public abstract class RaceState extends Observable{
|
||||
* @param raceDataSource New race data source.
|
||||
*/
|
||||
public void setRaceDataSource(RaceDataSource raceDataSource) {
|
||||
this.raceDataSource = raceDataSource;
|
||||
this.getRaceClock().setStartingTime(raceDataSource.getStartDateTime());
|
||||
useLegsList(raceDataSource.getLegs());
|
||||
if ((this.raceDataSource == null) || (raceDataSource.getSequenceNumber() > this.raceDataSource.getSequenceNumber())) {
|
||||
this.raceDataSource = raceDataSource;
|
||||
this.getRaceClock().setStartingTime(raceDataSource.getStartDateTime());
|
||||
useLegsList(raceDataSource.getLegs());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -158,7 +160,9 @@ public abstract class RaceState extends Observable{
|
||||
* @param boatDataSource New boat data source.
|
||||
*/
|
||||
public void setBoatDataSource(BoatDataSource boatDataSource) {
|
||||
this.boatDataSource = boatDataSource;
|
||||
if ((this.boatDataSource == null) || (boatDataSource.getSequenceNumber() > this.boatDataSource.getSequenceNumber())) {
|
||||
this.boatDataSource = boatDataSource;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -166,7 +170,9 @@ public abstract class RaceState extends Observable{
|
||||
* @param regattaDataSource New regatta data source.
|
||||
*/
|
||||
public void setRegattaDataSource(RegattaDataSource regattaDataSource) {
|
||||
this.regattaDataSource = regattaDataSource;
|
||||
if ((this.regattaDataSource == null) || (regattaDataSource.getSequenceNumber() > this.regattaDataSource.getSequenceNumber())) {
|
||||
this.regattaDataSource = regattaDataSource;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
package shared.utils;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.Charset;
|
||||
|
||||
/**
|
||||
* A helper class that has functions to read information from a url to json object.
|
||||
*/
|
||||
public class JsonReader {
|
||||
|
||||
/**
|
||||
* Reads all data from a Reader
|
||||
* @param rd reader to read from
|
||||
* @return string that the reader has currently read
|
||||
* @throws IOException if the reader is invalid
|
||||
*/
|
||||
private static String readAll(Reader rd) throws IOException {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
int cp;
|
||||
while ((cp = rd.read()) != -1) {
|
||||
sb.append((char) cp);
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads a Json Object from a URL
|
||||
* @param url url to read from
|
||||
* @return JSONObject that has been read
|
||||
* @throws IOException if the reader cannot obtain information
|
||||
* @throws JSONException if the read information is not json parsable.
|
||||
*/
|
||||
public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException {
|
||||
InputStream is = new URL(url).openStream();
|
||||
try {
|
||||
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
|
||||
String jsonText = readAll(rd);
|
||||
JSONObject json = new JSONObject(jsonText);
|
||||
return json;
|
||||
} catch (JSONException e) {
|
||||
return null;
|
||||
} finally {
|
||||
is.close();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads a Json Array from a URL
|
||||
* @param url url to read from
|
||||
* @return JSONArray that has been read
|
||||
* @throws IOException if the reader cannot obtain information
|
||||
* @throws JSONException if the read information is not json parsable.
|
||||
*/
|
||||
public static JSONArray readJsonFromUrlArray(String url) throws IOException, JSONException {
|
||||
InputStream is = new URL(url).openStream();
|
||||
try {
|
||||
BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
|
||||
String jsonText = readAll(rd);
|
||||
JSONArray json = new JSONArray(jsonText);
|
||||
return json;
|
||||
} finally {
|
||||
is.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user