mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-12 07:10:55 +00:00
removed SwissTiming OVR import, deprecated by XRR import; preparing for a consolidation of file-based result imports
This commit is contained in:
1 parent
524b67dacd
commit
4dfb8dabc1
71 files changed
+151
-9110
No files matched your search
@@ -8,7 +8,8 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Require-Bundle: com.sap.sailing.server,
|
||||
com.sap.sailing.domain.common,
|
||||
com.sap.sailing.domain
|
||||
com.sap.sailing.domain,
|
||||
com.sap.sailing.resultimport
|
||||
Export-Package: com.sap.sailing.kiworesultimport
|
||||
Bundle-Activator: com.sap.sailing.kiworesultimport.impl.Activator
|
||||
Import-Package: org.osgi.framework
|
||||
+7
-18
@@ -1,33 +1,22 @@
|
||||
package com.sap.sailing.kiworesultimport.impl;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.osgi.framework.BundleActivator;
|
||||
import org.osgi.framework.BundleContext;
|
||||
|
||||
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
|
||||
import com.sap.sailing.resultimport.impl.AbstractFileBasedScoreCorrectionProviderActivator;
|
||||
|
||||
public class Activator implements BundleActivator {
|
||||
private static final Logger logger = Logger.getLogger(Activator.class.getName());
|
||||
public class Activator extends AbstractFileBasedScoreCorrectionProviderActivator {
|
||||
|
||||
private static final String SCAN_DIR_PATH_PROPERTY_NAME = "kiwo.results";
|
||||
private static final String DEFAULT_SCAN_DIR = "kiworesults";
|
||||
|
||||
@Override
|
||||
public void start(BundleContext context) throws Exception {
|
||||
String scanDirPath = context.getProperty(SCAN_DIR_PATH_PROPERTY_NAME);
|
||||
if (scanDirPath == null) {
|
||||
scanDirPath = System.getProperty(SCAN_DIR_PATH_PROPERTY_NAME, DEFAULT_SCAN_DIR);
|
||||
}
|
||||
final ScoreCorrectionProviderImpl service = new ScoreCorrectionProviderImpl(new File(scanDirPath));
|
||||
context.registerService(ScoreCorrectionProvider.class,
|
||||
service, /* properties */ null);
|
||||
logger.info("Scanning "+scanDirPath+" for official result lists of "+service.getName());
|
||||
public Activator() {
|
||||
super(SCAN_DIR_PATH_PROPERTY_NAME, DEFAULT_SCAN_DIR);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void stop(BundleContext context) throws Exception {
|
||||
protected ScoreCorrectionProvider create(File scanDir) {
|
||||
return new ScoreCorrectionProviderImpl(scanDir);
|
||||
}
|
||||
|
||||
}
|
||||
+8
-21
@@ -1,8 +1,8 @@
|
||||
package com.sap.sailing.kiworesultimport.impl;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
@@ -15,34 +15,21 @@ import javax.xml.parsers.ParserConfigurationException;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import com.sap.sailing.domain.common.RegattaScoreCorrections;
|
||||
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.kiworesultimport.ParserFactory;
|
||||
import com.sap.sailing.kiworesultimport.RegattaSummary;
|
||||
import com.sap.sailing.kiworesultimport.ZipFile;
|
||||
import com.sap.sailing.kiworesultimport.ZipFileParser;
|
||||
import com.sap.sailing.resultimport.impl.AbstractFileBasedScoreCorrectionProvider;
|
||||
|
||||
public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider {
|
||||
public class ScoreCorrectionProviderImpl extends AbstractFileBasedScoreCorrectionProvider {
|
||||
private static final long serialVersionUID = -4596215011753860781L;
|
||||
|
||||
private static final String name = "Kieler Woche Official Results by b+m";
|
||||
|
||||
/**
|
||||
* The directory that will be scanned for <code>.zip</code> files which will then be passed to
|
||||
* {@link ZipFileParser} for analysis.
|
||||
*/
|
||||
private final File scanDir;
|
||||
|
||||
public ScoreCorrectionProviderImpl(File scanDir) {
|
||||
super();
|
||||
if (!scanDir.exists()) {
|
||||
scanDir.mkdirs();
|
||||
}
|
||||
if (!scanDir.isDirectory()) {
|
||||
throw new IllegalArgumentException("scanDir "+scanDir+" must be a directory");
|
||||
}
|
||||
this.scanDir = scanDir;
|
||||
super(scanDir);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -70,9 +57,9 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider {
|
||||
private Iterable<RegattaSummary> getAllRegattaSummaries() throws IOException, SAXException, ParserConfigurationException {
|
||||
List<RegattaSummary> result = new ArrayList<RegattaSummary>();
|
||||
ZipFileParser zipFileParser = ParserFactory.INSTANCE.createZipFileParser();
|
||||
for (File file : scanDir.listFiles()) {
|
||||
if (file.getName().toLowerCase().endsWith(".zip")) {
|
||||
ZipFile zipFile = zipFileParser.parse(new FileInputStream(file));
|
||||
for (Pair<InputStream, String> streamAndName : getResultDocumentProvider().getDocumentsAndNames()) {
|
||||
if (streamAndName.getB().toLowerCase().endsWith(".zip")) {
|
||||
ZipFile zipFile = zipFileParser.parse(streamAndName.getA());
|
||||
for (RegattaSummary regattaSummary : zipFile.getRegattaSummaries()) {
|
||||
result.add(regattaSummary);
|
||||
}
|
||||
@@ -80,7 +67,7 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public RegattaScoreCorrections getScoreCorrections(String eventName, String boatClassName,
|
||||
TimePoint timePointPublished) throws IOException, SAXException, ParserConfigurationException {
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="resources"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>com.sap.sailing.odf.resultimport.test</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -1,7 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.7
|
||||
@@ -1,3 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
pluginProject.extensions=false
|
||||
resolve.requirebundle=false
|
||||
@@ -1,9 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Test
|
||||
Bundle-SymbolicName: com.sap.sailing.odf.resultimport.test
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Vendor: SAP
|
||||
Fragment-Host: com.sap.sailing.odf.resultimport
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Require-Bundle: org.junit4;bundle-version="4.8.2"
|
||||
@@ -1,5 +0,0 @@
|
||||
source.. = src/,\
|
||||
resources/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>root</artifactId>
|
||||
<groupId>com.sap.sailing</groupId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>com.sap.sailing.odf.resultimport.test</artifactId>
|
||||
<packaging>eclipse-test-plugin</packaging>
|
||||
</project>
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<OdfBody DocumentCode="SA0000000" DocumentType="DT_SCHEDULE_UPDATE" Version="0" FeedFlag="P" Date="20130205" Time="162033007" LogicalDate="20130205" Venue="WAP">
|
||||
<Competition Code="PG2012">
|
||||
<Discipline Code="SA">
|
||||
<Gender Code="M">
|
||||
<Event Code="004">
|
||||
<Phase Code="9" Type="3">
|
||||
<Unit Code="10" StartDate="2012-08-04T14:30:00+02:00" EstimatedStartDate="true" EndDate="2012-08-04T15:30:00+02:00" EstimatedEndDate="false" Status="7" Medal="0" Venue="WAP" Location="SA3" ModificationIndicator="U">
|
||||
<EstimatedStartText Language="ENG" Value="Followed by" />
|
||||
</Unit>
|
||||
</Phase>
|
||||
</Event>
|
||||
</Gender>
|
||||
</Discipline>
|
||||
</Competition>
|
||||
</OdfBody>
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<OdfBody DocumentCode="SA0000000" DocumentType="DT_SCHEDULE_UPDATE" Version="0" FeedFlag="P" Date="20130205" Time="162041012" LogicalDate="20130205" Venue="WAP">
|
||||
<Competition Code="PG2012">
|
||||
<Discipline Code="SA">
|
||||
<Gender Code="M">
|
||||
<Event Code="007">
|
||||
<Phase Code="9" Type="3">
|
||||
<Unit Code="10" StartDate="2012-08-03T14:50:00+02:00" EstimatedStartDate="true" EndDate="2012-08-03T16:05:00+02:00" EstimatedEndDate="false" Status="7" Medal="0" Venue="WAP" Location="SA4" ModificationIndicator="U">
|
||||
<EstimatedStartText Language="ENG" Value="Followed by" />
|
||||
</Unit>
|
||||
</Phase>
|
||||
</Event>
|
||||
</Gender>
|
||||
</Discipline>
|
||||
</Competition>
|
||||
</OdfBody>
|
||||
-1843
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -1,635 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<OdfBody DocumentCode="SAM004910" DocumentType="DT_START_LIST" Version="0" FeedFlag="P" Date="20130205" Time="162030198" LogicalDate="20130205" Venue="WAP">
|
||||
<Competition Code="PG2012">
|
||||
<UnitInfos>
|
||||
<UnitDateTime StartDate="2012-08-04T14:30:00+02:00" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_COURSE_SAILED" Value="O2" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_COURSE_DESC" Value="Outer Trapezoid (O2)" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK" Pos="1" Value="0">
|
||||
<Extensions>
|
||||
<Extension Type="UI_SA" Code="SA_SEQ_NUM" Value="0" />
|
||||
</Extensions>
|
||||
</UnitInfo>
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK" Pos="2" Value="1">
|
||||
<Extensions>
|
||||
<Extension Type="UI_SA" Code="SA_SEQ_NUM" Value="1" />
|
||||
</Extensions>
|
||||
</UnitInfo>
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK" Pos="3" Value="2">
|
||||
<Extensions>
|
||||
<Extension Type="UI_SA" Code="SA_SEQ_NUM" Value="2" />
|
||||
</Extensions>
|
||||
</UnitInfo>
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK" Pos="4" Value="3">
|
||||
<Extensions>
|
||||
<Extension Type="UI_SA" Code="SA_SEQ_NUM" Value="3" />
|
||||
</Extensions>
|
||||
</UnitInfo>
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK" Pos="5" Value="2">
|
||||
<Extensions>
|
||||
<Extension Type="UI_SA" Code="SA_SEQ_NUM" Value="4" />
|
||||
</Extensions>
|
||||
</UnitInfo>
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK" Pos="6" Value="3">
|
||||
<Extensions>
|
||||
<Extension Type="UI_SA" Code="SA_SEQ_NUM" Value="5" />
|
||||
</Extensions>
|
||||
</UnitInfo>
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK" Pos="7" Value="10">
|
||||
<Extensions>
|
||||
<Extension Type="UI_SA" Code="SA_SEQ_NUM" Value="6" />
|
||||
</Extensions>
|
||||
</UnitInfo>
|
||||
<UnitInfo Type="UI_SA" Code="SA_NUM_MARKS" Value="5" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_NUM_LEGS" Value="6" />
|
||||
</UnitInfos>
|
||||
<Start SortOrder="1">
|
||||
<Competitor Code="1107624" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="ARG" />
|
||||
<Composition>
|
||||
<Athlete Code="1107624" Order="1" Bib="ARG">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="ALSOGARAY Julio" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="2">
|
||||
<Competitor Code="1094919" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="AUS" />
|
||||
<Composition>
|
||||
<Athlete Code="1094919" Order="1" Bib="AUS">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="SLINGSBY Tom" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="3">
|
||||
<Competitor Code="1122218" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="AUT" />
|
||||
<Composition>
|
||||
<Athlete Code="1122218" Order="1" Bib="AUT">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="GERITZER Andreas" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="4">
|
||||
<Competitor Code="1128999" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="BEL" />
|
||||
<Composition>
|
||||
<Athlete Code="1128999" Order="1" Bib="BEL">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="Van LAER Wannes" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="5">
|
||||
<Competitor Code="1086898" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="BRA" />
|
||||
<Composition>
|
||||
<Athlete Code="1086898" Order="1" Bib="BRA">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="FONTES Bruno" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="6">
|
||||
<Competitor Code="1076910" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="CAN" />
|
||||
<Composition>
|
||||
<Athlete Code="1076910" Order="1" Bib="CAN">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="WRIGHT David" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="7">
|
||||
<Competitor Code="1078063" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="CHI" />
|
||||
<Composition>
|
||||
<Athlete Code="1078063" Order="1" Bib="CHI">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="del SOLAR Matias" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="8">
|
||||
<Competitor Code="1067110" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="CHN" />
|
||||
<Composition>
|
||||
<Athlete Code="1067110" Order="1" Bib="CHN">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="SHI Jian" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="9">
|
||||
<Competitor Code="1105954" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="COL" />
|
||||
<Composition>
|
||||
<Athlete Code="1105954" Order="1" Bib="COL">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="QUINTERO Andrey" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="10">
|
||||
<Competitor Code="1062315" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="CRO" />
|
||||
<Composition>
|
||||
<Athlete Code="1062315" Order="1" Bib="CRO">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="STIPANOVIC Tonci" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="11">
|
||||
<Competitor Code="1087452" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="CYP" />
|
||||
<Composition>
|
||||
<Athlete Code="1087452" Order="1" Bib="CYP">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="KONTIDES Pavlos" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="12">
|
||||
<Competitor Code="1109397" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="CZE" />
|
||||
<Composition>
|
||||
<Athlete Code="1109397" Order="1" Bib="CZE">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="TEPLY Viktor" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="13">
|
||||
<Competitor Code="1081804" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="DEN" />
|
||||
<Composition>
|
||||
<Athlete Code="1081804" Order="1" Bib="DEN">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="SCHIERUP Thorbjorn" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="14">
|
||||
<Competitor Code="1107276" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="ESP" />
|
||||
<Composition>
|
||||
<Athlete Code="1107276" Order="1" Bib="ESP">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="HERNANDEZ CEBRIAN Javier" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="15">
|
||||
<Competitor Code="1072644" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="EST" />
|
||||
<Composition>
|
||||
<Athlete Code="1072644" Order="1" Bib="EST">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="RAMMO Karl-Martin" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="16">
|
||||
<Competitor Code="250804" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="FIN" />
|
||||
<Composition>
|
||||
<Athlete Code="250804" Order="1" Bib="FIN">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="LINDFORS Mattias" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="17">
|
||||
<Competitor Code="1079607" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="FRA" />
|
||||
<Composition>
|
||||
<Athlete Code="1079607" Order="1" Bib="FRA">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="BERNAZ Jean Baptiste" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="18">
|
||||
<Competitor Code="1085473" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="GBR" />
|
||||
<Composition>
|
||||
<Athlete Code="1085473" Order="1" Bib="GBR">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="GOODISON Paul" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="19">
|
||||
<Competitor Code="1109194" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="GER" />
|
||||
<Composition>
|
||||
<Athlete Code="1109194" Order="1" Bib="GER">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="GROTELUSCHEN Simon" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="20">
|
||||
<Competitor Code="1105298" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="GRE" />
|
||||
<Composition>
|
||||
<Athlete Code="1105298" Order="1" Bib="GRE">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="HIMONAS Vagelis" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="21">
|
||||
<Competitor Code="1083279" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="GUA" />
|
||||
<Composition>
|
||||
<Athlete Code="1083279" Order="1" Bib="GUA">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="MAEGLI AGUERO Juan Ignacio" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="22">
|
||||
<Competitor Code="1120663" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="HUN" />
|
||||
<Composition>
|
||||
<Athlete Code="1120663" Order="1" Bib="HUN">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="BERECZ Zsombor" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="23">
|
||||
<Competitor Code="1063800" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="IRL" />
|
||||
<Composition>
|
||||
<Athlete Code="1063800" Order="1" Bib="IRL">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="ESPEY James" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="24">
|
||||
<Competitor Code="1020432" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="ISV" />
|
||||
<Composition>
|
||||
<Athlete Code="1020432" Order="1" Bib="ISV">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="THOMPSON Cy" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="25">
|
||||
<Competitor Code="1087938" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="ITA" />
|
||||
<Composition>
|
||||
<Athlete Code="1087938" Order="1" Bib="ITA">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="REGOLO Michele" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="26">
|
||||
<Competitor Code="262797" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="KGZ" />
|
||||
<Composition>
|
||||
<Athlete Code="262797" Order="1" Bib="KGZ">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="IGNATEV Ilia" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="27">
|
||||
<Competitor Code="1087268" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="KOR" />
|
||||
<Composition>
|
||||
<Athlete Code="1087268" Order="1" Bib="KOR">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="HA Jeemin" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="28">
|
||||
<Competitor Code="1085839" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="LTU" />
|
||||
<Composition>
|
||||
<Athlete Code="1085839" Order="1" Bib="LTU">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="MILEVICIUS Rokas" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="29">
|
||||
<Competitor Code="1115858" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="MAS" />
|
||||
<Composition>
|
||||
<Athlete Code="1115858" Order="1" Bib="MAS">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="MOHD AFENDY Khairulnizam" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="30">
|
||||
<Competitor Code="1076540" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="MEX" />
|
||||
<Composition>
|
||||
<Athlete Code="1076540" Order="1" Bib="MEX">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="MONTEMAYOR Ricardo" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="31">
|
||||
<Competitor Code="1031967" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="MNE" />
|
||||
<Composition>
|
||||
<Athlete Code="1031967" Order="1" Bib="MNE">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="DUKIC Milivoj" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="32">
|
||||
<Competitor Code="1110630" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="MON" />
|
||||
<Composition>
|
||||
<Athlete Code="1110630" Order="1" Bib="MON">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="DESPRAT Damien" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="33">
|
||||
<Competitor Code="1104959" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="NED" />
|
||||
<Composition>
|
||||
<Athlete Code="1104959" Order="1" Bib="NED">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="van SCHAARDENBURG Rutger" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="34">
|
||||
<Competitor Code="1052366" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="NOR" />
|
||||
<Composition>
|
||||
<Athlete Code="1052366" Order="1" Bib="NOR">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="RUTH Kristian" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="35">
|
||||
<Competitor Code="1124975" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="NZL" />
|
||||
<Composition>
|
||||
<Athlete Code="1124975" Order="1" Bib="NZL">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="MURDOCH Andrew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="36">
|
||||
<Competitor Code="1039736" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="POL" />
|
||||
<Composition>
|
||||
<Athlete Code="1039736" Order="1" Bib="POL">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="ZIEMINSKI Kacper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="37">
|
||||
<Competitor Code="1102034" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="POR" />
|
||||
<Composition>
|
||||
<Athlete Code="1102034" Order="1" Bib="POR">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="LIMA Gustavo" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="38">
|
||||
<Competitor Code="1016539" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="RUS" />
|
||||
<Composition>
|
||||
<Athlete Code="1016539" Order="1" Bib="RUS">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="LISOVENKO Igor" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="39">
|
||||
<Competitor Code="1054093" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="SIN" />
|
||||
<Composition>
|
||||
<Athlete Code="1054093" Order="1" Bib="SIN">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="CHENG Colin" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="40">
|
||||
<Competitor Code="1119655" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="SLO" />
|
||||
<Composition>
|
||||
<Athlete Code="1119655" Order="1" Bib="SLO">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="HMELJAK Karlo" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="41">
|
||||
<Competitor Code="1100786" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="SWE" />
|
||||
<Composition>
|
||||
<Athlete Code="1100786" Order="1" Bib="SWE">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="MYRGREN Rasmus" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="42">
|
||||
<Competitor Code="1060133" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="THA" />
|
||||
<Composition>
|
||||
<Athlete Code="1060133" Order="1" Bib="THA">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="BUALONG Keerati" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="43">
|
||||
<Competitor Code="1029018" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="TRI" />
|
||||
<Composition>
|
||||
<Athlete Code="1029018" Order="1" Bib="TRI">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="LEWIS Andrew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="44">
|
||||
<Competitor Code="1072016" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="TUN" />
|
||||
<Composition>
|
||||
<Athlete Code="1072016" Order="1" Bib="TUN">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="AKROUT Youssef" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="45">
|
||||
<Competitor Code="1073504" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="TUR" />
|
||||
<Composition>
|
||||
<Athlete Code="1073504" Order="1" Bib="TUR">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="CAKIR Mustafa" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="46">
|
||||
<Competitor Code="1071554" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="UKR" />
|
||||
<Composition>
|
||||
<Athlete Code="1071554" Order="1" Bib="UKR">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="KUDRYASHOV Valeriy" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="47">
|
||||
<Competitor Code="1078229" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="URU" />
|
||||
<Composition>
|
||||
<Athlete Code="1078229" Order="1" Bib="URU">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="FOGLIA COSTA Alejandro" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="48">
|
||||
<Competitor Code="1135083" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="USA" />
|
||||
<Composition>
|
||||
<Athlete Code="1135083" Order="1" Bib="USA">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="CRANE Rob" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="49">
|
||||
<Competitor Code="1105340" Type="A">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="VEN" />
|
||||
<Composition>
|
||||
<Athlete Code="1105340" Order="1" Bib="VEN">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="RUIZ DURANGO Jose" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
</Competition>
|
||||
</OdfBody>
|
||||
-725
@@ -1,725 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<OdfBody DocumentCode="SAM007000" DocumentType="DT_CUMULATIVE_RESULT" DocumentSubtype="SAM007000" ResultStatus="OFFICIAL" Version="0" FeedFlag="P" Date="20130205" Time="162041067" LogicalDate="20130205" Venue="WAP">
|
||||
<Competition Code="PG2012">
|
||||
<CumulativeResult Rank="1" ResultType="POINTS" Result="32" SortOrder="1">
|
||||
<Competitor Code="SAM007SWE01" Type="T" Bib="SWE">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="42" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="SWE" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_MEDAL_RACE" Value="2" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1099794" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="LOOF Fredrik" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1051806" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="SALMINEN Max" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="2" ResultType="POINTS" Result="34" SortOrder="2">
|
||||
<Competitor Code="SAM007GBR01" Type="T" Bib="GBR">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="45" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="GBR" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_MEDAL_RACE" Value="16" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1085481" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="PERCY Iain" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1085487" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="SIMPSON Andrew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="3" ResultType="POINTS" Result="40" SortOrder="3">
|
||||
<Competitor Code="SAM007BRA01" Type="T" Bib="BRA">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="49" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="BRA" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_MEDAL_RACE" Value="14" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1089813" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="SCHEIDT Robert" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1089809" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="PRADA Bruno" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="4" ResultType="POINTS" Result="63" SortOrder="4">
|
||||
<Competitor Code="SAM007NOR01" Type="T" Bib="NOR">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="79" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="NOR" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_MEDAL_RACE" Value="10" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1044883" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="MELLEBY Eivind" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1044886" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="PEDERSEN Petter Morland" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="5" ResultType="POINTS" Result="70" SortOrder="5">
|
||||
<Competitor Code="SAM007NZL01" Type="T" Bib="NZL">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="85" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="NZL" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_MEDAL_RACE" Value="4" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1124976" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="PEPPER Hamish" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1124984" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="TURNER Jim" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="6" ResultType="POINTS" Result="70" SortOrder="6">
|
||||
<Competitor Code="SAM007GER01" Type="T" Bib="GER">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="87" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="GER" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="17" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_IRM_STATUS_IN_RACE" Pos="7" Value="BFD" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_MEDAL_RACE" Value="6" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1109211" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="STANJEK Robert" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1109199" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="KLEEN Frithjof" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="7" ResultType="POINTS" Result="71" SortOrder="7">
|
||||
<Competitor Code="SAM007USA01" Type="T" Bib="USA">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="85" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="USA" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_MEDAL_RACE" Value="12" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1124697" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="MENDELBLATT Mark" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1124773" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="FATIH Brian" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="8" ResultType="POINTS" Result="72" SortOrder="8">
|
||||
<Competitor Code="SAM007POL01" Type="T" Bib="POL">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="85" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="POL" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="4" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_MEDAL_RACE" Value="18" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1039001" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="KUSZNIEREWICZ Mateusz" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1039791" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="ZYCKI Dominik" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="9" ResultType="POINTS" Result="86" SortOrder="9">
|
||||
<Competitor Code="SAM007FRA01" Type="T" Bib="FRA">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="100" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="FRA" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="1" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_MEDAL_RACE" Value="8" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1079621" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="ROHART Xavier" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1079622" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="PONSOT Pierre-Alexis" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="10" ResultType="POINTS" Result="95" SortOrder="10">
|
||||
<Competitor Code="SAM007IRL01" Type="T" Bib="IRL">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="112" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="IRL" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="2" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="17" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_IRM_STATUS_IN_RACE" Pos="7" Value="DSQ" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_MEDAL_RACE" Value="20" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1063796" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="O'LEARY Peter" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1063792" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="BURROWS David" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="11" ResultType="POINTS" Result="89" SortOrder="11">
|
||||
<Competitor Code="SAM007DEN01" Type="T" Bib="DEN">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="103" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="DEN" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="11" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1081511" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="HESTBAEK Michael" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1081799" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="OLESEN Claus" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="12" ResultType="POINTS" Result="93" SortOrder="12">
|
||||
<Competitor Code="SAM007CAN01" Type="T" Bib="CAN">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="110" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="CAN" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="6" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="17" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_IRM_STATUS_IN_RACE" Pos="6" Value="OCS" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="12" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1076767" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="CLARKE Richard" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1124488" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="BJORN Tyler" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="13" ResultType="POINTS" Result="102" SortOrder="13">
|
||||
<Competitor Code="SAM007SUI01" Type="T" Bib="SUI">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="118" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="SUI" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="13" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1126342" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="MARAZZI Flavio" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1126334" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="de MARIA Enrico" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="14" ResultType="POINTS" Result="106" SortOrder="14">
|
||||
<Competitor Code="SAM007GRE01" Type="T" Bib="GRE">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="123" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="GRE" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="3" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="17" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_IRM_STATUS_IN_RACE" Pos="7" Value="BFD" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="17" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_IRM_STATUS_IN_RACE" Pos="8" Value="DSQ" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="17" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_IRM_STATUS_IN_RACE" Pos="9" Value="OCS" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="14" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1118703" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="PAPATHANASIOU Emilios" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1118705" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="TSOTRAS Adonis" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="15" ResultType="POINTS" Result="108" SortOrder="15">
|
||||
<Competitor Code="SAM007POR01" Type="T" Bib="POR">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="124" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="POR" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="9" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="7" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="10" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="15" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1102061" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="DOMINGOS Afonso" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1102037" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="MELO Frederico" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
<CumulativeResult Rank="16" ResultType="POINTS" Result="116" SortOrder="16">
|
||||
<Competitor Code="SAM007CRO01" Type="T" Bib="CRO">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_TOTAL_POINTS" Value="132" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="CRO" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="1" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="1" Value="8" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="2" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="2" Value="11" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="3" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="3" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="4" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="4" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="5" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="5" Value="14" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="6" Value="13" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="6" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="7" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="7" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="8" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="8" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="9" Value="12" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="9" Value="16" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POINTS_IN_RACE" Pos="10" Value="15" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_RANK_AFTER_RACE" Pos="10" Value="16" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1062299" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="LOVROVIC Marin" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1062307" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="LOVROVIC Dan" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</CumulativeResult>
|
||||
</Competition>
|
||||
</OdfBody>
|
||||
@@ -1,865 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<OdfBody DocumentCode="SAM007910" DocumentType="DT_RESULT" ResultStatus="OFFICIAL" Version="0" FeedFlag="P" Date="20130205" Time="162041015" LogicalDate="20130205" Venue="WAP">
|
||||
<Competition Code="PG2012">
|
||||
<UnitInfos>
|
||||
<UnitDateTime StartDate="2012-08-03T14:16:00+02:00" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_WIND_SPEED" Pos="1" Value="16" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_WIND_SPEED" Pos="2" Value="14" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_WIND_SPEED" Pos="3" Value="14" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_WIND_SPEED" Pos="4" Value="15" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_WIND_SPEED" Pos="5" Value="15" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_WIND_DIRECTION" Pos="1" Value="210" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_WIND_DIRECTION" Pos="2" Value="210" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_WIND_DIRECTION" Pos="3" Value="210" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_WIND_DIRECTION" Pos="4" Value="205" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_WIND_DIRECTION" Pos="5" Value="205" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_ELAPSED_TIME" Pos="2" Value="19:46" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_ELAPSED_TIME" Pos="3" Value="35:30" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_ELAPSED_TIME" Pos="4" Value="56:27" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_ELAPSED_TIME" Pos="5" Value="1:13:51" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_RACE_STATUS" Value="FSHD" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK_ROUNDED" Pos="2" Value="Y" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK_ROUNDED" Pos="3" Value="Y" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK_ROUNDED" Pos="4" Value="Y" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK_ROUNDED" Pos="5" Value="Y" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_NUM_OCS" Value="0" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_CURRENT_LEG" Value="-" />
|
||||
</UnitInfos>
|
||||
<Result Rank="1" ResultType="POINTS" Result="1" SortOrder="1">
|
||||
<Competitor Code="SAM007GBR01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="1">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:00" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="19:46" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="1" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="1">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:00" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="35:30" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="1" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="1">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:00" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="56:27" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="1" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="1">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:00" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:13:51" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="1" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="GBR" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1085481" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="PERCY Iain" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1085487" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="SIMPSON Andrew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="2" ResultType="POINTS" Result="2" SortOrder="2">
|
||||
<Competitor Code="SAM007POL01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="2">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:05" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="19:51" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="2" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="3">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:29" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="35:59" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="3" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="2">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:28" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="56:55" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="2" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="2">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:33" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:14:24" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="2" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="POL" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1039001" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="KUSZNIEREWICZ Mateusz" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1039791" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="ZYCKI Dominik" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="3" ResultType="POINTS" Result="3" SortOrder="3">
|
||||
<Competitor Code="SAM007BRA01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="7">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:25" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="20:11" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="7" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="4">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:34" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="36:04" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="4" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="4">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:52" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="57:19" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="4" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="3">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:48" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:14:39" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="3" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="BRA" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1089813" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="SCHEIDT Robert" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1089809" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="PRADA Bruno" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="4" ResultType="POINTS" Result="4" SortOrder="4">
|
||||
<Competitor Code="SAM007GER01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="10">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:34" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="20:20" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="10" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="2">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:19" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="35:49" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="2" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="3">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:37" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="57:04" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="3" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="4">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:53" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:14:44" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="4" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="GER" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1109211" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="STANJEK Robert" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1109199" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="KLEEN Frithjof" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="5" ResultType="POINTS" Result="5" SortOrder="5">
|
||||
<Competitor Code="SAM007NOR01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="12">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:41" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="20:27" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="12" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="12">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:01" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="36:31" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="12" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="8">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:14" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="57:41" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="8" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="5">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:56" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:14:47" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="5" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="NOR" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1044883" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="MELLEBY Eivind" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1044886" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="PEDERSEN Petter Morland" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="6" ResultType="POINTS" Result="6" SortOrder="6">
|
||||
<Competitor Code="SAM007SWE01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="5">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:17" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="20:03" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="5" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="6">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:36" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="36:06" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="6" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="5">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:04" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="57:31" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="5" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="6">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:23" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:15:14" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="6" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="SWE" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1099794" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="LOOF Fredrik" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1051806" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="SALMINEN Max" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="7" ResultType="POINTS" Result="7" SortOrder="7">
|
||||
<Competitor Code="SAM007IRL01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="11">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:37" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="20:23" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="11" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="5">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:35" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="36:05" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="5" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="6">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:07" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="57:34" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="6" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="7">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:26" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:15:17" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="7" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="IRL" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1063796" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="O'LEARY Peter" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1063792" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="BURROWS David" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="8" ResultType="POINTS" Result="8" SortOrder="8">
|
||||
<Competitor Code="SAM007FRA01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="15">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:53" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="20:39" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="15" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="10">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:52" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="36:22" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="10" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="11">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:27" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="57:54" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="11" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="8">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:37" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:15:28" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="8" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="FRA" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1079621" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="ROHART Xavier" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1079622" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="PONSOT Pierre-Alexis" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="9" ResultType="POINTS" Result="9" SortOrder="9">
|
||||
<Competitor Code="SAM007NZL01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="8">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:31" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="20:17" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="8" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="8">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:42" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="36:12" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="8" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="9">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:18" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="57:45" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="9" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="9">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:39" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:15:30" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="9" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="NZL" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1124976" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="PEPPER Hamish" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1124984" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="TURNER Jim" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="10" ResultType="POINTS" Result="10" SortOrder="10">
|
||||
<Competitor Code="SAM007DEN01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="4">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:15" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="20:01" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="4" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="7">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:41" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="36:11" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="7" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="10">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:22" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="57:49" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="10" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="10">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:40" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:15:31" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="10" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="DEN" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1081511" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="HESTBAEK Michael" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1081799" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="OLESEN Claus" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="11" ResultType="POINTS" Result="11" SortOrder="11">
|
||||
<Competitor Code="SAM007USA01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="6">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:18" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="20:04" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="6" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="9">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:48" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="36:18" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="9" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="7">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:11" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="57:38" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="7" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="11">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:42" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:15:33" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="11" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="USA" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1124697" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="MENDELBLATT Mark" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1124773" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="FATIH Brian" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="12" ResultType="POINTS" Result="12" SortOrder="12">
|
||||
<Competitor Code="SAM007GRE01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="13">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:46" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="20:32" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="13" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="15">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:13" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="36:43" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="15" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="14">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:45" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="58:12" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="14" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="12">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:46" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:15:37" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="12" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="GRE" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1118703" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="PAPATHANASIOU Emilios" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1118705" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="TSOTRAS Adonis" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="13" ResultType="POINTS" Result="13" SortOrder="13">
|
||||
<Competitor Code="SAM007CAN01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="14">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:52" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="20:38" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="14" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="14">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:10" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="36:40" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="14" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="13">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:36" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="58:03" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="13" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="13">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:54" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:15:45" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="13" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="CAN" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1076767" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="CLARKE Richard" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1124488" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="BJORN Tyler" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="14" ResultType="POINTS" Result="14" SortOrder="14">
|
||||
<Competitor Code="SAM007POR01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="9">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:32" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="20:18" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="9" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="11">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:57" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="36:27" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="11" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="12">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:35" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="58:02" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="12" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="14">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:56" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:15:47" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="14" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="POR" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1102061" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="DOMINGOS Afonso" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1102037" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="MELO Frederico" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="15" ResultType="POINTS" Result="15" SortOrder="15">
|
||||
<Competitor Code="SAM007CRO01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="16">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:25" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="21:11" />
|
||||
<Extension Type="SA_MARK" Code="SA_LAST_COMP" Value="Y" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="16" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="16">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:14" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="36:44" />
|
||||
<Extension Type="SA_MARK" Code="SA_LAST_COMP" Value="Y" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="16" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="16">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="2:02" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="58:29" />
|
||||
<Extension Type="SA_MARK" Code="SA_LAST_COMP" Value="Y" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="16" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="15">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="2:11" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:16:02" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="15" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="CRO" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1062299" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="LOVROVIC Marin" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1062307" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="LOVROVIC Dan" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
<Result Rank="16" ResultType="POINTS" Result="16" SortOrder="16">
|
||||
<Competitor Code="SAM007SUI01" Type="T">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="2" Value="3">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="0:11" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="19:57" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="3" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="3" Value="13">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:07" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="36:37" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="13" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="4" Value="15">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="1:50" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="58:17" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="15" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_MARK" Pos="5" Value="16">
|
||||
<Extensions>
|
||||
<Extension Type="SA_MARK" Code="SA_TIME_BEHIND" Value="2:23" />
|
||||
<Extension Type="SA_MARK" Code="SA_TIME" Value="1:16:14" />
|
||||
<Extension Type="SA_MARK" Code="SA_LAST_COMP" Value="Y" />
|
||||
<Extension Type="SA_MARK" Code="SA_SORT_ORDER" Value="16" />
|
||||
</Extensions>
|
||||
</ExtendedResult>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_LAST_MARK" Value="5" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_COUNTRY" Value="SUI" />
|
||||
</ExtendedResults>
|
||||
<Composition>
|
||||
<Athlete Code="1126342" Order="1">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="MARAZZI Flavio" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
<Athlete Code="1126334" Order="2">
|
||||
<ExtendedResults>
|
||||
<ExtendedResult Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_NAME" Value="de MARIA Enrico" />
|
||||
<ExtendedResult Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</ExtendedResults>
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Result>
|
||||
</Competition>
|
||||
</OdfBody>
|
||||
@@ -1,309 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<OdfBody DocumentCode="SAM007910" DocumentType="DT_START_LIST" Version="0" FeedFlag="P" Date="20130205" Time="162038313" LogicalDate="20130205" Venue="WAP">
|
||||
<Competition Code="PG2012">
|
||||
<UnitInfos>
|
||||
<UnitDateTime StartDate="2012-08-03T14:50:00+02:00" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_COURSE_SAILED" Value="L2" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_COURSE_DESC" Value="Windward/Leeward (L2)" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK" Pos="1" Value="0">
|
||||
<Extensions>
|
||||
<Extension Type="UI_SA" Code="SA_SEQ_NUM" Value="0" />
|
||||
</Extensions>
|
||||
</UnitInfo>
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK" Pos="2" Value="1">
|
||||
<Extensions>
|
||||
<Extension Type="UI_SA" Code="SA_SEQ_NUM" Value="1" />
|
||||
</Extensions>
|
||||
</UnitInfo>
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK" Pos="3" Value="4">
|
||||
<Extensions>
|
||||
<Extension Type="UI_SA" Code="SA_SEQ_NUM" Value="2" />
|
||||
</Extensions>
|
||||
</UnitInfo>
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK" Pos="4" Value="1">
|
||||
<Extensions>
|
||||
<Extension Type="UI_SA" Code="SA_SEQ_NUM" Value="3" />
|
||||
</Extensions>
|
||||
</UnitInfo>
|
||||
<UnitInfo Type="UI_SA" Code="SA_MARK" Pos="5" Value="10">
|
||||
<Extensions>
|
||||
<Extension Type="UI_SA" Code="SA_SEQ_NUM" Value="4" />
|
||||
</Extensions>
|
||||
</UnitInfo>
|
||||
<UnitInfo Type="UI_SA" Code="SA_NUM_MARKS" Value="3" />
|
||||
<UnitInfo Type="UI_SA" Code="SA_NUM_LEGS" Value="4" />
|
||||
</UnitInfos>
|
||||
<Start SortOrder="1">
|
||||
<Competitor Code="SAM007BRA01" Type="T" Bib="BRA">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="BRA" />
|
||||
<Composition>
|
||||
<Athlete Code="1089813" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="SCHEIDT Robert" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1089809" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="PRADA Bruno" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="2">
|
||||
<Competitor Code="SAM007CAN01" Type="T" Bib="CAN">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="CAN" />
|
||||
<Composition>
|
||||
<Athlete Code="1076767" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="CLARKE Richard" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1124488" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="BJORN Tyler" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="3">
|
||||
<Competitor Code="SAM007CRO01" Type="T" Bib="CRO">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="CRO" />
|
||||
<Composition>
|
||||
<Athlete Code="1062299" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="LOVROVIC Marin" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1062307" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="LOVROVIC Dan" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="4">
|
||||
<Competitor Code="SAM007DEN01" Type="T" Bib="DEN">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="DEN" />
|
||||
<Composition>
|
||||
<Athlete Code="1081511" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="HESTBAEK Michael" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1081799" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="OLESEN Claus" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="5">
|
||||
<Competitor Code="SAM007FRA01" Type="T" Bib="FRA">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="FRA" />
|
||||
<Composition>
|
||||
<Athlete Code="1079621" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="ROHART Xavier" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1079622" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="PONSOT Pierre-Alexis" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="6">
|
||||
<Competitor Code="SAM007GBR01" Type="T" Bib="GBR">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="GBR" />
|
||||
<Composition>
|
||||
<Athlete Code="1085481" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="PERCY Iain" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1085487" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="SIMPSON Andrew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="7">
|
||||
<Competitor Code="SAM007GER01" Type="T" Bib="GER">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="GER" />
|
||||
<Composition>
|
||||
<Athlete Code="1109211" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="STANJEK Robert" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1109199" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="KLEEN Frithjof" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="8">
|
||||
<Competitor Code="SAM007GRE01" Type="T" Bib="GRE">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="GRE" />
|
||||
<Composition>
|
||||
<Athlete Code="1118703" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="PAPATHANASIOU Emilios" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1118705" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="TSOTRAS Adonis" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="9">
|
||||
<Competitor Code="SAM007IRL01" Type="T" Bib="IRL">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="IRL" />
|
||||
<Composition>
|
||||
<Athlete Code="1063796" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="O'LEARY Peter" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1063792" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="BURROWS David" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="10">
|
||||
<Competitor Code="SAM007NOR01" Type="T" Bib="NOR">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="NOR" />
|
||||
<Composition>
|
||||
<Athlete Code="1044883" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="MELLEBY Eivind" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1044886" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="PEDERSEN Petter Morland" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="11">
|
||||
<Competitor Code="SAM007NZL01" Type="T" Bib="NZL">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="NZL" />
|
||||
<Composition>
|
||||
<Athlete Code="1124976" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="PEPPER Hamish" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1124984" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="TURNER Jim" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="12">
|
||||
<Competitor Code="SAM007POL01" Type="T" Bib="POL">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="POL" />
|
||||
<Composition>
|
||||
<Athlete Code="1039001" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="KUSZNIEREWICZ Mateusz" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1039791" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="ZYCKI Dominik" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="13">
|
||||
<Competitor Code="SAM007POR01" Type="T" Bib="POR">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="POR" />
|
||||
<Composition>
|
||||
<Athlete Code="1102061" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="DOMINGOS Afonso" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1102037" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="MELO Frederico" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="14">
|
||||
<Competitor Code="SAM007SUI01" Type="T" Bib="SUI">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="SUI" />
|
||||
<Composition>
|
||||
<Athlete Code="1126342" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="MARAZZI Flavio" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1126334" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="de MARIA Enrico" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="15">
|
||||
<Competitor Code="SAM007SWE01" Type="T" Bib="SWE">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="SWE" />
|
||||
<Composition>
|
||||
<Athlete Code="1099794" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="LOOF Fredrik" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1051806" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="SALMINEN Max" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
<Start SortOrder="16">
|
||||
<Competitor Code="SAM007USA01" Type="T" Bib="USA">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_COUNTRY" Value="USA" />
|
||||
<Composition>
|
||||
<Athlete Code="1124697" Order="1">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Skipper" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="MENDELBLATT Mark" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
<Athlete Code="1124773" Order="2">
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_POSITION" Value="Crew" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_NAME" Value="FATIH Brian" />
|
||||
<EventUnitEntry Type="ER_SA" Code="SA_GENDER" Value="M" />
|
||||
</Athlete>
|
||||
</Composition>
|
||||
</Competitor>
|
||||
</Start>
|
||||
</Competition>
|
||||
</OdfBody>
|
||||
-218
@@ -1,218 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertSame;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Node;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import com.sap.sailing.domain.common.CountryCodeFactory;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.RegattaScoreCorrections;
|
||||
import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionsForRace;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.impl.Util;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.odf.resultimport.Athlete.Gender;
|
||||
import com.sap.sailing.odf.resultimport.Competition;
|
||||
import com.sap.sailing.odf.resultimport.CumulativeResult;
|
||||
import com.sap.sailing.odf.resultimport.CumulativeResultDocumentProvider;
|
||||
import com.sap.sailing.odf.resultimport.OdfBody;
|
||||
import com.sap.sailing.odf.resultimport.OdfBodyParser;
|
||||
import com.sap.sailing.odf.resultimport.ParserFactory;
|
||||
import com.sap.sailing.odf.resultimport.PointsResult;
|
||||
import com.sap.sailing.odf.resultimport.Skipper;
|
||||
import com.sap.sailing.odf.resultimport.impl.ScoreCorrectionProviderImpl;
|
||||
|
||||
public class ParserTest {
|
||||
private static final String SAMPLE_INPUT_NAME_LASER = "SAM004000_DT_CUMULATIVE_RESULT_SAM004000_1.0.xml";
|
||||
private static final String SAMPLE_INPUT_NAME_STAR = "SAM007000_DT_CUMULATIVE_RESULT_SAM007000_1.0.xml";
|
||||
private static final String RESOURCES = "resources/";
|
||||
|
||||
private InputStream getInputStream(String filename) throws FileNotFoundException, IOException {
|
||||
return new FileInputStream(getFile(filename));
|
||||
}
|
||||
|
||||
private File getFile(String filename) {
|
||||
return new File(RESOURCES + filename);
|
||||
}
|
||||
|
||||
private CumulativeResultDocumentProvider getTestDocumentProvider() {
|
||||
return new CumulativeResultDocumentProvider() {
|
||||
@Override
|
||||
public Iterable<InputStream> getAllAvailableCumulativeResultDocuments() {
|
||||
try {
|
||||
return Arrays.asList(new InputStream[] { getInputStream(SAMPLE_INPUT_NAME_LASER), getInputStream(SAMPLE_INPUT_NAME_STAR) });
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoadingSampleXML() throws SAXException, IOException, ParserConfigurationException {
|
||||
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
|
||||
.parse(getSampleInputStream());
|
||||
assertNotNull(doc);
|
||||
Node resultList = doc.getElementsByTagName("OdfBody").item(0);
|
||||
assertNotNull(resultList);
|
||||
}
|
||||
|
||||
private InputStream getSampleInputStream() throws FileNotFoundException, IOException {
|
||||
return getInputStream(SAMPLE_INPUT_NAME_LASER);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParserForLaserRegatta() throws FileNotFoundException, SAXException, IOException, ParserConfigurationException {
|
||||
OdfBodyParser parser = ParserFactory.INSTANCE.createOdfBodyParser();
|
||||
OdfBody body = parser.parse(getInputStream(SAMPLE_INPUT_NAME_LASER), SAMPLE_INPUT_NAME_LASER);
|
||||
assertNotNull(body);
|
||||
Iterable<Competition> competitions = body.getCompetitions();
|
||||
final Map<String, CumulativeResult> results = new HashMap<>();
|
||||
for (Competition competition : competitions) {
|
||||
for (CumulativeResult cumulativeResult : competition.getCumulativeResults()) {
|
||||
results.put(cumulativeResult.getCompetitorCode(), cumulativeResult);
|
||||
}
|
||||
}
|
||||
{
|
||||
assertTrue(results.containsKey("1094919"));
|
||||
CumulativeResult resultsFor1094919 = results.get("1094919");
|
||||
assertEquals(1, Util.size(resultsFor1094919.getAthletes()));
|
||||
assertEquals("SLINGSBY Tom", resultsFor1094919.getAthletes().iterator().next().getName());
|
||||
assertEquals(Gender.M, resultsFor1094919.getAthletes().iterator().next().getGender());
|
||||
assertTrue(resultsFor1094919.getAthletes().iterator().next() instanceof Skipper);
|
||||
assertEquals(18, resultsFor1094919.getPointsInMedalRace(), 0.00000001);
|
||||
assertSame(CountryCodeFactory.INSTANCE.getFromThreeLetterIOCName("AUS"), resultsFor1094919.getCountryCode());
|
||||
assertEquals(57, resultsFor1094919.getTotalPoints(), 0.00000001);
|
||||
assertEquals(43, ((PointsResult) resultsFor1094919.getResult()).getPoints(), 0.00000001);
|
||||
}
|
||||
{
|
||||
assertTrue(results.containsKey("262797"));
|
||||
CumulativeResult resultsFor262797 = results.get("262797");
|
||||
assertEquals(1, Util.size(resultsFor262797.getAthletes()));
|
||||
assertEquals("IGNATEV Ilia", resultsFor262797.getAthletes().iterator().next().getName());
|
||||
assertEquals(Gender.M, resultsFor262797.getAthletes().iterator().next().getGender());
|
||||
assertNull(resultsFor262797.getPointsInMedalRace());
|
||||
assertSame(CountryCodeFactory.INSTANCE.getFromThreeLetterIOCName("KGZ"), resultsFor262797.getCountryCode());
|
||||
assertEquals(471, resultsFor262797.getTotalPoints(), 0.00000001);
|
||||
assertEquals(422, ((PointsResult) resultsFor262797.getResult()).getPoints(), 0.00000001);
|
||||
}
|
||||
{
|
||||
assertTrue(results.containsKey("1060133"));
|
||||
CumulativeResult resultsFor1060133 = results.get("1060133");
|
||||
assertSame(MaxPointsReason.DSQ, Util.get(resultsFor1060133.getPointsAndRanksAfterEachRace(), 6).getC());
|
||||
assertEquals(50, Util.get(resultsFor1060133.getPointsAndRanksAfterEachRace(), 6).getA(), 0.0000001);
|
||||
assertEquals(Integer.valueOf(48), Util.get(resultsFor1060133.getPointsAndRanksAfterEachRace(), 6).getB());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParserForStarRegatta() throws FileNotFoundException, SAXException, IOException, ParserConfigurationException {
|
||||
OdfBodyParser parser = ParserFactory.INSTANCE.createOdfBodyParser();
|
||||
OdfBody body = parser.parse(getInputStream(SAMPLE_INPUT_NAME_STAR), SAMPLE_INPUT_NAME_STAR);
|
||||
assertNotNull(body);
|
||||
Iterable<Competition> competitions = body.getCompetitions();
|
||||
final Map<String, CumulativeResult> results = new HashMap<>();
|
||||
for (Competition competition : competitions) {
|
||||
for (CumulativeResult cumulativeResult : competition.getCumulativeResults()) {
|
||||
results.put(cumulativeResult.getCompetitorCode(), cumulativeResult);
|
||||
}
|
||||
}
|
||||
{
|
||||
assertTrue(results.containsKey("SAM007SWE01"));
|
||||
CumulativeResult resultsForSAM007SWE01 = results.get("SAM007SWE01");
|
||||
assertEquals(2, Util.size(resultsForSAM007SWE01.getAthletes()));
|
||||
assertEquals("LOOF Fredrik", resultsForSAM007SWE01.getAthletes().iterator().next().getName());
|
||||
assertEquals(Gender.M, resultsForSAM007SWE01.getAthletes().iterator().next().getGender());
|
||||
assertTrue(resultsForSAM007SWE01.getAthletes().iterator().next() instanceof Skipper);
|
||||
assertEquals(2, resultsForSAM007SWE01.getPointsInMedalRace(), 0.00000001);
|
||||
assertSame(CountryCodeFactory.INSTANCE.getFromThreeLetterIOCName("SWE"), resultsForSAM007SWE01.getCountryCode());
|
||||
assertEquals(42, resultsForSAM007SWE01.getTotalPoints(), 0.00000001);
|
||||
assertEquals(32, ((PointsResult) resultsForSAM007SWE01.getResult()).getPoints(), 0.00000001);
|
||||
}
|
||||
{
|
||||
assertTrue(results.containsKey("SAM007CRO01"));
|
||||
CumulativeResult resultsForSAM007CRO01 = results.get("SAM007CRO01");
|
||||
assertEquals(2, Util.size(resultsForSAM007CRO01.getAthletes()));
|
||||
assertEquals("LOVROVIC Marin", resultsForSAM007CRO01.getAthletes().iterator().next().getName());
|
||||
assertEquals(Gender.M, resultsForSAM007CRO01.getAthletes().iterator().next().getGender());
|
||||
assertNull(resultsForSAM007CRO01.getPointsInMedalRace());
|
||||
assertSame(CountryCodeFactory.INSTANCE.getFromThreeLetterIOCName("CRO"), resultsForSAM007CRO01.getCountryCode());
|
||||
assertEquals(132, resultsForSAM007CRO01.getTotalPoints(), 0.00000001);
|
||||
assertEquals(116, ((PointsResult) resultsForSAM007CRO01.getResult()).getPoints(), 0.00000001);
|
||||
}
|
||||
{
|
||||
assertTrue(results.containsKey("SAM007GRE01"));
|
||||
CumulativeResult resultsFor1060133 = results.get("SAM007GRE01");
|
||||
assertSame(MaxPointsReason.OCS, Util.get(resultsFor1060133.getPointsAndRanksAfterEachRace(), 8).getC());
|
||||
assertEquals(17, Util.get(resultsFor1060133.getPointsAndRanksAfterEachRace(), 8).getA(), 0.0000001);
|
||||
assertEquals(Integer.valueOf(14), Util.get(resultsFor1060133.getPointsAndRanksAfterEachRace(), 8).getB());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testScoreCorrectionProviderFeedingAndHasResults() throws IOException, SAXException,
|
||||
ParserConfigurationException {
|
||||
ScoreCorrectionProviderImpl scoreCorrectionProvider = new ScoreCorrectionProviderImpl(getTestDocumentProvider(),
|
||||
ParserFactory.INSTANCE);
|
||||
Map<String, Set<Pair<String, TimePoint>>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName();
|
||||
assertTrue(hasResultsFor.containsKey("Star"));
|
||||
assertTrue(hasResultsFor.containsKey("Laser"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testScoreCorrectionProvider() throws IOException, SAXException,
|
||||
ParserConfigurationException {
|
||||
ScoreCorrectionProviderImpl scoreCorrectionProvider = new ScoreCorrectionProviderImpl(getTestDocumentProvider(),
|
||||
ParserFactory.INSTANCE);
|
||||
Map<String, Set<Pair<String, TimePoint>>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName();
|
||||
RegattaScoreCorrections starResult = scoreCorrectionProvider.getScoreCorrections("SAM007000@WAP", "Star", hasResultsFor.get("Star").iterator().next().getB());
|
||||
assertNotNull(starResult);
|
||||
Iterable<ScoreCorrectionsForRace> scoreCorrectionsForRaces = starResult.getScoreCorrectionsForRaces();
|
||||
assertNotNull(scoreCorrectionsForRaces);
|
||||
assertEquals(11, Util.size(scoreCorrectionsForRaces)); // 10 regular races, one medal race
|
||||
{
|
||||
final ScoreCorrectionsForRace resultsForR6 = Util.get(scoreCorrectionsForRaces, 5);
|
||||
assertEquals(11, resultsForR6.getScoreCorrectionForCompetitor("SAM007NOR01").getPoints(), 0.00000001);
|
||||
assertSame(MaxPointsReason.NONE, resultsForR6.getScoreCorrectionForCompetitor("SAM007NOR01")
|
||||
.getMaxPointsReason());
|
||||
assertEquals("MELLEBY Eivind + PEDERSEN Petter Morland",
|
||||
resultsForR6.getScoreCorrectionForCompetitor("SAM007NOR01").getCompetitorName());
|
||||
}
|
||||
{
|
||||
final ScoreCorrectionsForRace resultsForM1 = Util.get(scoreCorrectionsForRaces, 10);
|
||||
assertEquals(10, resultsForM1.getScoreCorrectionForCompetitor("SAM007NOR01").getPoints(), 0.00000001);
|
||||
assertSame(MaxPointsReason.NONE, resultsForM1.getScoreCorrectionForCompetitor("SAM007NOR01")
|
||||
.getMaxPointsReason());
|
||||
assertEquals("MELLEBY Eivind + PEDERSEN Petter Morland",
|
||||
resultsForM1.getScoreCorrectionForCompetitor("SAM007NOR01").getCompetitorName());
|
||||
}
|
||||
{
|
||||
final ScoreCorrectionsForRace resultsForR7 = Util.get(scoreCorrectionsForRaces, 6);
|
||||
assertEquals(17, resultsForR7.getScoreCorrectionForCompetitor("SAM007IRL01").getPoints(), 0.00000001);
|
||||
assertSame(MaxPointsReason.DSQ, resultsForR7.getScoreCorrectionForCompetitor("SAM007IRL01")
|
||||
.getMaxPointsReason());
|
||||
assertEquals("O'LEARY Peter + BURROWS David",
|
||||
resultsForR7.getScoreCorrectionForCompetitor("SAM007IRL01").getCompetitorName());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>com.sap.sailing.odf.resultimport</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -1,7 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.7
|
||||
@@ -1,3 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
pluginProject.extensions=false
|
||||
resolve.requirebundle=false
|
||||
@@ -1,13 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Resultimport
|
||||
Bundle-SymbolicName: com.sap.sailing.odf.resultimport
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Vendor: SAP
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Import-Package: org.osgi.framework;version="1.6.0",
|
||||
org.w3c.dom
|
||||
Require-Bundle: com.sap.sailing.domain.common,
|
||||
com.sap.sailing.domain,
|
||||
com.sap.sailing.domain.swisstimingadapter
|
||||
Bundle-Activator: com.sap.sailing.odf.resultimport.impl.Activator
|
||||
@@ -1,4 +0,0 @@
|
||||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>root</artifactId>
|
||||
<groupId>com.sap.sailing</groupId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>com.sap.sailing.odf.resultimport</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
</project>
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
public interface Athlete extends Named {
|
||||
public static enum Gender { M, F };
|
||||
|
||||
Gender getGender();
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
public interface Boat extends Named {
|
||||
String getSailingNumber();
|
||||
|
||||
Integer getRank();
|
||||
|
||||
String getPrice();
|
||||
|
||||
Crew getCrew();
|
||||
|
||||
Iterable<BoatResultInRace> getResultsInRaces();
|
||||
|
||||
BoatResultInRace getResultsInRace(int raceNumberOneBased);
|
||||
|
||||
Double getTotalPoints();
|
||||
}
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
|
||||
public interface BoatResultInRace {
|
||||
String getStatus();
|
||||
|
||||
Double getPoints();
|
||||
|
||||
Integer getRaceNumber();
|
||||
|
||||
MaxPointsReason getMaxPointsReason();
|
||||
|
||||
boolean isDiscarded();
|
||||
}
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
public interface Competition {
|
||||
Iterable<CumulativeResult> getCumulativeResults();
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
import com.sap.sailing.domain.common.CountryCode;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.odf.resultimport.CumulativeResult.CompetitorType;
|
||||
|
||||
public interface Competitor {
|
||||
|
||||
CompetitorType getCompetitorType();
|
||||
|
||||
CountryCode getCountryCode();
|
||||
|
||||
Double getPointsInMedalRace();
|
||||
|
||||
Iterable<Triple<Double, Integer, MaxPointsReason>> getPointsAndRanksAndMaxPointsAfterEachRace();
|
||||
|
||||
/**
|
||||
* Somewhat like the sail number, however prefixed by the competition ID, e.g., "SAM007CRO01" meaning
|
||||
* "Sailing, boat class 007 (Star), country code CRO, boat 01"
|
||||
*/
|
||||
String getCode();
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
public interface Crew {
|
||||
Skipper getSkipper();
|
||||
|
||||
Iterable<Crewmember> getCrewmembers();
|
||||
}
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
public interface Crewmember extends Athlete {
|
||||
|
||||
}
|
||||
-43
@@ -1,43 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
import com.sap.sailing.domain.common.CountryCode;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
|
||||
public interface CumulativeResult {
|
||||
public static enum CompetitorType { A /* athlete */ , T /* team */ };
|
||||
|
||||
int getRank();
|
||||
|
||||
/**
|
||||
* Net result, after applying discards
|
||||
*/
|
||||
Result getResult();
|
||||
|
||||
int getSortOrder();
|
||||
|
||||
CompetitorType getCompetitorType();
|
||||
|
||||
/**
|
||||
* Somewhat like the sail number, however prefixed by the competition ID, e.g., "SAM007CRO01" meaning
|
||||
* "Sailing, boat class 007 (Star), country code CRO, boat 01"
|
||||
*/
|
||||
String getCompetitorCode();
|
||||
|
||||
CountryCode getCountryCode();
|
||||
|
||||
Iterable<Triple<Double, Integer, MaxPointsReason>> getPointsAndRanksAfterEachRace();
|
||||
|
||||
Double getPointsInMedalRace();
|
||||
|
||||
/**
|
||||
* Can be expected to return a single person in case the {@link #getCompetitorType() competitor type} is {@link CompetitorType#A}, or a list
|
||||
* with a {@link Skipper} and {@link Crewmember}s otherwise.
|
||||
*/
|
||||
Iterable<Athlete> getAthletes();
|
||||
|
||||
/**
|
||||
* Total points, before applying discards
|
||||
*/
|
||||
Double getTotalPoints();
|
||||
}
|
||||
-7
@@ -1,7 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
public interface CumulativeResultDocumentProvider {
|
||||
Iterable<InputStream> getAllAvailableCumulativeResultDocuments();
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
public interface Named {
|
||||
String getName();
|
||||
}
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
|
||||
public interface OdfBody {
|
||||
Iterable<Competition> getCompetitions();
|
||||
|
||||
String getDocumentSubtype();
|
||||
|
||||
String getResultStatus();
|
||||
|
||||
String getVersion();
|
||||
|
||||
String getFeedFlag();
|
||||
|
||||
TimePoint getTimePoint();
|
||||
|
||||
String getVenue();
|
||||
|
||||
String getEventName();
|
||||
|
||||
String getBoatClassName();
|
||||
}
|
||||
-12
@@ -1,12 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
public interface OdfBodyParser {
|
||||
OdfBody parse(InputStream inputStream, String sourceName) throws SAXException, IOException, ParserConfigurationException;
|
||||
}
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
import com.sap.sailing.domain.swisstimingadapter.DomainFactory;
|
||||
import com.sap.sailing.odf.resultimport.impl.ParserFactoryImpl;
|
||||
|
||||
public interface ParserFactory {
|
||||
ParserFactory INSTANCE = new ParserFactoryImpl(DomainFactory.INSTANCE);
|
||||
|
||||
OdfBodyParser createOdfBodyParser();
|
||||
}
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
public interface PointsResult extends Result {
|
||||
double getPoints();
|
||||
}
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
/**
|
||||
* Derived object, providing a view onto the data parsed from the result ZIP
|
||||
*
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public interface RaceSummary {
|
||||
String getBoatClassName();
|
||||
|
||||
int getRaceNumber();
|
||||
|
||||
Iterable<String> getFleetNames();
|
||||
|
||||
/**
|
||||
* The {@link Boat} objects
|
||||
*/
|
||||
Iterable<Boat> getBoats();
|
||||
|
||||
/**
|
||||
* Retrieves the {@link BoatResultInRace} data that <code>boat</code> achieved in the race summarized by this object
|
||||
*/
|
||||
BoatResultInRace getBoatResults(Boat boat);
|
||||
|
||||
Boat getBoat(String sailingNumber);
|
||||
}
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
|
||||
/**
|
||||
* Derived object, providing a view onto the data parsed from the result ZIP
|
||||
*
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public interface RegattaSummary {
|
||||
TimePoint getTimePointPublished();
|
||||
|
||||
String getBoatClassName();
|
||||
|
||||
/**
|
||||
* Returns the races in ascending race number order
|
||||
*/
|
||||
Iterable<RaceSummary> getRaces();
|
||||
|
||||
RaceSummary getRace(int raceNumberOneBased);
|
||||
|
||||
/**
|
||||
* All {@link Boat} objects that participated in this regatta
|
||||
*/
|
||||
Iterable<Boat> getBoats();
|
||||
|
||||
String getEventName();
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
public interface Result {
|
||||
|
||||
}
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport;
|
||||
|
||||
|
||||
public interface Skipper extends Athlete {
|
||||
}
|
||||
-61
@@ -1,61 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.NamedNodeMap;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
public class AbstractNodeWrapper {
|
||||
private final Node node;
|
||||
|
||||
public AbstractNodeWrapper(Node node) {
|
||||
super();
|
||||
this.node = node;
|
||||
}
|
||||
|
||||
protected Node getNode() {
|
||||
return node;
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtains the node's <code>ExtendedResults</code> element and reads the <code>ExtendedResult</code> elements inside
|
||||
* whose <code>Type</code> attribute equals <code>type</code>. The result is a map whose keys are the
|
||||
* <code>Code</code> and whose values are iterables containing the one or more <code>Value</code> fields of the
|
||||
* <code>ExtendedResult</code> elements with the key code. If there is a <code>Pos</code> field set, the iteration
|
||||
* order will be in incrementing order of the <code>Pos</code> attribute value.
|
||||
*/
|
||||
protected Map<String, TreeMap<Integer, String>> getExtendedResults(String type) {
|
||||
Map<String, TreeMap<Integer, String>> orderedMap = new TreeMap<>();
|
||||
Element element = (Element) getNode();
|
||||
NodeList extendedResultsNodes = element.getElementsByTagName("ExtendedResults");
|
||||
int defaultPos = 0;
|
||||
for (int i=0; i<extendedResultsNodes.getLength(); i++) {
|
||||
Node extendedResultsNode = extendedResultsNodes.item(i);
|
||||
NodeList extendedResults = ((Element) extendedResultsNode).getElementsByTagName("ExtendedResult");
|
||||
for (int j = 0; j < extendedResults.getLength(); j++) {
|
||||
Node extendedResult = extendedResults.item(j);
|
||||
final NamedNodeMap attributes = extendedResult.getAttributes();
|
||||
final int pos;
|
||||
Node nodeType = attributes.getNamedItem("Type");
|
||||
if (nodeType == null || type.equals(nodeType.getNodeValue())) {
|
||||
if (attributes.getNamedItem("Pos") != null) {
|
||||
pos = Integer.valueOf(attributes.getNamedItem("Pos").getNodeValue());
|
||||
} else {
|
||||
pos = defaultPos++;
|
||||
}
|
||||
final String key = attributes.getNamedItem("Code").getNodeValue();
|
||||
TreeMap<Integer, String> entry = orderedMap.get(key);
|
||||
if (entry == null) {
|
||||
entry = new TreeMap<>();
|
||||
orderedMap.put(key, entry);
|
||||
}
|
||||
entry.put(pos, attributes.getNamedItem("Value").getNodeValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
return orderedMap;
|
||||
}
|
||||
}
|
||||
-41
@@ -1,41 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.osgi.framework.BundleActivator;
|
||||
import org.osgi.framework.BundleContext;
|
||||
|
||||
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
|
||||
import com.sap.sailing.odf.resultimport.CumulativeResultDocumentProvider;
|
||||
import com.sap.sailing.odf.resultimport.ParserFactory;
|
||||
|
||||
public class Activator implements BundleActivator {
|
||||
private static final Logger logger = Logger.getLogger(Activator.class.getName());
|
||||
|
||||
private static final String SCAN_DIR_PATH_PROPERTY_NAME = "kiwo.results";
|
||||
private static final String DEFAULT_SCAN_DIR = "kiworesults";
|
||||
|
||||
@Override
|
||||
public void start(BundleContext context) throws Exception {
|
||||
String scanDirPath = context.getProperty(SCAN_DIR_PATH_PROPERTY_NAME);
|
||||
if (scanDirPath == null) {
|
||||
scanDirPath = System.getProperty(SCAN_DIR_PATH_PROPERTY_NAME, DEFAULT_SCAN_DIR);
|
||||
}
|
||||
final ScoreCorrectionProviderImpl service = new ScoreCorrectionProviderImpl(new CumulativeResultDocumentProvider() {
|
||||
@Override
|
||||
public Iterable<InputStream> getAllAvailableCumulativeResultDocuments() {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
}, ParserFactory.INSTANCE);
|
||||
context.registerService(ScoreCorrectionProvider.class,
|
||||
service, /* properties */ null);
|
||||
logger.info("Scanning "+scanDirPath+" for official result lists of "+service.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop(BundleContext context) throws Exception {
|
||||
}
|
||||
|
||||
}
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.sap.sailing.odf.resultimport.Athlete;
|
||||
|
||||
public class AthleteImpl extends NamedImpl implements Athlete {
|
||||
|
||||
public AthleteImpl(Node node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Gender getGender() {
|
||||
return Gender.valueOf(getExtendedResults("ER_SA").get("SA_GENDER").firstEntry().getValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName()+" ("+getGender()+")";
|
||||
}
|
||||
}
|
||||
-30
@@ -1,30 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
import com.sap.sailing.odf.resultimport.Competition;
|
||||
import com.sap.sailing.odf.resultimport.CumulativeResult;
|
||||
|
||||
public class CompetitionImpl extends AbstractNodeWrapper implements Competition {
|
||||
|
||||
public CompetitionImpl(Node node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<CumulativeResult> getCumulativeResults() {
|
||||
List<CumulativeResult> result = new ArrayList<>();
|
||||
Element element = (Element) getNode();
|
||||
NodeList cumulativeResults = element.getElementsByTagName("CumulativeResult");
|
||||
for (int i=0; i<cumulativeResults.getLength(); i++) {
|
||||
result.add(new CumulativeResultImpl(cumulativeResults.item(i)));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
-67
@@ -1,67 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.sap.sailing.domain.common.CountryCode;
|
||||
import com.sap.sailing.domain.common.CountryCodeFactory;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.odf.resultimport.Competitor;
|
||||
import com.sap.sailing.odf.resultimport.CumulativeResult.CompetitorType;
|
||||
|
||||
public class CompetitorImpl extends AbstractNodeWrapper implements Competitor {
|
||||
|
||||
public CompetitorImpl(Node node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompetitorType getCompetitorType() {
|
||||
return CompetitorType.valueOf(((Element) getNode()).getAttribute("Type"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCode() {
|
||||
return ((Element) getNode()).getAttribute("Code");
|
||||
}
|
||||
|
||||
@Override
|
||||
public CountryCode getCountryCode() {
|
||||
return CountryCodeFactory.INSTANCE.getFromThreeLetterIOCName((((Element) getNode()).getAttribute("Bib")));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getPointsInMedalRace() {
|
||||
final TreeMap<Integer, String> pointsInMedalRace = getExtendedResults("ER_SA").get("SA_POINTS_IN_MEDAL_RACE");
|
||||
String medalPoints = pointsInMedalRace == null ? null : pointsInMedalRace.firstEntry().getValue();
|
||||
return medalPoints == null ? null : Double.valueOf(medalPoints);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Triple<Double, Integer, MaxPointsReason>> getPointsAndRanksAndMaxPointsAfterEachRace() {
|
||||
List<Triple<Double, Integer, MaxPointsReason>> result = new ArrayList<>();
|
||||
TreeMap<Integer, String> points = getExtendedResults("ER_SA").get("SA_POINTS_IN_RACE");
|
||||
TreeMap<Integer, String> ranks = getExtendedResults("ER_SA").get("SA_RANK_AFTER_RACE");
|
||||
TreeMap<Integer, String> irmStatus = getExtendedResults("ER_SA").get("SA_IRM_STATUS_IN_RACE");
|
||||
Iterator<Entry<Integer, String>> pointsIter = points.entrySet().iterator();
|
||||
Iterator<Entry<Integer, String>> ranksIter = ranks.entrySet().iterator();
|
||||
while (pointsIter.hasNext() && ranksIter.hasNext()) {
|
||||
final Entry<Integer, String> pointsEntry = pointsIter.next();
|
||||
final Entry<Integer, String> ranksEntry = ranksIter.next();
|
||||
final String maxPointsReasonAsString = irmStatus == null ? null : irmStatus.get(pointsEntry.getKey());
|
||||
final MaxPointsReason maxPointsReason = maxPointsReasonAsString == null ? MaxPointsReason.NONE :
|
||||
MaxPointsReason.valueOf(maxPointsReasonAsString);
|
||||
result.add(new Triple<Double, Integer, MaxPointsReason>(
|
||||
Double.valueOf(pointsEntry.getValue()), Integer.valueOf(ranksEntry.getValue()),
|
||||
maxPointsReason));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
import com.sap.sailing.odf.resultimport.Crew;
|
||||
import com.sap.sailing.odf.resultimport.Crewmember;
|
||||
import com.sap.sailing.odf.resultimport.Skipper;
|
||||
|
||||
public class CrewImpl extends AbstractNodeWrapper implements Crew {
|
||||
|
||||
public CrewImpl(Node node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Skipper getSkipper() {
|
||||
return new SkipperImpl(((Element) getNode()).getElementsByTagName("Skipper").item(0));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Crewmember> getCrewmembers() {
|
||||
List<Crewmember> result = new ArrayList<Crewmember>();
|
||||
final NodeList crewmembers = ((Element) getNode()).getElementsByTagName("Crewmember");
|
||||
for (int i=0; i<crewmembers.getLength(); i++) {
|
||||
result.add(new CrewmemberImpl(crewmembers.item(i)));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.sap.sailing.odf.resultimport.Crewmember;
|
||||
|
||||
public class CrewmemberImpl extends AthleteImpl implements Crewmember {
|
||||
|
||||
public CrewmemberImpl(Node node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString()+" (Crew)";
|
||||
}
|
||||
|
||||
}
|
||||
-108
@@ -1,108 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
import com.sap.sailing.domain.common.CountryCode;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.odf.resultimport.Athlete;
|
||||
import com.sap.sailing.odf.resultimport.Competitor;
|
||||
import com.sap.sailing.odf.resultimport.CumulativeResult;
|
||||
import com.sap.sailing.odf.resultimport.Result;
|
||||
|
||||
public class CumulativeResultImpl extends AbstractNodeWrapper implements CumulativeResult {
|
||||
private final Competitor competitor;
|
||||
|
||||
public CumulativeResultImpl(Node node) {
|
||||
super(node);
|
||||
this.competitor = new CompetitorImpl(((Element) getNode()).getElementsByTagName("Competitor").item(0));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRank() {
|
||||
return Integer.valueOf(getNode().getAttributes().getNamedItem("Rank").getNodeValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result getResult() {
|
||||
final String resultType = getNode().getAttributes().getNamedItem("ResultType").getNodeValue();
|
||||
if ("POINTS".equals(resultType)) {
|
||||
return new PointsResultImpl(Double.valueOf(getNode().getAttributes().getNamedItem("Result").getNodeValue()));
|
||||
} else {
|
||||
throw new IllegalArgumentException("Don't know yet how to deal with result type "+resultType);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSortOrder() {
|
||||
return Integer.valueOf(getNode().getAttributes().getNamedItem("SortOrder").getNodeValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompetitorType getCompetitorType() {
|
||||
return competitor.getCompetitorType();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCompetitorCode() {
|
||||
return competitor.getCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CountryCode getCountryCode() {
|
||||
return competitor.getCountryCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Triple<Double, Integer, MaxPointsReason>> getPointsAndRanksAfterEachRace() {
|
||||
return competitor.getPointsAndRanksAndMaxPointsAfterEachRace();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getPointsInMedalRace() {
|
||||
return competitor.getPointsInMedalRace();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Athlete> getAthletes() {
|
||||
List<Athlete> result = new ArrayList<>();
|
||||
Node composition = ((Element) getNode()).getElementsByTagName("Composition").item(0);
|
||||
NodeList athletes = ((Element) composition).getElementsByTagName("Athlete");
|
||||
for (int i=0; i<athletes.getLength(); i++) {
|
||||
final Node athleteNode = athletes.item(i);
|
||||
AthleteImpl athlete = new AthleteImpl(athleteNode);
|
||||
if ("Skipper".equals(athlete.getExtendedResults("ER_SA").get("SA_POSITION").firstEntry().getValue())) {
|
||||
result.add(new SkipperImpl(athleteNode));
|
||||
} else {
|
||||
result.add(new CrewmemberImpl(athleteNode));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Cumulative Results for competitor "+getCompetitorCode()+" ("+getCountryCode()+") "+getAthletes()+": Rank: "+getRank()+", Result: "+getResult()+", sort order "+getSortOrder()
|
||||
+", race results: "+getPointsAndRanksAfterEachRace()+", medal race results: "+getPointsInMedalRace();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getTotalPoints() {
|
||||
TreeMap<Integer, String> totalPoints = getExtendedResults("ER_SA").get("SA_TOTAL_POINTS");
|
||||
final Double result;
|
||||
if (totalPoints == null) {
|
||||
result = null;
|
||||
} else {
|
||||
result = Double.valueOf(totalPoints.firstEntry().getValue());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
-22
@@ -1,22 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.sap.sailing.odf.resultimport.Named;
|
||||
|
||||
public class NamedImpl extends AbstractNodeWrapper implements Named {
|
||||
|
||||
public NamedImpl(Node node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return getExtendedResults("ER_SA").get("SA_NAME").firstEntry().getValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName();
|
||||
}
|
||||
}
|
||||
-222
@@ -1,222 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.RegattaScoreCorrections;
|
||||
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
|
||||
import com.sap.sailing.domain.common.impl.Util;
|
||||
import com.sap.sailing.odf.resultimport.Athlete;
|
||||
import com.sap.sailing.odf.resultimport.Competition;
|
||||
import com.sap.sailing.odf.resultimport.CumulativeResult;
|
||||
import com.sap.sailing.odf.resultimport.OdfBody;
|
||||
|
||||
public class OdfBodyAsScoreCorrections implements RegattaScoreCorrections {
|
||||
private final OdfBody body;
|
||||
private final ScoreCorrectionProvider provider;
|
||||
|
||||
public OdfBodyAsScoreCorrections(OdfBody body, ScoreCorrectionProvider provider) {
|
||||
super();
|
||||
this.body = body;
|
||||
this.provider = provider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRegattaName() {
|
||||
return body.getEventName()+" ("+body.getBoatClassName()+")";
|
||||
}
|
||||
|
||||
@Override
|
||||
public ScoreCorrectionProvider getProvider() {
|
||||
return provider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<ScoreCorrectionsForRace> getScoreCorrectionsForRaces() {
|
||||
List<ScoreCorrectionsForRace> result = new ArrayList<ScoreCorrectionsForRace>();
|
||||
for (Competition competition : body.getCompetitions()) {
|
||||
// find out the number of races, including a medal race
|
||||
int maxNumberOfRegularRaces = 0;
|
||||
int numberOfMedalRaces = 0;
|
||||
for (CumulativeResult cumulativeResult : competition.getCumulativeResults()) {
|
||||
final int numberOfRegularRaces = Util.size(cumulativeResult.getPointsAndRanksAfterEachRace());
|
||||
maxNumberOfRegularRaces = Math.max(maxNumberOfRegularRaces, numberOfRegularRaces);
|
||||
if (cumulativeResult.getPointsInMedalRace() != null) {
|
||||
numberOfMedalRaces = 1;
|
||||
}
|
||||
}
|
||||
for (int i=0; i<maxNumberOfRegularRaces; i++) {
|
||||
result.add(new ScoreCorrectionForRegularRace(competition, i));
|
||||
}
|
||||
for (int i=0; i<numberOfMedalRaces; i++) {
|
||||
result.add(new ScoreCorrectionForMedalRace(competition, i));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private class ScoreCorrectionForRegularRace implements ScoreCorrectionsForRace {
|
||||
private final Competition competition;
|
||||
private final int raceNumberStartingWithZero;
|
||||
|
||||
public ScoreCorrectionForRegularRace(Competition competition, int raceNumberStartingWithZero) {
|
||||
this.competition= competition;
|
||||
this.raceNumberStartingWithZero = raceNumberStartingWithZero;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRaceNameOrNumber() {
|
||||
return "R"+(raceNumberStartingWithZero+1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getSailIDs() {
|
||||
Set<String> result = new HashSet<>();
|
||||
for (CumulativeResult cumulativeResult : competition.getCumulativeResults()) {
|
||||
result.add(cumulativeResult.getCompetitorCode());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ScoreCorrectionForCompetitorInRace getScoreCorrectionForCompetitor(String sailID) {
|
||||
ScoreCorrectionForCompetitorInRace result = null;
|
||||
for (CumulativeResult cumulativeResult : competition.getCumulativeResults()) {
|
||||
if (sailID.equals(cumulativeResult.getCompetitorCode())) {
|
||||
result = new RegularRaceFromCumulativeResultAsScoreCorrectionForCompetitorInRace(
|
||||
raceNumberStartingWithZero, cumulativeResult, sailID);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
private class ScoreCorrectionForMedalRace implements ScoreCorrectionsForRace {
|
||||
private final Competition competition;
|
||||
private final int medalRaceNumberStartingWithZero;
|
||||
|
||||
public ScoreCorrectionForMedalRace(Competition competition, int medalRaceNumberStartingWithZero) {
|
||||
this.competition = competition;
|
||||
this.medalRaceNumberStartingWithZero = medalRaceNumberStartingWithZero;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRaceNameOrNumber() {
|
||||
return "M"+(medalRaceNumberStartingWithZero+1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> getSailIDs() {
|
||||
Set<String> result = new HashSet<>();
|
||||
for (CumulativeResult cumulativeResult : competition.getCumulativeResults()) {
|
||||
if (cumulativeResult.getPointsInMedalRace() != null) {
|
||||
result.add(cumulativeResult.getCompetitorCode());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ScoreCorrectionForCompetitorInRace getScoreCorrectionForCompetitor(String sailID) {
|
||||
ScoreCorrectionForCompetitorInRace result = null;
|
||||
for (CumulativeResult cumulativeResult : competition.getCumulativeResults()) {
|
||||
if (sailID.equals(cumulativeResult.getCompetitorCode())) {
|
||||
result = new MedalRaceFromCumulativeResultAsScoreCorrectionForCompetitorInRace(
|
||||
medalRaceNumberStartingWithZero, cumulativeResult, sailID);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
private abstract class RaceFromCumulativeResultAsScoreCorrectionForCompetitorInRace implements ScoreCorrectionForCompetitorInRace {
|
||||
private final int raceNumberStartingFromZero;
|
||||
private final CumulativeResult cumulativeResult;
|
||||
private final String competitorCode;
|
||||
|
||||
public RaceFromCumulativeResultAsScoreCorrectionForCompetitorInRace(int raceNumberStartingFromZero,
|
||||
CumulativeResult cumulativeResult, String competitorCode) {
|
||||
this.raceNumberStartingFromZero = raceNumberStartingFromZero;
|
||||
this.cumulativeResult = cumulativeResult;
|
||||
this.competitorCode = competitorCode;
|
||||
}
|
||||
|
||||
protected CumulativeResult getCumulativeResult() {
|
||||
return cumulativeResult;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSailID() {
|
||||
return competitorCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCompetitorName() {
|
||||
StringBuilder result = new StringBuilder();
|
||||
for (Iterator<Athlete> i=getCumulativeResult().getAthletes().iterator(); i.hasNext(); ) {
|
||||
Athlete athlete = i.next();
|
||||
result.append(athlete.getName());
|
||||
if (i.hasNext()) {
|
||||
result.append(" + ");
|
||||
}
|
||||
}
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
protected int getRaceNumberStartingFromZero() {
|
||||
return raceNumberStartingFromZero;
|
||||
}
|
||||
}
|
||||
|
||||
private class RegularRaceFromCumulativeResultAsScoreCorrectionForCompetitorInRace extends RaceFromCumulativeResultAsScoreCorrectionForCompetitorInRace {
|
||||
public RegularRaceFromCumulativeResultAsScoreCorrectionForCompetitorInRace(int raceNumberStartingFromZero,
|
||||
CumulativeResult cumulativeResult, String competitorCode) {
|
||||
super(raceNumberStartingFromZero, cumulativeResult, competitorCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getPoints() {
|
||||
return Util.get(getCumulativeResult().getPointsAndRanksAfterEachRace(), getRaceNumberStartingFromZero()).getA();
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaxPointsReason getMaxPointsReason() {
|
||||
return Util.get(getCumulativeResult().getPointsAndRanksAfterEachRace(), getRaceNumberStartingFromZero()).getC();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean isDiscarded() {
|
||||
// we don't know from the format; if there are two discards, it's a bad puzzle to solve; let the leaderboard do it
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private class MedalRaceFromCumulativeResultAsScoreCorrectionForCompetitorInRace extends RaceFromCumulativeResultAsScoreCorrectionForCompetitorInRace {
|
||||
public MedalRaceFromCumulativeResultAsScoreCorrectionForCompetitorInRace(int raceNumberStartingFromZero,
|
||||
CumulativeResult cumulativeResult, String competitorCode) {
|
||||
super(raceNumberStartingFromZero, cumulativeResult, competitorCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getPoints() {
|
||||
return getCumulativeResult().getPointsInMedalRace();
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaxPointsReason getMaxPointsReason() {
|
||||
return MaxPointsReason.NONE;
|
||||
}
|
||||
|
||||
/**
|
||||
* We assume that a medal race cannot be discarded
|
||||
*/
|
||||
@Override
|
||||
public Boolean isDiscarded() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
-97
@@ -1,97 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.swisstimingadapter.DomainFactory;
|
||||
import com.sap.sailing.odf.resultimport.Competition;
|
||||
import com.sap.sailing.odf.resultimport.OdfBody;
|
||||
|
||||
public class OdfBodyImpl extends AbstractNodeWrapper implements OdfBody {
|
||||
private static final Logger logger = Logger.getLogger(OdfBodyImpl.class.getName());
|
||||
|
||||
private final DomainFactory swissTimingDomainFactory;
|
||||
private static final DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
|
||||
|
||||
public OdfBodyImpl(Node node, DomainFactory swissTimingDomainFactory) {
|
||||
super(node);
|
||||
this.swissTimingDomainFactory = swissTimingDomainFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Competition> getCompetitions() {
|
||||
List<Competition> result = new ArrayList<>();
|
||||
Element element = (Element) getNode();
|
||||
NodeList cumulativeResults = element.getElementsByTagName("Competition");
|
||||
for (int i=0; i<cumulativeResults.getLength(); i++) {
|
||||
result.add(new CompetitionImpl(cumulativeResults.item(i)));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDocumentSubtype() {
|
||||
return getNode().getAttributes().getNamedItem("DocumentSubtype").getNodeValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getResultStatus() {
|
||||
return getNode().getAttributes().getNamedItem("ResultStatus").getNodeValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getVersion() {
|
||||
return getNode().getAttributes().getNamedItem("Version").getNodeValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFeedFlag() {
|
||||
return getNode().getAttributes().getNamedItem("FeedFlag").getNodeValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public TimePoint getTimePoint() {
|
||||
TimePoint result;
|
||||
String timeString = getNode().getAttributes().getNamedItem("Time").getNodeValue();
|
||||
String dateString = getNode().getAttributes().getNamedItem("Date").getNodeValue();
|
||||
try {
|
||||
result = new MillisecondsTimePoint(dateFormat.parse(dateString+timeString));
|
||||
} catch (ParseException e) {
|
||||
logger.throwing(OdfBodyImpl.class.getName(), "getTimePoint", e);
|
||||
result = null;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getVenue() {
|
||||
return getNode().getAttributes().getNamedItem("Venue").getNodeValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEventName() {
|
||||
return getDocumentSubtype()+"@"+getVenue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBoatClassName() {
|
||||
return swissTimingDomainFactory.getOrCreateBoatClassFromRaceID(getDocumentSubtype()).getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "OdfBody for event "+getEventName()+", result status "+getResultStatus()+
|
||||
"@"+getTimePoint()+", version "+getVersion()+" for boat class "+getBoatClassName()+
|
||||
". Competitions: "+getCompetitions();
|
||||
}
|
||||
}
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import com.sap.sailing.domain.swisstimingadapter.DomainFactory;
|
||||
import com.sap.sailing.odf.resultimport.OdfBodyParser;
|
||||
import com.sap.sailing.odf.resultimport.OdfBody;
|
||||
|
||||
public class OdfBodyParserImpl implements OdfBodyParser {
|
||||
|
||||
private final DomainFactory swissTimingDomainFactory;
|
||||
|
||||
public OdfBodyParserImpl(DomainFactory swissTimingDomainFactory) {
|
||||
this.swissTimingDomainFactory = swissTimingDomainFactory;
|
||||
}
|
||||
|
||||
private Document parseDocument(InputStream inputStream) throws SAXException, IOException, ParserConfigurationException {
|
||||
return DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(inputStream);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OdfBody parse(InputStream inputStream, String sourceName) throws SAXException, IOException, ParserConfigurationException {
|
||||
Document doc = parseDocument(inputStream);
|
||||
OdfBody result = new OdfBodyImpl(doc.getElementsByTagName("OdfBody").item(0), swissTimingDomainFactory);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import com.sap.sailing.domain.swisstimingadapter.DomainFactory;
|
||||
import com.sap.sailing.odf.resultimport.OdfBodyParser;
|
||||
import com.sap.sailing.odf.resultimport.ParserFactory;
|
||||
|
||||
public class ParserFactoryImpl implements ParserFactory {
|
||||
private final DomainFactory swissTimingDomainFactory;
|
||||
|
||||
public ParserFactoryImpl(DomainFactory swissTimingDomainFactory) {
|
||||
super();
|
||||
this.swissTimingDomainFactory = swissTimingDomainFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OdfBodyParser createOdfBodyParser() {
|
||||
return new OdfBodyParserImpl(swissTimingDomainFactory);
|
||||
}
|
||||
}
|
||||
-52
@@ -1,52 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import com.sap.sailing.odf.resultimport.PointsResult;
|
||||
|
||||
/**
|
||||
* A point result is a net result, after applying discards. Two points results are euqal if their points are equal.
|
||||
*
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public class PointsResultImpl implements PointsResult {
|
||||
private final double points;
|
||||
|
||||
public PointsResultImpl(double points) {
|
||||
super();
|
||||
this.points = points;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getPoints() {
|
||||
return points;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return ""+getPoints()+" points";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
long temp;
|
||||
temp = Double.doubleToLongBits(points);
|
||||
result = prime * result + (int) (temp ^ (temp >>> 32));
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
PointsResultImpl other = (PointsResultImpl) obj;
|
||||
if (Double.doubleToLongBits(points) != Double.doubleToLongBits(other.points))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
-58
@@ -1,58 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.odf.resultimport.Boat;
|
||||
import com.sap.sailing.odf.resultimport.BoatResultInRace;
|
||||
import com.sap.sailing.odf.resultimport.RaceSummary;
|
||||
|
||||
public class RaceSummaryImpl implements RaceSummary {
|
||||
private final String boatClassName;
|
||||
private final Map<Boat, BoatResultInRace> boatResults;
|
||||
private final Map<String, Boat> sailingNumberToBoat;
|
||||
private final Iterable<String> fleetNames;
|
||||
private final int raceNumber;
|
||||
|
||||
public RaceSummaryImpl(String boatClassName, Map<Boat, BoatResultInRace> boatResults, Iterable<String> fleetNames, int raceNumber) {
|
||||
super();
|
||||
this.boatClassName = boatClassName;
|
||||
this.boatResults = boatResults;
|
||||
this.raceNumber = raceNumber;
|
||||
this.fleetNames = fleetNames;
|
||||
this.sailingNumberToBoat = new HashMap<String, Boat>();
|
||||
for (Boat boat : boatResults.keySet()) {
|
||||
sailingNumberToBoat.put(boat.getSailingNumber(), boat);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBoatClassName() {
|
||||
return boatClassName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRaceNumber() {
|
||||
return raceNumber;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Boat> getBoats() {
|
||||
return boatResults.keySet();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BoatResultInRace getBoatResults(Boat boat) {
|
||||
return boatResults.get(boat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boat getBoat(String sailingNumber) {
|
||||
return sailingNumberToBoat.get(sailingNumber);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<String> getFleetNames() {
|
||||
return fleetNames;
|
||||
}
|
||||
}
|
||||
-75
@@ -1,75 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.odf.resultimport.Boat;
|
||||
import com.sap.sailing.odf.resultimport.RaceSummary;
|
||||
import com.sap.sailing.odf.resultimport.RegattaSummary;
|
||||
|
||||
public class RegattaSummaryImpl implements RegattaSummary {
|
||||
private final Iterable<RaceSummary> races;
|
||||
private final String boatClassName;
|
||||
private final Iterable<Boat> boats;
|
||||
private final TimePoint timePointPublished;
|
||||
private final String event;
|
||||
|
||||
public RegattaSummaryImpl(String event, Iterable<RaceSummary> races, String boatClassName, Iterable<Boat> boats,
|
||||
TimePoint timePointPublished) {
|
||||
super();
|
||||
this.event = event;
|
||||
this.races = races;
|
||||
this.boatClassName = boatClassName;
|
||||
this.boats = boats;
|
||||
this.timePointPublished = timePointPublished;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TimePoint getTimePointPublished() {
|
||||
return timePointPublished;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBoatClassName() {
|
||||
return boatClassName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<RaceSummary> getRaces() {
|
||||
List<RaceSummary> result = new ArrayList<RaceSummary>();
|
||||
for (RaceSummary race : races) {
|
||||
result.add(race);
|
||||
}
|
||||
Collections.sort(result, new Comparator<RaceSummary>() {
|
||||
@Override
|
||||
public int compare(RaceSummary o1, RaceSummary o2) {
|
||||
return o1.getRaceNumber() - o2.getRaceNumber();
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RaceSummary getRace(int raceNumberOneBased) {
|
||||
for (RaceSummary race : getRaces()) {
|
||||
if (race.getRaceNumber() == raceNumberOneBased) {
|
||||
return race;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Boat> getBoats() {
|
||||
return boats;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEventName() {
|
||||
return event;
|
||||
}
|
||||
|
||||
}
|
||||
-86
@@ -1,86 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import com.sap.sailing.domain.common.RegattaScoreCorrections;
|
||||
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.odf.resultimport.CumulativeResultDocumentProvider;
|
||||
import com.sap.sailing.odf.resultimport.OdfBody;
|
||||
import com.sap.sailing.odf.resultimport.OdfBodyParser;
|
||||
import com.sap.sailing.odf.resultimport.ParserFactory;
|
||||
|
||||
public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider {
|
||||
private static final long serialVersionUID = -4596215011753860781L;
|
||||
|
||||
private static final String name = "SwissTiming On Venue Result System";
|
||||
|
||||
/**
|
||||
* The directory that will be scanned for <code>.zip</code> files which will then be passed to
|
||||
* {@link ZipFileParser} for analysis.
|
||||
*/
|
||||
private final CumulativeResultDocumentProvider documentProvider;
|
||||
|
||||
private final ParserFactory parserFactory;
|
||||
|
||||
public ScoreCorrectionProviderImpl(CumulativeResultDocumentProvider documentProvider, ParserFactory parserFactory) {
|
||||
this.documentProvider = documentProvider;
|
||||
this.parserFactory = parserFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Set<Pair<String, TimePoint>>> getHasResultsForBoatClassFromDateByEventName()
|
||||
throws IOException, SAXException, ParserConfigurationException {
|
||||
Map<String, Set<Pair<String, TimePoint>>> result = new HashMap<String, Set<Pair<String, TimePoint>>>();
|
||||
for (OdfBody body : getAllOdfBodies()) {
|
||||
String boatClassName = body.getBoatClassName();
|
||||
Set<Pair<String, TimePoint>> set = result.get(boatClassName);
|
||||
if (set == null) {
|
||||
set = new HashSet<>();
|
||||
result.put(boatClassName, set);
|
||||
}
|
||||
set.add(new Pair<String, TimePoint>(body.getEventName(), body.getTimePoint()));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegattaScoreCorrections getScoreCorrections(String eventName, String boatClassName,
|
||||
TimePoint timePointPublished) throws IOException, SAXException, ParserConfigurationException {
|
||||
for (OdfBody body : getAllOdfBodies()) {
|
||||
if (body.getEventName().equals(eventName) && body.getBoatClassName().equals(boatClassName) &&
|
||||
body.getTimePoint().equals(timePointPublished)) {
|
||||
return new OdfBodyAsScoreCorrections(body, this);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private Iterable<OdfBody> getAllOdfBodies() throws SAXException, IOException, ParserConfigurationException {
|
||||
List<OdfBody> result = new ArrayList<>();
|
||||
for (InputStream is : documentProvider.getAllAvailableCumulativeResultDocuments()) {
|
||||
OdfBodyParser parser = parserFactory.createOdfBodyParser();
|
||||
OdfBody body = parser.parse(is, getName());
|
||||
result.add(body);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
package com.sap.sailing.odf.resultimport.impl;
|
||||
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.sap.sailing.odf.resultimport.Skipper;
|
||||
|
||||
public class SkipperImpl extends AthleteImpl implements Skipper {
|
||||
public SkipperImpl(Node node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return super.toString()+" (Skipper)";
|
||||
}
|
||||
}
|
||||
@@ -10,3 +10,4 @@ Export-Package: com.sap.sailing.resultimport,
|
||||
com.sap.sailing.resultimport.impl
|
||||
Import-Package: com.sap.sailing.domain.common,
|
||||
com.sap.sailing.domain.common.impl
|
||||
Require-Bundle: org.eclipse.osgi;bundle-version="3.7.1"
|
||||
+10
-10
@@ -1,10 +1,10 @@
|
||||
package com.sap.sailing.xrr.resultimport;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
|
||||
public interface XRRDocumentProvider {
|
||||
Iterable<Pair<InputStream, String>> getDocumentsAndNames() throws FileNotFoundException;
|
||||
}
|
||||
package com.sap.sailing.resultimport;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
|
||||
public interface ResultDocumentProvider {
|
||||
Iterable<Pair<InputStream, String>> getDocumentsAndNames() throws FileNotFoundException;
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
package com.sap.sailing.resultimport.impl;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
|
||||
import com.sap.sailing.resultimport.ResultDocumentProvider;
|
||||
|
||||
public abstract class AbstractFileBasedScoreCorrectionProvider implements ScoreCorrectionProvider {
|
||||
private static final long serialVersionUID = -4596215011753860781L;
|
||||
|
||||
private final ResultDocumentProvider resultDocumentProvider;
|
||||
|
||||
public AbstractFileBasedScoreCorrectionProvider(File scanDir) {
|
||||
super();
|
||||
if (!scanDir.exists()) {
|
||||
scanDir.mkdirs();
|
||||
}
|
||||
if (!scanDir.isDirectory()) {
|
||||
throw new IllegalArgumentException("scanDir " + scanDir + " must be a directory");
|
||||
}
|
||||
this.resultDocumentProvider = new FileBasedResultDocumentProvider(scanDir);
|
||||
}
|
||||
|
||||
public AbstractFileBasedScoreCorrectionProvider(ResultDocumentProvider resultDocumentProvider) {
|
||||
this.resultDocumentProvider = resultDocumentProvider;
|
||||
}
|
||||
|
||||
protected ResultDocumentProvider getResultDocumentProvider() {
|
||||
return resultDocumentProvider;
|
||||
}
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package com.sap.sailing.resultimport.impl;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.osgi.framework.BundleActivator;
|
||||
import org.osgi.framework.BundleContext;
|
||||
|
||||
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
|
||||
|
||||
public abstract class AbstractFileBasedScoreCorrectionProviderActivator implements BundleActivator {
|
||||
private static final Logger logger = Logger.getLogger(AbstractFileBasedScoreCorrectionProviderActivator.class.getName());
|
||||
|
||||
private final String scanDirPathPropertyName;
|
||||
private final String defaultScanDir;
|
||||
|
||||
protected abstract ScoreCorrectionProvider create(File scanDir);
|
||||
|
||||
public AbstractFileBasedScoreCorrectionProviderActivator(String scanDirPathPropertyName, String defaultScanDir) {
|
||||
super();
|
||||
this.scanDirPathPropertyName = scanDirPathPropertyName;
|
||||
this.defaultScanDir = defaultScanDir;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void start(BundleContext context) throws Exception {
|
||||
String scanDirPath = context.getProperty(scanDirPathPropertyName);
|
||||
if (scanDirPath == null) {
|
||||
scanDirPath = System.getProperty(scanDirPathPropertyName, defaultScanDir);
|
||||
}
|
||||
final ScoreCorrectionProvider service = create(new File(scanDirPath));
|
||||
context.registerService(ScoreCorrectionProvider.class, service, /* properties */ null);
|
||||
logger.info("Scanning "+scanDirPath+" for official result lists of "+service.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop(BundleContext context) throws Exception {
|
||||
}
|
||||
|
||||
}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
package com.sap.sailing.resultimport.impl;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.resultimport.ResultDocumentProvider;
|
||||
|
||||
public class FileBasedResultDocumentProvider implements ResultDocumentProvider {
|
||||
private static final Logger logger = Logger.getLogger(FileBasedResultDocumentProvider.class.getName());
|
||||
|
||||
private final File scanDir;
|
||||
|
||||
public FileBasedResultDocumentProvider(File scanDir) {
|
||||
this.scanDir = scanDir;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Pair<InputStream, String>> getDocumentsAndNames() throws FileNotFoundException {
|
||||
List<Pair<InputStream, String>> result = new ArrayList<>();
|
||||
final File[] fileList = scanDir.listFiles();
|
||||
if (fileList != null) {
|
||||
for (File file : fileList) {
|
||||
if (file.isFile()) {
|
||||
logger.fine("adding " + file + " to result import list");
|
||||
result.add(new Pair<InputStream, String>(new FileInputStream(file), file.toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -33,8 +33,8 @@ import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionsFor
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.impl.Util;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.resultimport.ResultDocumentProvider;
|
||||
import com.sap.sailing.xrr.resultimport.ParserFactory;
|
||||
import com.sap.sailing.xrr.resultimport.XRRDocumentProvider;
|
||||
import com.sap.sailing.xrr.resultimport.impl.ScoreCorrectionProviderImpl;
|
||||
import com.sap.sailing.xrr.resultimport.schema.RegattaResults;
|
||||
|
||||
@@ -53,8 +53,8 @@ public class ParserTest {
|
||||
return new File(RESOURCES + filename);
|
||||
}
|
||||
|
||||
private XRRDocumentProvider getTestDocumentProvider() {
|
||||
return new XRRDocumentProvider() {
|
||||
private ResultDocumentProvider getTestDocumentProvider() {
|
||||
return new ResultDocumentProvider() {
|
||||
@Override
|
||||
public Iterable<Pair<InputStream, String>> getDocumentsAndNames() throws FileNotFoundException {
|
||||
try {
|
||||
|
||||
@@ -10,5 +10,6 @@ Export-Package: com.sap.sailing.xrr.resultimport,
|
||||
com.sap.sailing.xrr.resultimport.schema
|
||||
Import-Package: org.osgi.framework;version="1.6.0"
|
||||
Require-Bundle: com.sap.sailing.domain,
|
||||
com.sap.sailing.domain.common
|
||||
com.sap.sailing.domain.common,
|
||||
com.sap.sailing.resultimport
|
||||
Bundle-Activator: com.sap.sailing.xrr.resultimport.impl.Activator
|
||||
+4
-23
@@ -1,20 +1,14 @@
|
||||
package com.sap.sailing.xrr.resultimport.impl;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.osgi.framework.BundleActivator;
|
||||
import org.osgi.framework.BundleContext;
|
||||
|
||||
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.resultimport.impl.FileBasedResultDocumentProvider;
|
||||
import com.sap.sailing.xrr.resultimport.ParserFactory;
|
||||
import com.sap.sailing.xrr.resultimport.XRRDocumentProvider;
|
||||
|
||||
public class Activator implements BundleActivator {
|
||||
private static final Logger logger = Logger.getLogger(Activator.class.getName());
|
||||
@@ -30,22 +24,9 @@ public class Activator implements BundleActivator {
|
||||
} else {
|
||||
scanDirPath = context.getProperty(SCAN_DIR_PATH_PROPERTY_NAME);
|
||||
}
|
||||
final ScoreCorrectionProviderImpl service = new ScoreCorrectionProviderImpl(new XRRDocumentProvider() {
|
||||
@Override
|
||||
public Iterable<Pair<InputStream, String>> getDocumentsAndNames() throws FileNotFoundException {
|
||||
List<Pair<InputStream, String>> result = new ArrayList<>();
|
||||
final File[] fileList = new File(scanDirPath).listFiles();
|
||||
if (fileList != null) {
|
||||
for (File file : fileList) {
|
||||
if (file.isFile()) {
|
||||
logger.fine("adding " + file + " to XRR import list");
|
||||
result.add(new Pair<InputStream, String>(new FileInputStream(file), file.toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}, ParserFactory.INSTANCE);
|
||||
final ScoreCorrectionProviderImpl service = new ScoreCorrectionProviderImpl(new FileBasedResultDocumentProvider(
|
||||
new File(scanDirPath)),
|
||||
ParserFactory.INSTANCE);
|
||||
context.registerService(ScoreCorrectionProvider.class,
|
||||
service, /* properties */ null);
|
||||
logger.info("Scanning "+scanDirPath+" for official XRR result lists of "+service.getName());
|
||||
|
||||
+6
-12
@@ -18,32 +18,26 @@ import org.xml.sax.SAXException;
|
||||
|
||||
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.common.RegattaScoreCorrections;
|
||||
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.resultimport.ResultDocumentProvider;
|
||||
import com.sap.sailing.resultimport.impl.AbstractFileBasedScoreCorrectionProvider;
|
||||
import com.sap.sailing.xrr.resultimport.Parser;
|
||||
import com.sap.sailing.xrr.resultimport.ParserFactory;
|
||||
import com.sap.sailing.xrr.resultimport.XRRDocumentProvider;
|
||||
import com.sap.sailing.xrr.resultimport.schema.Division;
|
||||
import com.sap.sailing.xrr.resultimport.schema.Event;
|
||||
import com.sap.sailing.xrr.resultimport.schema.RegattaResults;
|
||||
|
||||
public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider {
|
||||
public class ScoreCorrectionProviderImpl extends AbstractFileBasedScoreCorrectionProvider {
|
||||
private static final Logger logger = Logger.getLogger(ScoreCorrectionProviderImpl.class.getName());
|
||||
private static final long serialVersionUID = -4596215011753860781L;
|
||||
|
||||
private static final String name = "ISAF XML Regatta Result (XRR) Importer";
|
||||
|
||||
/**
|
||||
* The directory that will be scanned for <code>.zip</code> files which will then be passed to
|
||||
* {@link ZipFileParser} for analysis.
|
||||
*/
|
||||
private final XRRDocumentProvider documentProvider;
|
||||
|
||||
private final ParserFactory parserFactory;
|
||||
|
||||
public ScoreCorrectionProviderImpl(XRRDocumentProvider documentProvider, ParserFactory parserFactory) {
|
||||
this.documentProvider = documentProvider;
|
||||
public ScoreCorrectionProviderImpl(ResultDocumentProvider documentProvider, ParserFactory parserFactory) {
|
||||
super(documentProvider);
|
||||
this.parserFactory = parserFactory;
|
||||
}
|
||||
|
||||
@@ -134,7 +128,7 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider {
|
||||
private Iterable<Parser> getAllRegattaResults() throws SAXException, IOException,
|
||||
ParserConfigurationException {
|
||||
List<Parser> result = new ArrayList<>();
|
||||
for (Pair<InputStream, String> is : documentProvider.getDocumentsAndNames()) {
|
||||
for (Pair<InputStream, String> is : getResultDocumentProvider().getDocumentsAndNames()) {
|
||||
Parser parser = parserFactory.createParser(is.getA(), is.getB());
|
||||
result.add(parser);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user