diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCCertificateImporterJSONComplex.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCCertificateImporterJSONComplex.java
deleted file mode 100644
index f0d79405283..00000000000
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCCertificateImporterJSONComplex.java
+++ /dev/null
@@ -1,251 +0,0 @@
-package com.sap.sailing.domain.orc.impl;
-
-import java.io.*;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.commons.io.ByteOrderMark;
-import org.apache.commons.io.input.BOMInputStream;
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.JSONParser;
-import org.json.simple.parser.ParseException;
-
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
-import com.sap.sailing.domain.orc.ORCCertificate;
-import com.sap.sailing.domain.orc.ORCCertificateImporter;
-import com.sap.sse.common.Bearing;
-import com.sap.sse.common.Duration;
-import com.sap.sse.common.Speed;
-import com.sap.sse.common.impl.DegreeBearingImpl;
-
-/**
- * Represents a file in format {@code .json} which is a simple ASCII file format. The {@code .json} file contains an
- * array of maps, each map representing one measurement certificate. The maps have the specific measurement values
- * accessible with a {@link String} for each boat.
- *
- *
- * The result of successfully parsing a {@code .json} file is a map keyed by the sailing number, with values being
- * equal-sized maps from the key names to the {@link String} values.
- *
- * @author Daniel Lisunkin (i505543)
- *
- */
-public class ORCCertificateImporterJSONComplex implements ORCCertificateImporter {
-
- private Map data;
- private static final int[] twsDistances = new int[] { 6, 8, 10, 12, 14, 16, 20 };
- private static final String RUN = "Run";
- private static final String BEAT = "Beat";
-
- /**
- * Receives an {@link InputStream} from different possible sources (web, local file, ...) and does parse the
- * {@code .json} file.
- *
- * @param in
- * @throws IOException
- * @throws ParseException
- */
- public ORCCertificateImporterJSONComplex(InputStream in) throws IOException, ParseException {
- Map result = new HashMap<>();
-
- String defaultEncoding = "UTF-8";
- BOMInputStream bOMInputStream = new BOMInputStream(in);
- ByteOrderMark bom = bOMInputStream.getBOM();
- String charsetName = bom == null ? defaultEncoding : bom.getCharsetName();
- InputStreamReader reader = new InputStreamReader(new BufferedInputStream(bOMInputStream), charsetName);
-
- JSONObject parsedJson = (JSONObject) new JSONParser().parse(reader);
-
- JSONArray dataArray = (JSONArray) parsedJson.get("rms");
- for (int i = 0; i < dataArray.size(); i++) {
- JSONObject object = (JSONObject) dataArray.get(i);
- result.put(((String) object.get("SailNo")).replaceAll(" ", ""), object);
- }
-
- data = result;
- }
-
- /**
- * Returns an {@link ORCCertificateImpl} object for a given {@link String} key. If there is no map value for the
- * given key, the method returns {@link null}.
- */
- @Override
- public ORCCertificate getCertificate(String sailnumber) {
- firstStepOfParse(sailnumber);
- secondStepOfParse(null, null, null, null);
-
- return null;
- }
-
- private ORCCertificate firstStepOfParse(String sailnumber) {
- String searchString = sailnumber.replaceAll(" ", "").toUpperCase();
-
- JSONObject object = (JSONObject) data.get(searchString);
- if (object == null) {
- return null;
- }
-
- Map general = new HashMap<>();
- Map hull = new HashMap<>();
- Map sails = new HashMap<>();
- Map scoring = new HashMap<>();
- Map> twaCourses = new HashMap<>();
- Map> predefinedCourses = new HashMap<>();
- Map beatAngles = new HashMap<>();
- Map gybeAngles = new HashMap<>();
-
- for (Object key : object.keySet()) {
- switch ((String) key) {
- // TODO: nicer! Instead of switch cases, if else condition with ((String) key).matches() expressions
- case "NatAuth":
- case "BIN":
- case "RefNo":
- case "SailNo":
- case "YachtName":
- case "Class":
- case "Builder":
- case "Designer":
- case "Division":
- case "IssueDate": {
- general.put((String) key, (String) object.get(key));
- break;
- }
- case "LOA":
- case "CrewWT":
- case "IMSL":
- case "Draft":
- case "MB":
- case "Dspl_Measurement":
- case "Stability_Index":
- case "Dynamic_Allowance":
- case "Age_Year":
- case "Dspl_Sailing":
- case "WSS": {
- hull.put((String) key, (Number) object.get(key));
- break;
- }
- case "Area_Main":
- case "Area_Jib":
- case "Area_Sym":
- case "Area_ASym": {
- sails.put((String) key, (Number) object.get(key));
- break;
- }
- case "GPH":
- case "TMF_Inshore":
- case "ILCWA":
- case "TMF_Offshore":
- case "OSN":
- case "CDL":
- case "TN_Offshore_Low":
- case "TN_Offshore_Medium":
- case "TN_Offshore_High":
- case "TN_Inshore_Low":
- case "TN_Inshore_Medium":
- case "TN_Inshore_High":
- case "TND_Offshore_Low":
- case "TND_Offshore_Medium":
- case "TND_Offshore_High":
- case "TND_Inshore_Low":
- case "TND_Inshore_Medium":
- case "TND_Inshore_High":
- case "Double_Handed_TOD":
- case "Double_Handed_TOT":
- case "OSN_Jibs":
- case "TMF_Jibs": {
- scoring.put((String) key, (Number) object.get(key));
- break;
- }
- case "Allowances": {
- JSONObject allowances = (JSONObject) object.get("Allowances");
- for (Object aKey : allowances.keySet()) {
- JSONArray array = (JSONArray) allowances.get(aKey);
-
- if (((String) aKey).equals("BeatAngle")) {
- for (int i = 0; i < array.size(); i++) {
- beatAngles.put(new KnotSpeedImpl(twsDistances[i]),
- new DegreeBearingImpl(((Number) array.get(i)).doubleValue()));
- }
- continue;
- }
-
- if (((String) aKey).equals("GybeAngle")) {
- for (int i = 0; i < array.size(); i++) {
- gybeAngles.put(new KnotSpeedImpl(twsDistances[i]),
- new DegreeBearingImpl(((Number) array.get(i)).doubleValue()));
- }
- continue;
- }
-
- Map twsMap = new HashMap<>();
- for (int i = 0; i < array.size(); i++) {
- twsMap.put(new KnotSpeedImpl(twsDistances[i]),
- Duration.ONE_SECOND.times(((Number) array.get(i)).doubleValue()));
- }
-
- switch ((String) aKey) {
- case "R52":
- case "R60":
- case "R75":
- case "R90":
- case "R110":
- case "R120":
- case "R135":
- case "R150": {
- twaCourses.put((String) aKey, twsMap);
- break;
- }
- default: {
- predefinedCourses.put((String) aKey, twsMap);
- }
- }
- }
- break;
- }
- default: {
- }
- }
- }
-
- return null;
- }
-
- private Map> secondStepOfParse(Map> twaCourses,
- Map beatAngles, Map gybeAngles, Map> predefinedCourses) {
- Map> result = new HashMap<>();
- for (Speed tws : ORCCertificateImpl.ALLOWANCES_TRUE_WIND_SPEEDS) {
- result.put(tws, new HashMap());
- }
- for (String keyTWA : twaCourses.keySet()) {
- int twa = Integer.parseInt(keyTWA.substring(1));
-
- for (Speed keyTWS : twaCourses.get(keyTWA).keySet()) {
- result.get(keyTWS).put(new DegreeBearingImpl(twa), twaCourses.get(keyTWA).get(keyTWS));
- }
- }
- for (Speed tws : result.keySet()) {
- result.get(tws).put(beatAngles.get(tws), predefinedCourses.get(BEAT).get(tws));
- result.get(tws).put(gybeAngles.get(tws), predefinedCourses.get(RUN).get(tws));
- }
-
- return result;
- }
-
-
- /**
- * Returns a {@link Map} of {@link ORCCertificateImpl} keyed by the {@link String} sailnumbers, which were given as
- * an input inside an array.
- */
- @Override
- public Map getCertificates(String[] sailnumbers) {
- Map result = new HashMap<>();
-
- for (String sailnumber : sailnumbers) {
- result.put(sailnumber, getCertificate(sailnumber));
- }
-
- return result;
- }
-
-}
\ No newline at end of file