Merge remote-tracking branch 'github/main'

This commit is contained in:
Axel Uhl committed 2025-12-23 01:24:03 +01:00
commit 431bf4b51a
299 files changed
+1161 -835

No files matched your search

+8
View File
@@ -6,6 +6,7 @@ on:
- '.github/workflows/*'
- '**/*.md'
- 'README.md'
- 'docs/**'
workflow_dispatch:
inputs:
skip_tests:
@@ -78,6 +79,12 @@ jobs:
distribution: 'temurin' # See 'Supported distributions' for available options
java-version: '8'
mvn-toolchain-id: 'JavaSE-1.8'
- name: Install JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin' # See 'Supported distributions' for available options
java-version: '17'
mvn-toolchain-id: 'JavaSE-17'
- name: Install JDK 25
uses: actions/setup-java@v4
with:
@@ -107,6 +114,7 @@ jobs:
GOOGLE_MAPS_AUTHENTICATION_PARAMS: ${{ secrets.GOOGLE_MAPS_AUTHENTICATION_PARAMS }}
APP_PARAMETERS: "-Daws.region=eu-west-1"
JAVA8_HOME: ${{env.JAVA_HOME_8_X64}}
JAVA17_HOME: ${{env.JAVA_HOME_17_X64}}
run: |
./configuration/buildAndUpdateProduct.sh -x ${{ github.event.inputs.runner_cpus == '' && '4' || github.event.inputs.runner_cpus }} ${{ github.event.inputs.skip_tests == 'true' && '-t' || '' }} ${{ github.event.inputs.local_target_platform == 'true' && '-v' || '' }} build 2>&1
- name: show disk stats
+3
View File
@@ -24,6 +24,9 @@ steps:
sapCumulusUpload:
pipelineId: '84d219f0-1abb-4b37-bad0-e2893612ce25'
versioningModel: 'semantic' # overwrite default from general section -> don't spam Cumulus
sapCallStagingService:
url: https://staging.repositories.cloud.sap/stage/api
profile: 'naas-mobile-staging-profile'
# Rotating vault secret if it is expring soon:
vaultRotateSecretId:
daysBeforeExpiry: 45
+11 -9
View File
@@ -9,26 +9,28 @@ GEM
public_suffix (>= 2.0.2, < 7.0)
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.2)
aws-partitions (1.1091.0)
aws-sdk-core (3.222.2)
aws-eventstream (1.4.0)
aws-partitions (1.1198.0)
aws-sdk-core (3.240.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
base64
bigdecimal
jmespath (~> 1, >= 1.6.1)
logger
aws-sdk-kms (1.99.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sdk-kms (1.118.0)
aws-sdk-core (~> 3, >= 3.239.1)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.183.0)
aws-sdk-core (~> 3, >= 3.216.0)
aws-sdk-s3 (1.208.0)
aws-sdk-core (~> 3, >= 3.234.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.11.0)
aws-sigv4 (1.12.1)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
base64 (0.3.0)
bigdecimal (4.0.1)
claide (1.1.0)
colored (1.2)
colored2 (3.1.2)
+1
View File
@@ -182,6 +182,7 @@ export AWS_S3_TEST_S3ACCESSKEY={key-for-your-S3-token}
export GEONAMES_ORG_USERNAMES={comma-separated-list-of-geonames.org-usernames}
export GOOGLE_MAPS_AUTHENTICATION_PARAMS=key={your-Google-Maps-API-key}
export JAVA8_HOME={location-of-your-JDK8}
export JAVA17_HOME={location-of-your-JDK17}
export JAVA_HOME={location-of-your-JDK17-or-newer}
```
+3 -3
View File
@@ -28,7 +28,7 @@ resources:
# For available versions, please have a look here (use the tag, not the release name):
# https://github.tools.sap/SAPMobile/sap-mobile-pipeline/releases
# ----------
ref: 'refs/tags/3.12.0' # last version to support Android API Level 33
ref: 'refs/tags/3.13.3'
#################################################################
######################### Pipeline Start ########################
@@ -47,8 +47,8 @@ extends:
testLaneName: 'test'
# requestAuthentication: true # enable if fetching dependencies from Artifactory or Nexus
appCenterSlug: 'sapsailing/sapsailing-android-apps'
jdkVersion: 11
androidVersion: 33
jdkVersion: 17
androidVersion: 35
# We are building more than one app from our repository; we will use branches
# to determine which app is to be built/released/signed
# Default: Race Manager App
+2 -2
View File
@@ -13,7 +13,7 @@ buildscript {
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.4'
classpath 'com.android.tools.build:gradle:7.0.4'
classpath "org.ajoberstar:grgit:2.3.0"
}
}
@@ -64,7 +64,7 @@ ext {
// testing - jvm
junit = "4.12"
mockito = "1.9.5"
mockito = "5.8.0"
// testing - ui
test = "0.2"
+1 -1
View File
@@ -1 +1 @@
1.4.122
1.4.124
+3 -3
View File
@@ -235,7 +235,7 @@ fi
rm $START_DIR/build.log
if [[ "$@" == "clean" ]]; then
JAVA_HOME="${JAVA8_HOME}" ./gradlew clean
JAVA_HOME="${JAVA17_HOME}" ./gradlew clean
if [[ $? != 0 ]]; then
exit 100
fi
@@ -693,11 +693,11 @@ if [[ "$@" == "build" ]] || [[ "$@" == "all" ]]; then
# mobile_extra="-P -with-not-android-relevant -P with-mobile"
echo "Building apps with Gradle..."
JAVA_HOME="${JAVA8_HOME}" ./gradlew build
JAVA_HOME="${JAVA17_HOME}" ./gradlew build
if [[ ${PIPESTATUS[0]} != 0 ]]; then
exit 100
fi
JAVA_HOME="${JAVA8_HOME}" ./gradlew assemble
JAVA_HOME="${JAVA17_HOME}" ./gradlew assemble
if [[ ${PIPESTATUS[0]} != 0 ]]; then
exit 100
fi
+1
View File
@@ -593,5 +593,6 @@ https://historical1.tractrac.com/events/event_20170603_SailingWor/jsonservice.ph
https://liveserver1.tractrac.com/events/event_20240621_KielerWoch/jsonservice.php
https://liveserver1.tractrac.com/events/event_20241003_ClubeNaval/jsonservice.php
https://liveserver1.tractrac.com/events/event_20250210_HongKongRa/jsonservice.php
https://liveserver1.tractrac.com/events/event_20251204_WorldSaili/jsonservice.php
https://paris1.tractrac.com/events/event_20240312_TrofeoPrin/jsonservice.php
https://paris1.tractrac.com/events/event_20240411_SemaineOly/jsonservice.php
+1
View File
@@ -0,0 +1 @@
docs.sapsailing.com
+9
View File
@@ -0,0 +1,9 @@
<head>
<title>Hello Sailing World</title>
</head>
<body>
<h1>Hello Sailing World</h1>
<p>
This is the Sailing Analytics solution.
</p>
</body>
+1 -1
View File
@@ -21,5 +21,5 @@ org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8
commonRepoURL=https://int.repositories.cloud.sap/artifactory/build-snapshots
sapGradleDistBaseUrl=https://int.repositories.cloud.sap/artifactory/build-releases/org/gradle/download/gradle/gradle
sapGradleVersion=6.0.1
sapGradleVersion=7.6
group=com.sap.sailing.android
+1 -1
View File
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.0.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
@@ -17,6 +17,7 @@ public enum RacingProcedureType {
BASIC("Basic Countdown Start"),
LEAGUE("League Start"),
RRS26_3MIN("Fix Line Start with 3min Sequence (RRS26/3)"),
SWC_5MIN("Sailing World Cup Start with 5min Sequence (2025 and onwards)"),
SWC_4MIN("Sailing World Cup Start with 4min Sequence (Kites, Surfers)");
private String displayName;
@@ -29,7 +29,7 @@ public class RacingProceduresWithStartModeFlagTest {
for (final RacingProcedureType type : RacingProcedureType.values()) {
if (type != RacingProcedureType.UNKNOWN) {
final ReadonlyRacingProcedure racingProcedure = racingProcedureFactory.createRacingProcedure(type, raceLog, /* raceLogResolver */ null);
assertEquals(RacingProcedureType.RRS26.equals(type) || RacingProcedureType.RRS26_3MIN.equals(type) || RacingProcedureType.SWC.equals(type) || RacingProcedureType.SWC_4MIN.equals(type),
assertEquals(RacingProcedureType.RRS26.equals(type) || RacingProcedureType.RRS26_3MIN.equals(type) || RacingProcedureType.SWC.equals(type) || RacingProcedureType.SWC_4MIN.equals(type) || RacingProcedureType.SWC_5MIN.equals(type),
racingProcedure instanceof ConfigurableStartModeFlagRacingProcedure,
"Racing procedure type "+type.name()+" was "+((racingProcedure instanceof ConfigurableStartModeFlagRacingProcedure) ? "" : "not ")+
"considered one with configurable start mode flag but should have");
@@ -12,6 +12,7 @@ import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.basic.impl.
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.ess.impl.ESSRacingProcedureImpl;
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.gate.impl.GateStartRacingProcedureImpl;
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.league.impl.LeagueRacingProcedureImpl;
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.impl.MediumSWCRacingProcedureImpl;
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.impl.RRS26RacingProcedureImpl;
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.impl.RRS26ThreeMinutesRacingProcedureImpl;
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.impl.SWCRacingProcedureImpl;
@@ -56,6 +57,8 @@ public class ReadonlyRacingProcedureFactory implements RacingProcedureFactory {
return new SWCRacingProcedureImpl(raceLog, author, loadedConfiguration.getSWCStartConfiguration(), raceLogResolver);
case SWC_4MIN:
return new ShortSWCRacingProcedureImpl(raceLog, author, loadedConfiguration.getSWCStartConfiguration(), raceLogResolver);
case SWC_5MIN:
return new MediumSWCRacingProcedureImpl(raceLog, author, loadedConfiguration.getSWCStartConfiguration(), raceLogResolver);
case BASIC:
return new BasicRacingProcedureImpl(raceLog, author, loadedConfiguration.getBasicConfiguration(), raceLogResolver);
case LEAGUE:
@@ -0,0 +1,71 @@
package com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.impl;
import java.util.Arrays;
import java.util.Collections;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.race.RaceLog;
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.RaceLogResolver;
import com.sap.sailing.domain.abstractlog.race.state.RaceStateEvent;
import com.sap.sailing.domain.abstractlog.race.state.impl.RaceStateEventImpl;
import com.sap.sailing.domain.abstractlog.race.state.impl.RaceStateEvents;
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.FlagPoleState;
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.SWCRacingProcedure;
import com.sap.sailing.domain.base.configuration.procedures.SWCStartConfiguration;
import com.sap.sailing.domain.common.racelog.FlagPole;
import com.sap.sailing.domain.common.racelog.Flags;
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
import com.sap.sse.common.Duration;
import com.sap.sse.common.TimePoint;
public class MediumSWCRacingProcedureImpl extends SWCRacingProcedureImpl implements SWCRacingProcedure {
private final static Duration CLASS_AND_STARTMODE_UP_INTERVAL_5MIN = Duration.ONE_MINUTE.times(5); // 5 minutes before start
public MediumSWCRacingProcedureImpl(RaceLog raceLog, AbstractLogEventAuthor author,
SWCStartConfiguration configuration, RaceLogResolver raceLogResolver) {
super(raceLog, author, configuration, raceLogResolver);
}
@Override
protected Duration getStartPhaseStartModeUpInterval() {
return CLASS_AND_STARTMODE_UP_INTERVAL_5MIN;
}
@Override
public RacingProcedureType getType() {
return RacingProcedureType.SWC_5MIN;
}
@Override
public Iterable<RaceStateEvent> createStartStateEvents(TimePoint startTime) {
return Arrays.<RaceStateEvent>asList(
new RaceStateEventImpl(startTime.minus(CLASS_AND_STARTMODE_UP_INTERVAL_5MIN), RaceStateEvents.SWC_CLASS_AND_STARTMODE_UP),
new RaceStateEventImpl(startTime.minus(FOUR_MINUTES_FLAG_UP_INTERVAL), RaceStateEvents.SWC_FOUR_UP),
new RaceStateEventImpl(startTime.minus(THREE_MINUTES_FLAG_UP_INTERVAL), RaceStateEvents.SWC_THREE_UP),
new RaceStateEventImpl(startTime.minus(TWO_MINUTES_FLAG_UP_INTERVAL), RaceStateEvents.SWC_TWO_UP),
new RaceStateEventImpl(startTime.minus(ONE_MINUTE_FLAG_UP_INTERVAL), RaceStateEvents.SWC_ONE_UP),
new RaceStateEventImpl(startTime, RaceStateEvents.START),
new RaceStateEventImpl(startTime, RaceStateEvents.SWC_GREEN_UP),
new RaceStateEventImpl(startTime.plus(CLASS_AND_STARTMODE_DOWN_INTERVAL), RaceStateEvents.SWC_CLASS_AND_STARTMODE_DOWN));
}
@Override
public FlagPoleState getActiveFlags(TimePoint startTime, TimePoint now) {
if (now.before(startTime.minus(CLASS_AND_STARTMODE_UP_INTERVAL_5MIN))) {
return new FlagPoleState(
Collections.singletonList(new FlagPole(cachedStartmodeFlag, false)),
null,
Collections.singletonList(new FlagPole(cachedStartmodeFlag, true)),
startTime.minus(CLASS_AND_STARTMODE_UP_INTERVAL_5MIN));
} else if (now.before(startTime.minus(THREE_MINUTES_FLAG_UP_INTERVAL))) {
return new FlagPoleState(
Arrays.asList(new FlagPole(cachedStartmodeFlag, true), new FlagPole(Flags.SWC_FOUR, false)),
startTime.minus(CLASS_AND_STARTMODE_UP_INTERVAL_5MIN),
Arrays.asList(new FlagPole(cachedStartmodeFlag, true), new FlagPole(Flags.SWC_FOUR, true)),
startTime.minus(FOUR_MINUTES_FLAG_UP_INTERVAL));
} else {
return super.getActiveFlags(startTime, now);
}
}
}
@@ -20,7 +20,7 @@ import com.sap.sse.common.TimePoint;
public class ShortSWCRacingProcedureImpl extends SWCRacingProcedureImpl implements SWCRacingProcedure {
private final static Duration CLASS_AND_STARTMODE_UP_INTERVAL_4MIN = Duration.ONE_MINUTE.times(4); // 6 minutes before start
private final static Duration CLASS_AND_STARTMODE_UP_INTERVAL_4MIN = Duration.ONE_MINUTE.times(4); // 4 minutes before start
public ShortSWCRacingProcedureImpl(RaceLog raceLog, AbstractLogEventAuthor author,
SWCStartConfiguration configuration, RaceLogResolver raceLogResolver) {
@@ -57,12 +57,12 @@ public class ShortSWCRacingProcedureImpl extends SWCRacingProcedureImpl implemen
null,
Collections.singletonList(new FlagPole(cachedStartmodeFlag, true)),
startTime.minus(CLASS_AND_STARTMODE_UP_INTERVAL_4MIN));
} else if (now.before(startTime.minus(THREE_MINUTES_FLAG_UP_INTERVAL))) {
return new FlagPoleState(
Arrays.asList(new FlagPole(cachedStartmodeFlag, true), new FlagPole(Flags.SWC_THREE, false)),
startTime.minus(CLASS_AND_STARTMODE_UP_INTERVAL_4MIN),
Arrays.asList(new FlagPole(cachedStartmodeFlag, true), new FlagPole(Flags.SWC_THREE, true)),
startTime.minus(THREE_MINUTES_FLAG_UP_INTERVAL));
} else if (now.before(startTime.minus(THREE_MINUTES_FLAG_UP_INTERVAL))) {
return new FlagPoleState(
Arrays.asList(new FlagPole(cachedStartmodeFlag, true), new FlagPole(Flags.SWC_THREE, false)),
startTime.minus(CLASS_AND_STARTMODE_UP_INTERVAL_4MIN),
Arrays.asList(new FlagPole(cachedStartmodeFlag, true), new FlagPole(Flags.SWC_THREE, true)),
startTime.minus(THREE_MINUTES_FLAG_UP_INTERVAL));
} else {
return super.getActiveFlags(startTime, now);
}
@@ -334,13 +334,12 @@ public class ScoreCorrectionImpl implements SettableScoreCorrection {
NavigableSet<MarkPassing> markPassings = trackedRace.getMarkPassings(competitor);
final MarkPassing lastMarkPassing;
// count race as finished for the competitor if the finish mark passing exists or the time is after the end of race
if (markPassings != null && !markPassings.isEmpty() &&
(lastMarkPassing = markPassings.last()).getWaypoint() == trackedRace.getRace().getCourse().getLastWaypoint()) {
result = timePoint.before(lastMarkPassing.getTimePoint());
} else {
// if available, use the end of the race as indicator for how long competitor may have been in the race
result = timePoint.before(endOfRace);
}
final boolean raceFinishedForCompetitor =
(markPassings != null && !markPassings.isEmpty() &&
(lastMarkPassing = markPassings.last()).getWaypoint() == trackedRace.getRace().getCourse().getLastWaypoint() &&
!timePoint.before(lastMarkPassing.getTimePoint()))
|| !timePoint.before(endOfRace);
result = !raceFinishedForCompetitor;
} else {
boolean preResult = false;
for (RaceColumn rc : getLeaderboard().getRaceColumns()) {
@@ -43,6 +43,7 @@ public class Footer extends Composite {
@UiField AnchorElement privacyAnchorLink;
@UiField AnchorElement mobileUi;
@UiField AnchorElement jobsAnchor;
@UiField AnchorElement sourceCodeAnchor;
@UiField(provided = true)
final PlaceNavigation<WhatsNewPlace> releaseNotesNavigation;
@@ -67,10 +68,12 @@ public class Footer extends Composite {
supportAnchor.getStyle().setDisplay(Display.NONE);
privacyAnchorLink.getStyle().setDisplay(Display.NONE);
jobsAnchor.getStyle().setDisplay(Display.NONE);
sourceCodeAnchor.setHref("https://github.com/SAP/sailing-analytics");
} else {
hideIfBlank(copyrightDiv, cfg.getFooterCopyright());
setHrefOrHide(privacyAnchorLink, cfg.getFooterPrivacyLink());
setHrefOrHide(jobsAnchor, cfg.getFooterJobsLink());
setHrefOrHide(sourceCodeAnchor, cfg.getGitHubLink());
setHrefOrHide(supportAnchor, cfg.getFooterSupportLink());
languageSelector.setLabelText(cfg.getBrandTitle(Optional.empty()) + " " + StringMessages.INSTANCE.whitelabelFooterLanguage());
if (!hideIfBlank(copyrightDiv, cfg.getFooterCopyright())) {
@@ -79,6 +82,8 @@ public class Footer extends Composite {
}
copyrightDiv.setAttribute(DebugConstants.DEBUG_ID_ATTRIBUTE, "copyrightDiv");
supportAnchor.setAttribute(DEBUG_ID_ATTRIBUTE, "supportAnchor");
jobsAnchor.setAttribute(DEBUG_ID_ATTRIBUTE, "jobsAnchor");
sourceCodeAnchor.setAttribute(DEBUG_ID_ATTRIBUTE, "sourceCodeAnchor");
whatsNewAnchor.setAttribute(DEBUG_ID_ATTRIBUTE, "whatsNewAnchor");
imprintAnchorLink.setAttribute(DEBUG_ID_ATTRIBUTE, "imprintAnchorLink");
privacyAnchorLink.setAttribute(DEBUG_ID_ATTRIBUTE, "privacyAnchorLink");
@@ -18,6 +18,9 @@
<a ui:field="privacyAnchorLink" target="_blank" class="{local_res.css.dfooter_item} {local_res.css.dfooter_link}">
<ui:text from='{i18n.footerPrivacy}' />
</a>
<a ui:field="sourceCodeAnchor" target="_blank" class="{local_res.css.dfooter_item} {local_res.css.dfooter_link}">
<ui:text from='{i18n.sourceCode}'/>
</a>
<a ui:field="jobsAnchor" target="_blank" class="{local_res.css.dfooter_item} {local_res.css.dfooter_link}">
<ui:text from='{i18n.footerJobs}'/>
</a>
@@ -12,27 +12,41 @@
font-size: 2.4em;
margin-bottom: 0.833333333333333em;
}
.socialfooter_item {
.socialfooter_items {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.socialfooter_items > .socialfooter_item {
float: none;
white-space: nowrap;
box-sizing: border-box;
display: block;
flex: 0 0 17rem;
margin: 0 0.75rem 1.5rem;
}
.socialfooter_item a {
color: #f6f9fc;
text-decoration: none;
}
.socialfooter_item_contentwrapper {
padding: 1.133333333333333em 6.666666666666667em 1.4em 0.666666666666667em;
display: flex;
align-items: center;
width: 100%;
box-sizing: border-box;
padding: 1em 2em 1.4em 1.3333em;
}
.socialfooter_item_contentwrappertwitter {
background: #58aeee;
padding-left: 1.133333333333333em;
}
.socialfooter_item_contentwrapperfacebook {
background: #3b5998;
padding-left: 1.333333333333333em;
}
.socialfooter_item_contentwrapperinstagram {
background: #ffffff;
padding-left: 1.333333333333333em;
}
.socialfooter_item_contentwrappergithub {
background: #333333;
}
.socialfooter_itemleft {
text-align: right;
@@ -44,9 +58,11 @@
text-align: center;
}
img.socialfooter_item_icon {
display: inline-block;
vertical-align: middle;
height: 1.666666666666667em;
display: block;
height: 1.6667em;
width: 1.6667em;
object-fit: contain;
flex: 0 0 1.6667em;
}
.socialfooter_item_text {
line-height: 1;
@@ -61,6 +77,10 @@ img.socialfooter_item_icon {
border-left: 1px solid rgba(51, 51, 51,0.2);
color: #333;
}
.socialfooter_item_text_github {
border-left: 1px solid rgba(255,255,255,0.2);
color: #ffffff;
}
.socialfooter_item_text_top {
font-size: 1em;
}
@@ -27,12 +27,15 @@ public class SocialFooter extends Composite {
@UiField HTMLPanel htmlPanel;
@UiField HeadingElement socialHeading;
@UiField DivElement xItem;
@UiField DivElement gitHubItem;
@UiField DivElement facebookItem;
@UiField DivElement instagramItem;
@UiField AnchorElement xLink;
@UiField AnchorElement gitHubLink;
@UiField AnchorElement facebookLink;
@UiField AnchorElement instagramLink;
@UiField DivElement xTopText;
@UiField DivElement gitHubTopText;
@UiField DivElement facebookTopText;
@UiField DivElement instagramTopText;
@@ -45,6 +48,7 @@ public class SocialFooter extends Composite {
} else {
socialHeading.setInnerText(cfg.getFollowSports(Optional.empty()));
setHrefOrHide(xItem, xLink, xTopText, cfg.getxLink(), cfg.getSportsOn(Optional.empty()));
setHrefOrHide(gitHubItem, gitHubLink, gitHubTopText, cfg.getGitHubLink(), cfg.getFollowGitHub(Optional.empty()));
setHrefOrHide(facebookItem, facebookLink, facebookTopText, cfg.getFacebookLink(), cfg.getSportsOn(Optional.empty()));
setHrefOrHide(instagramItem, instagramLink, instagramTopText, cfg.getInstagramLink(), cfg.getSportsOn(Optional.empty()));
}
@@ -9,9 +9,10 @@
<!-- The search/social media page footer-->
<div class="{local_res.css.socialfooter}">
<div class="{res.mediaCss.grid}">
<h3 ui:field="socialHeading" class="{local_res.css.socialfooter_heading} {res.mediaCss.small12} {res.mediaCss.columns}">
<h3 ui:field="socialHeading" class="{local_res.css.socialfooter_heading}">
</h3>
<div ui:field="xItem" class="{local_res.css.socialfooter_item} {local_res.css.socialfooter_itemleft} {res.mediaCss.small4} {res.mediaCss.columns}">
<div class="{local_res.css.socialfooter_items}">
<div ui:field="xItem" class="{local_res.css.socialfooter_item} {local_res.css.socialfooter_itemleft} ">
<a ui:field="xLink" target="_blank" class="{local_res.css.socialfooter_item_contentwrapper} {local_res.css.socialfooter_item_contentwrappertwitter}">
<img src="{shr.twitter.getSafeUri}" class="{local_res.css.socialfooter_item_icon}"></img>
<div class="{local_res.css.socialfooter_item_text}">
@@ -21,7 +22,7 @@
</div>
</a>
</div>
<div ui:field="facebookItem" class="{local_res.css.socialfooter_item} {local_res.css.socialfooter_itemcenter} {res.mediaCss.small4} {res.mediaCss.columns}">
<div ui:field="facebookItem" class="{local_res.css.socialfooter_item} {local_res.css.socialfooter_itemcenter}">
<a ui:field="facebookLink" target="_blank" class="{local_res.css.socialfooter_item_contentwrapper} {local_res.css.socialfooter_item_contentwrapperfacebook}">
<img src="{shr.facebook.getSafeUri}" class="{local_res.css.socialfooter_item_icon}"></img>
<div class="{local_res.css.socialfooter_item_text}">
@@ -31,7 +32,7 @@
</div>
</a>
</div>
<div ui:field="instagramItem" class="{local_res.css.socialfooter_item} {local_res.css.socialfooter_itemright} {res.mediaCss.small4} {res.mediaCss.columns}">
<div ui:field="instagramItem" class="{local_res.css.socialfooter_item} {local_res.css.socialfooter_itemcenter}">
<a ui:field="instagramLink" target="_blank" class="{local_res.css.socialfooter_item_contentwrapper} {local_res.css.socialfooter_item_contentwrapperinstagram}">
<img src="{shr.instagram.getSafeUri}" class="{local_res.css.socialfooter_item_icon}"></img>
<div class="{local_res.css.socialfooter_item_text} {local_res.css.socialfooter_item_text_inverse}">
@@ -41,6 +42,17 @@
</div>
</a>
</div>
<div ui:field="gitHubItem" class="{local_res.css.socialfooter_item} {local_res.css.socialfooter_itemright}">
<a ui:field="gitHubLink" target="_blank" class="{local_res.css.socialfooter_item_contentwrapper} {local_res.css.socialfooter_item_contentwrappergithub}">
<img src="{shr.githubWhite.getSafeUri}" class="{local_res.css.socialfooter_item_icon}"></img>
<div class="{local_res.css.socialfooter_item_text} {local_res.css.socialfooter_item_text_github}">
<div ui:field="gitHubTopText" class="{local_res.css.socialfooter_item_text_top}">
</div>
<div class="{local_res.css.socialfooter_item_text_bottom}">GitHub</div>
</div>
</a>
</div>
</div>
</div>
</div>
</g:HTMLPanel>
@@ -26,5 +26,8 @@ public interface SocialFooterResources extends ClientBundle {
String socialfooter_item_text_inverse();
String socialfooter_item_text_top();
String socialfooter_item_text_bottom();
String socialfooter_items();
String socialfooter_item_contentwrappergithub();
String socialfooter_item_text_github();
}
}
@@ -4,6 +4,12 @@
<div id="mainContent">
<h4 class="articleHeadline" id="raceManagerHeadline">What's New - Sailing Race Manager</h4>
<div class="innerContent">
<h5 class="articleSubheadline">December 2025</h5>
<ul class="bulletList">
<li>Fixed an issue with the "Wind Map" that on some devices caused the map to not show.</li>
<li>Added Sailing World Cup format with five-minute sequence, instead of the six and four
which existed already.</li>
</ul>
<h5 class="articleSubheadline">April 2025</h5>
<ul class="bulletList">
<li>For Android 14 compatibility added another way of scheduling "flag pole" and race log
@@ -15,6 +15,10 @@
computing the minimum course difference required between the clusters for the different
tacks. All this helps to improve wind direction estimation results if no wind speed
is provided at all.</li>
<li>When a competitor receives a penalty that applies at race end, we now apply it at
blue flag down, or at the competitor's finish mark passing, whichever comes earlier.
So far, when a finish mark passing came after blue flag down, the penalty was displayed
only once the finish mark passing had been reached, which was not useful, e.g., for DNF.</li>
</ul>
<h5 class="articleSubheadline">October 2025</h5>
<ul class="bulletList">
@@ -45,6 +45,7 @@ public class Footer extends Composite {
@UiField AnchorElement imprintAnchorLink;
@UiField AnchorElement desktopUi;
@UiField AnchorElement jobsAnchor;
@UiField AnchorElement sourceCodeAnchor;
@UiField AnchorElement privacyAnchor;
@UiField SpanElement pipe;
@@ -71,6 +72,7 @@ public class Footer extends Composite {
supportAnchor.getStyle().setDisplay(Display.NONE);
jobsAnchor.getStyle().setDisplay(Display.NONE);
privacyAnchor.getStyle().setDisplay(Display.NONE);
sourceCodeAnchor.setHref("https://github.com/SAP/sailing-analytics");
} else {
pipe.setInnerText("|");
if (!hideIfBlank(copyrightDiv, cfg.getFooterCopyright())) {
@@ -79,6 +81,7 @@ public class Footer extends Composite {
languageSelector.setLabelText(cfg.getBrandTitle(Optional.empty()) + " " + StringMessages.INSTANCE.whitelabelFooterLanguage());
setHrefOrHide(privacyAnchor, cfg.getFooterPrivacyLink());
setHrefOrHide(jobsAnchor, cfg.getFooterJobsLink());
setHrefOrHide(sourceCodeAnchor, cfg.getGitHubLink());
setHrefOrHide(supportAnchor, cfg.getFooterSupportLink());
if (!hideIfBlank(copyrightDiv, cfg.getFooterCopyright())) {
copyrightDiv.setInnerText(cfg.getFooterCopyright());
@@ -19,6 +19,9 @@
title="{i18n.footerPrivacy}">
<ui:text from='{i18n.footerPrivacy}' />
</a>
<a ui:field="sourceCodeAnchor" target="_blank">
<ui:text from='{i18n.sourceCode}'/>
</a>
<a ui:field="jobsAnchor" target="_blank">
<ui:text from='{i18n.footerJobs}'/>
</a>
@@ -1,11 +1,11 @@
/**
* Events on the main page
* Events on the main page (mobile)
*/
.socialfooter {
font-size: 1rem;
background: #008fcc;
color: #fff;
padding: 2em 0 0 0;
padding: 2.5em 0 4em 0;
margin-top: 3em;
}
.socialfooter_heading {
@@ -13,9 +13,22 @@
margin-bottom: 1.875em;
font-size: 1.066666666666667em;
}
.socialfooter_items {
display: flex;
flex-wrap: wrap;
justify-content: center;
width: 100%;
clear: both;
padding: 0;
}
.socialfooter_item {
white-space: nowrap;
padding-bottom: 2em;
box-sizing: border-box;
display: flex;
justify-content: center;
flex: 0 1 10rem;
min-width: 0;
margin: 0 0.75rem 2em;
}
.socialfooter_item a {
color: #f6f9fc;
@@ -24,15 +37,6 @@
.socialfooter_item_contentwrapper {
visibility: visible;
}
.socialfooter_itemleft {
text-align: right;
}
.socialfooter_itemcenter {
text-align: center;
}
.socialfooter_itemright {
text-align: left;
}
img.socialfooter_item_icon {
display: inline-block;
height: 1.333333333333333em;
@@ -27,12 +27,15 @@ public class SocialFooter extends Composite {
@UiField HTMLPanel htmlPanel;
@UiField HeadingElement socialHeading;
@UiField DivElement xItem;
@UiField DivElement gitHubItem;
@UiField DivElement facebookItem;
@UiField DivElement instagramItem;
@UiField AnchorElement xLink;
@UiField AnchorElement gitHubLink;
@UiField AnchorElement facebookLink;
@UiField AnchorElement instagramLink;
@UiField DivElement xTopText;
@UiField DivElement gitHubTopText;
@UiField DivElement facebookTopText;
@UiField DivElement instagramTopText;
@@ -47,6 +50,7 @@ public class SocialFooter extends Composite {
setHrefOrHide(xItem, xLink, xTopText, cfg.getxLink(), cfg.getSportsOn(Optional.empty()));
setHrefOrHide(facebookItem, facebookLink, facebookTopText, cfg.getFacebookLink(), cfg.getSportsOn(Optional.empty()));
setHrefOrHide(instagramItem, instagramLink, instagramTopText, cfg.getInstagramLink(), cfg.getSportsOn(Optional.empty()));
setHrefOrHide(gitHubItem, gitHubLink, gitHubTopText, cfg.getGitHubLink(), cfg.getFollowGitHub(Optional.empty()));
}
htmlPanel.getElement().setAttribute(DEBUG_ID_ATTRIBUTE, "socialFooter");
}
@@ -11,7 +11,8 @@
<div class="{res.mediaCss.grid}">
<h3 ui:field="socialHeading" class="{local_res.css.socialfooter_heading} {res.mediaCss.small12} {res.mediaCss.columns}">
</h3>
<div ui:field="xItem" class="{local_res.css.socialfooter_item} {local_res.css.socialfooter_itemleft} {res.mediaCss.small6} {res.mediaCss.columns}">
<div class="{local_res.css.socialfooter_items}">
<div ui:field="xItem" class="{local_res.css.socialfooter_item}">
<a ui:field="xLink" target="_blank" class="{local_res.css.socialfooter_item_contentwrapper}">
<img src="{shr.twitter.getSafeUri}" class="{local_res.css.socialfooter_item_icon}"></img>
<div class="{local_res.css.socialfooter_item_text}">
@@ -21,7 +22,7 @@
</div>
</a>
</div>
<div ui:field="facebookItem" class="{local_res.css.socialfooter_item} {local_res.css.socialfooter_itemright} {res.mediaCss.small6} {res.mediaCss.columns}">
<div ui:field="facebookItem" class="{local_res.css.socialfooter_item}">
<a ui:field="facebookLink" target="_blank" class="{local_res.css.socialfooter_item_contentwrapper}">
<img src="{shr.facebook.getSafeUri}" class="{local_res.css.socialfooter_item_icon}"></img>
<div class="{local_res.css.socialfooter_item_text}">
@@ -31,7 +32,17 @@
</div>
</a>
</div>
<div ui:field="instagramItem" class="{local_res.css.socialfooter_item} {local_res.css.socialfooter_itemcenter} {res.mediaCss.small12} {res.mediaCss.columns}">
<div ui:field="gitHubItem" class="{local_res.css.socialfooter_item}">
<a ui:field="gitHubLink" target="_blank" class="{local_res.css.socialfooter_item_contentwrapper}">
<img src="{shr.githubWhite.getSafeUri}" class="{local_res.css.socialfooter_item_icon}"></img>
<div class="{local_res.css.socialfooter_item_text}">
<div ui:field="gitHubTopText" class="{local_res.css.socialfooter_item_text_top}">
</div>
<div class="{local_res.css.socialfooter_item_text_bottom}">GitHub</div>
</div>
</a>
</div>
<div ui:field="instagramItem" class="{local_res.css.socialfooter_item}">
<a ui:field="instagramLink" target="_blank" class="{local_res.css.socialfooter_item_contentwrapper}">
<img src="{shr.instagramInverse.getSafeUri}" class="{local_res.css.socialfooter_item_icon}"></img>
<div class="{local_res.css.socialfooter_item_text}">
@@ -42,6 +53,7 @@
</a>
</div>
</div>
</div>
</div>
</g:HTMLPanel>
</ui:UiBinder>
@@ -15,12 +15,10 @@ public interface SocialFooterResources extends ClientBundle {
String socialfooter_heading();
String socialfooter_item();
String socialfooter_item_contentwrapper();
String socialfooter_itemleft();
String socialfooter_itemcenter();
String socialfooter_itemright();
String socialfooter_item_icon();
String socialfooter_item_text();
String socialfooter_item_text_top();
String socialfooter_item_text_bottom();
String socialfooter_items();
}
}
@@ -145,4 +145,8 @@ public interface SharedHomeResources extends CommonIcons {
@Source("plus.svg")
@MimeType("image/svg+xml")
DataResource plus();
@Source("github-white.png")
ImageResource githubWhite();
}
@@ -212,6 +212,7 @@ public class RaceDetailPanel extends SimplePanel {
case RRS26_3MIN:
case SWC:
case SWC_4MIN:
case SWC_5MIN:
LineStartInfoDTO rrsInfo = (LineStartInfoDTO) data.raceInfo.startProcedureDTO;
if (rrsInfo != null) {
if (rrsInfo.startModeFlag != null) {
@@ -2554,4 +2554,5 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages,
String unlock();
String ipsLockedForUserCreationAbuse();
String unableToLoadIpsBlockedForUserCreationAbuse();
String sourceCode();
}
@@ -2590,3 +2590,4 @@ filterIpAddresses=Filter IP Addresses
unlock=Unlock
ipsLockedForUserCreationAbuse=IPs Locked for User Creation Abuse
unableToLoadIpsBlockedForUserCreationAbuse=Unable to load IPs Blocked for User Creation Abuse
sourceCode=Source Code
@@ -2584,3 +2584,4 @@ filterIpAddresses=IP-Adressen filtern
unlock=Entsperren
ipsLockedForUserCreationAbuse=Wegen Missbrauchs bei der Benutzererstellung gesperrte IPs
unableToLoadIpsBlockedForUserCreationAbuse=Wegen Missbrauchs der Benutzererstellung blockierte IPs können nicht geladen werden
sourceCode=Quellcode
@@ -84,8 +84,8 @@ public class EmbeddedMapAndWindChartEntryPoint extends AbstractSailingReadEntryP
@Override
protected void doOnModuleLoad() {
final PaywallResolver paywallResolver = new PaywallResolverImpl(getUserService(), getSubscriptionServiceFactory());
super.doOnModuleLoad();
final PaywallResolver paywallResolver = new PaywallResolverImpl(getUserService(), getSubscriptionServiceFactory());
// read mandatory parameters
contextDefinition = SERIALIZER.deserializeFromCurrentLocation(new EmbeddedMapAndWindChartContextDefinition());
if (!contextDefinition.isValidContext()) {
@@ -1167,6 +1167,7 @@ public class SailingServiceImpl extends ResultCachingProxiedRemoteServiceServlet
case RRS26_3MIN:
case SWC:
case SWC_4MIN:
case SWC_5MIN:
ConfigurableStartModeFlagRacingProcedure linestart = state.getTypedReadonlyRacingProcedure();
info = new LineStartInfoDTO(linestart.getStartModeFlag());
case UNKNOWN:
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -1,9 +1,10 @@
sailingAnalyticsReadMore=Mehr Lesen
sailingAnalyticsSailing=SAP Sailing
sportsOn=SAP Sports bei
followSports=SAP Sports folgen
followSports=Folgen Sie Uns auf
welcomeToSailingAnalytics=Willkommen bei SAP Sailing Analytics
welcomeToSailingAnalyticsBody=SAP bringt Segelfans näher and das Geschen auf dem Wasser als je zuvor.\
\ Das Live Leaderbord mit Ranglisten in Echtzeit, Bootsgeschwindigkeit und Abstand zum Führenden ermöglicht ein besseres Fanerlebnis. Mit SAP alle Rennen live schauen und kein Überholmaneuver mehr verpassen.
\ Das ist die einfache Art Segeln jedrzeit live zu verfolgen.
inSailingContent=Der Segelsport bietet SAP eine perfekte Plattform, um seine Lösungen zu demonstrieren und dem Sport zu neuen Bestleistungen zu verhelfen. SAPs Unterstützung hat das Segelerlebnis vollkommen verwandelt. Tools von SAP:<ul><li>helfen Seglern, ihre Leistung zu analysieren und ihre Strategie zu optimieren</li><li>bringen Fans näher an das Geschehen heran</li><li>stellen Informationen und Einblicke für die Medien bereit, um eine besser informierte Berichterstattung zu ermöglichen</li></ul>SAP ist bereits seit vielen Jahren mit dem Segelsport verbunden und hat ein Portfolio zahlreicher Teams und Regatten aufgebaut, darunter:<ul><li>Technischer Partner der Europäischen Segelligen</li><li>Titelsponsor des SAP Extreme Sailing Teams</li><li>Offizieller technischer Partner der Extreme Sailing Series</li><li>Partner der weltweit größten Regatta; Kieler Woche</li><li>Technischer Partner der Sailing Champions League</li><li>Titelsponsor der SAP 5O5 World Championships</li><li>Offizieller Technologiepartner von WORLD SAILING</li></ul>
followGitHub=Sailing Analytics auf
@@ -1,9 +1,10 @@
sailingAnalyticsReadMore=Read More
sailingAnalyticsSailing=SAP Sailing
sportsOn=SAP Sports on
followSports=Follow SAP Sports
followSports=Follow Us on
welcomeToSailingAnalytics=Welcome to SAP Sailing Analytics
welcomeToSailingAnalyticsBody=SAP brings sailing fans closer to the on-water action than ever before.\
\ The live-leaderboard enhances the fan experience through real-time rankings, boat speeds and winning margins. Follow every race and never miss a passing maneuver with SAP.\
\ This is the simple way to watch live sail racing from wherever you are.
inSailingContent =Sailing provides the perfect platform for SAP to showcase solutions and help the sport run like never before. SAP\u2019s involvement in the sport has transformed the sailing experience by providing tools, which:<ul><li>Help sailors analyze performance and optimize strategy</li><li>Bring fans closer to the action</li><li>Provide the media with information and insights to deliver a greater informed commentary</li></ul>SAP has a longstanding involvement with sailing and has established a portfolio spanning across teams and regattas, including:<ul><li>Technical Partner of the European Sailing Leagues</li><li>Partner of the world\u2019s largest regatta, Kieler Woche (Kiel Week)</li><li>Technical Partner of the Sailing Champions League</li><li>Title sponsor of the SAP 5O5 World Championships</li><li>Official Technology Partner of WORLD SAILING</li></ul>
inSailingContent=Sailing provides the perfect platform for SAP to showcase solutions and help the sport run like never before. SAP\u2019s involvement in the sport has transformed the sailing experience by providing tools, which:<ul><li>Help sailors analyze performance and optimize strategy</li><li>Bring fans closer to the action</li><li>Provide the media with information and insights to deliver a greater informed commentary</li></ul>SAP has a longstanding involvement with sailing and has established a portfolio spanning across teams and regattas, including:<ul><li>Technical Partner of the European Sailing Leagues</li><li>Partner of the world\u2019s largest regatta, Kieler Woche (Kiel Week)</li><li>Technical Partner of the Sailing Champions League</li><li>Title sponsor of the SAP 5O5 World Championships</li><li>Official Technology Partner of WORLD SAILING</li></ul>
followGitHub=Sailing Analytics on
@@ -182,4 +182,12 @@ public class SAPBrandingConfiguration implements BrandingConfiguration {
public String getInSailingContent(Optional<String> locale) {
return sailingServerStringMessages.get(locale.map(l -> Locale.forLanguageTag(l)).orElse(Locale.ENGLISH), "inSailingContent");
}
@Override
public String getFollowGitHub(Optional<String> locale) {
return sailingServerStringMessages.get(locale.map(l -> Locale.forLanguageTag(l)).orElse(Locale.ENGLISH), "followGitHub");
}
@Override
public String getGitHubLink() {
return "https://github.com/SAP/sailing-analytics";
}
}
@@ -136,6 +136,10 @@ public interface BrandingConfigurationService {
MORE_LOGIN_INFORMATION_SETTINGS_URL("moreLoginInformationSettingsURL"),
MORE_LOGIN_INFORMATION_NOTIFICATIONS_URL("moreLoginInformationNotificationsURL"),
FOLLOW_GITHUB("followGitHub"),
GITHUB_LINK("gitHubLink"),
/**
@@ -143,6 +143,8 @@ public class BrandingConfigurationServiceImpl implements BrandingConfigurationSe
map.put(BrandingConfigurationProperty.SAILING_ANALYTICS_SAILING, brandingConfiguration == null ? "" : brandingConfiguration.getSailingAnalyticsSailing(locale));
map.put(BrandingConfigurationProperty.WELCOME_TO_SAILING_ANALYTICS, brandingConfiguration == null ? "" : brandingConfiguration.getWelcomeToSailingAnalytics(locale));
map.put(BrandingConfigurationProperty.WELCOME_TO_SAILING_ANALYTICS_BODY, brandingConfiguration == null ? "" : brandingConfiguration.getWelcomeToSailingAnalyticsBody(locale));
map.put(BrandingConfigurationProperty.FOLLOW_GITHUB, brandingConfiguration == null ? "" : brandingConfiguration.getFollowGitHub(locale));
map.put(BrandingConfigurationProperty.GITHUB_LINK, brandingConfiguration == null ? "" : brandingConfiguration.getGitHubLink());
map.put(BrandingConfigurationProperty.DEBRANDING_ACTIVE_JSP_PROPERTY_NAME, !isBrandingActive());
map.put(BrandingConfigurationProperty.BRANDING_ACTIVE_JSP_PROPERTY_NAME, isBrandingActive());
map.put(BrandingConfigurationProperty.DASH_WHITELABELED_JSP_PROPERTY_NAME, whitelabeled);
@@ -245,4 +245,19 @@ public interface BrandingConfiguration {
* @return HTML or plain text. Empty to hide.
*/
String getInSailingContent(Optional<String> locale);
/**
* Localized footer label inviting users to follow the brand’s GitHub Source Code.
*
* @param locale see “Locale Parameter Conventions”.
* @return localized text. Empty to hide.
*/
String getFollowGitHub(Optional<String> locale);
/**
* Brand’s GitHub URL.
*
* @return absolute URL. Empty to hide the icon/link.
*/
String getGitHubLink();
}
@@ -121,4 +121,10 @@ public class ClientConfigurationContextDataJSO extends JavaScriptObject {
public final native String getMoreLoginInformationSimulatorURL() /*-{
return this.moreLoginInformationSimulatorURL;
}-*/;
public final native String getFollowGitHub() /*-{
return this.followGitHub;
}-*/;
public final native String getGitHubLink() /*-{
return this.gitHubLink;
}-*/;
}
@@ -96,6 +96,8 @@ public class ClientConfiguration implements BrandingConfiguration {
private String moreLoginInformationSailorProfilesURL;
private String moreLoginInformationSimulatorURL;
private String inSailingContent;
private String followGitHub;
private String gitHubLink;
public ClientConfiguration() {
try {
@@ -132,6 +134,9 @@ public class ClientConfiguration implements BrandingConfiguration {
moreLoginInformationSettingsURL = dataJso.getMoreLoginInformationSettingsURL();
moreLoginInformationSailorProfilesURL = dataJso.getMoreLoginInformationSailorProfilesURL();
moreLoginInformationSimulatorURL = dataJso.getMoreLoginInformationSimulatorURL();
gitHubLink = dataJso.getGitHubLink();
followGitHub = dataJso.getFollowGitHub();
} catch (RuntimeException e) {
GWT.log("no branding information found.");
@@ -267,4 +272,12 @@ public class ClientConfiguration implements BrandingConfiguration {
public String getInSailingContent(Optional<String> locale) {
return inSailingContent;
}
public String getFollowGitHub(Optional<String> locale) {
return followGitHub;
}
public String getGitHubLink() {
return gitHubLink;
}
}
@@ -11,7 +11,7 @@ import java.util.regex.Pattern;
import com.sap.sse.i18n.ResourceBundleStringMessages;
public class ResourceBundleStringMessagesImpl implements ResourceBundleStringMessages {
private static final Locale DEFAULT_LOCALE = Locale.ENGLISH;
private final String resourceBaseName;
private final ClassLoader resourceClassLoader;
private String encoding;
@@ -36,7 +36,14 @@ public class ResourceBundleStringMessagesImpl implements ResourceBundleStringMes
@Override
public String get(Locale locale, String messageKey, String... parameters) {
final String message = getResourceBundle(locale).getString(messageKey);
final ResourceBundle bundle = getResourceBundle(locale) == null ? getResourceBundle(DEFAULT_LOCALE)
: getResourceBundle(locale);
String message;
try {
message = bundle.getString(messageKey);
} catch (MissingResourceException e) {
message = getResourceBundle(DEFAULT_LOCALE).getString(messageKey);
}
return get(message, parameters);
}
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: TracTrac Client module
Bundle-SymbolicName: com.tractrac.clientmodule
Bundle-Version: 5.0.2
Bundle-Version: 5.0.3
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Bundle-ClassPath: .,
lib/TracAPI.jar
+17
View File
@@ -15,6 +15,23 @@ It contains also some files:
- test.sh -> script that compiles the code in the src folder, creates the test.jar library and execute the code of the example.
- Manifest.txt -> manifest used to create the test.jar file
********************************************
TracAPI 5.0.3
********************************************
This is a final version. It keeps the backward compatibility.
Release date: 15/12/2025
1) Features
- Adding two new methods to the IPosition interface:
1) getDTL: the distance to the start line in centimeters. It will be NULL until a final distance
is captured at the start.
2) isClear: before the start isClear will = TRUE for all boats. For boats that are clear of the line
at go this will remain TRUE for the entire race. For OCS boats this will = FALSE until they clear
the line, at which point it will switch to TRUE
(Requested by Chris Terkelsen, 12/12/2025)
********************************************
TracAPI 5.0.2
********************************************
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>All Classes and Interfaces (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>All Classes and Interfaces (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="class index">
<meta name="generator" content="javadoc/AllClassesIndexWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>All Packages (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>All Packages (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="package index">
<meta name="generator" content="javadoc/AllPackagesIndexWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IIdentifiable (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IIdentifiable (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api, interface: IIdentifiable">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>INamed (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>INamed (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api, interface: INamed">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>ModelLocator (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>ModelLocator (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api, class: ModelLocator">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>AbstractAttachable (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>AbstractAttachable (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.attachment, class: AbstractAttachable">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IAttachable (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IAttachable (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.attachment, interface: IAttachable">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IAttachmentKey (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IAttachmentKey (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.attachment, interface: IAttachmentKey">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IAttachmentManager (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IAttachmentManager (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.attachment, interface: IAttachmentManager">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Class com.tractrac.model.lib.api.attachment.AbstractAttachable (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Class com.tractrac.model.lib.api.attachment.AbstractAttachable (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.attachment, class: AbstractAttachable">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.attachment.IAttachable (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.attachment.IAttachable (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.attachment, interface: IAttachable">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.attachment.IAttachmentKey (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.attachment.IAttachmentKey (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.attachment, interface: IAttachmentKey">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.attachment.IAttachmentManager (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.attachment.IAttachmentManager (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.attachment, interface: IAttachmentManager">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>com.tractrac.model.lib.api.attachment (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>com.tractrac.model.lib.api.attachment (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.attachment">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>com.tractrac.model.lib.api.attachment Class Hierarchy (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>com.tractrac.model.lib.api.attachment Class Hierarchy (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="tree: package: com.tractrac.model.lib.api.attachment">
<meta name="generator" content="javadoc/PackageTreeWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Package com.tractrac.model.lib.api.attachment (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Package com.tractrac.model.lib.api.attachment (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.attachment">
<meta name="generator" content="javadoc/PackageUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.IIdentifiable (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.IIdentifiable (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api, interface: IIdentifiable">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.INamed (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.INamed (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api, interface: INamed">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Class com.tractrac.model.lib.api.ModelLocator (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Class com.tractrac.model.lib.api.ModelLocator (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api, class: ModelLocator">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IControlPassing (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IControlPassing (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.data, interface: IControlPassing">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IControlPassings (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IControlPassings (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.data, interface: IControlPassings">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IMessageData (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IMessageData (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.data, interface: IMessageData">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IPosition (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IPosition (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.data, interface: IPosition">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -155,27 +155,37 @@ extends <a href="../spatial/IGeoCoordinate.html" title="interface in com.tractra
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the direction of the carrier at the time of the position.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getHACC()" class="member-name-link">getHACC</a>()</code></div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getDTL()" class="member-name-link">getDTL</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">The distance to the start line in centimeters.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getHACC()" class="member-name-link">getHACC</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Horizontal Accuracy (HACC) represents the error of measured position compared
to the absolute position of the receiver projected in the horizontal plane.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html" title="class or interface in java.lang" class="external-link">Byte</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getRTKStatus()" class="member-name-link">getRTKStatus</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html" title="class or interface in java.lang" class="external-link">Byte</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getRTKStatus()" class="member-name-link">getRTKStatus</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Gets the status of the RTK connection.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>double</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getSpeed()" class="member-name-link">getSpeed</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>double</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getSpeed()" class="member-name-link">getSpeed</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the speed of the carrier at the time of the position.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getTrueHeading()" class="member-name-link">getTrueHeading</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#getTrueHeading()" class="member-name-link">getTrueHeading</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Returns the true heading at the time of the position.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isClear()" class="member-name-link">isClear</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Before the start isClear will = TRUE for all boats.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#isGPSTiming()" class="member-name-link">isGPSTiming</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
@@ -307,6 +317,33 @@ extends <a href="../spatial/IGeoCoordinate.html" title="interface in com.tractra
</section>
</li>
<li>
<section class="detail" id="getDTL()">
<h3>getDTL</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a></span>&nbsp;<span class="element-name">getDTL</span>()</div>
<div class="block">The distance to the start line in centimeters. IT will be NULL until a final distance
is captured at the start.
It will be null if this feature has not been enabled for the race.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the distance to the start line in centimeters.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isClear()">
<h3>isClear</h3>
<div class="member-signature"><span class="return-type"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a></span>&nbsp;<span class="element-name">isClear</span>()</div>
<div class="block">Before the start isClear will = TRUE for all boats. For boats that are clear of the line at
go this will remain TRUE for the entire race. For OCS boats this will = FALSE until they
clear the line, at which point it will switch to TRUE.
It will be null if this feature has not been enabled for the race.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>true if the boat is clear of the line</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setDirection(double)">
<h3>setDirection</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">setDirection</span><wbr><span class="parameters">(double&nbsp;direction)</span></div>
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IPositionFactory (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IPositionFactory (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.data, interface: IPositionFactory">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -134,7 +134,7 @@ extends com.tractrac.common.lib.api.service.IServiceProvider</span></div>
send by Internet.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IPosition.html" title="interface in com.tractrac.model.lib.api.data">IPosition</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#createCompressedPosition(double,double,double,double,double,java.lang.Double,java.lang.Double,java.lang.Byte,java.lang.Integer)" class="member-name-link">createCompressedPosition</a><wbr>(double&nbsp;lon,
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#createCompressedPosition(double,double,double,double,double,java.lang.Double,java.lang.Double,java.lang.Byte,java.lang.Integer,java.lang.Double,java.lang.Boolean)" class="member-name-link">createCompressedPosition</a><wbr>(double&nbsp;lon,
double&nbsp;lat,
double&nbsp;height,
double&nbsp;speed,
@@ -142,7 +142,9 @@ extends com.tractrac.common.lib.api.service.IServiceProvider</span></div>
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;trueHeading,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;m,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html" title="class or interface in java.lang" class="external-link">Byte</a>&nbsp;rtkStatus,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&nbsp;hacc)</code></div>
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&nbsp;hacc,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;dtl,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a>&nbsp;isClear)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Create a compressed position that is a position that can be serialized and
send by Internet.</div>
@@ -185,7 +187,7 @@ extends com.tractrac.common.lib.api.service.IServiceProvider</span></div>
<div class="block">Create a position</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="IPosition.html" title="interface in com.tractrac.model.lib.api.data">IPosition</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#createPosition(double,double,double,double,double,double,long,boolean,java.lang.Double,java.lang.Byte,java.lang.Integer)" class="member-name-link">createPosition</a><wbr>(double&nbsp;lon,
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#createPosition(double,double,double,double,double,double,long,boolean,java.lang.Double,java.lang.Byte,java.lang.Integer,java.lang.Double,java.lang.Boolean)" class="member-name-link">createPosition</a><wbr>(double&nbsp;lon,
double&nbsp;lat,
double&nbsp;height,
double&nbsp;speed,
@@ -195,7 +197,9 @@ extends com.tractrac.common.lib.api.service.IServiceProvider</span></div>
boolean&nbsp;isGPSTiming,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;trueHeading,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html" title="class or interface in java.lang" class="external-link">Byte</a>&nbsp;rtkStatus,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&nbsp;hacc)</code></div>
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&nbsp;hacc,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;dtl,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a>&nbsp;isClear)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Create a position</div>
</div>
@@ -239,7 +243,7 @@ extends com.tractrac.common.lib.api.service.IServiceProvider</span></div>
</section>
</li>
<li>
<section class="detail" id="createPosition(double,double,double,double,double,double,long,boolean,java.lang.Double,java.lang.Byte,java.lang.Integer)">
<section class="detail" id="createPosition(double,double,double,double,double,double,long,boolean,java.lang.Double,java.lang.Byte,java.lang.Integer,java.lang.Double,java.lang.Boolean)">
<h3>createPosition</h3>
<div class="member-signature"><span class="return-type"><a href="IPosition.html" title="interface in com.tractrac.model.lib.api.data">IPosition</a></span>&nbsp;<span class="element-name">createPosition</span><wbr><span class="parameters">(double&nbsp;lon,
double&nbsp;lat,
@@ -251,7 +255,9 @@ extends com.tractrac.common.lib.api.service.IServiceProvider</span></div>
boolean&nbsp;isGPSTiming,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;trueHeading,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html" title="class or interface in java.lang" class="external-link">Byte</a>&nbsp;rtkStatus,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&nbsp;hacc)</span></div>
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&nbsp;hacc,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;dtl,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a>&nbsp;isClear)</span></div>
<div class="block">Create a position</div>
<dl class="notes">
<dt>Parameters:</dt>
@@ -266,6 +272,8 @@ extends com.tractrac.common.lib.api.service.IServiceProvider</span></div>
<dd><code>trueHeading</code> - the true heading</dd>
<dd><code>rtkStatus</code> - the rtk status</dd>
<dd><code>hacc</code> - the hacc</dd>
<dd><code>dtl</code> - the distance to line in centimeters</dd>
<dd><code>isClear</code> - if the boat is clear of the line</dd>
<dt>Returns:</dt>
<dd>a position</dd>
</dl>
@@ -310,7 +318,7 @@ extends com.tractrac.common.lib.api.service.IServiceProvider</span></div>
</section>
</li>
<li>
<section class="detail" id="createCompressedPosition(double,double,double,double,double,java.lang.Double,java.lang.Double,java.lang.Byte,java.lang.Integer)">
<section class="detail" id="createCompressedPosition(double,double,double,double,double,java.lang.Double,java.lang.Double,java.lang.Byte,java.lang.Integer,java.lang.Double,java.lang.Boolean)">
<h3>createCompressedPosition</h3>
<div class="member-signature"><span class="return-type"><a href="IPosition.html" title="interface in com.tractrac.model.lib.api.data">IPosition</a></span>&nbsp;<span class="element-name">createCompressedPosition</span><wbr><span class="parameters">(double&nbsp;lon,
double&nbsp;lat,
@@ -320,7 +328,9 @@ extends com.tractrac.common.lib.api.service.IServiceProvider</span></div>
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;trueHeading,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;m,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html" title="class or interface in java.lang" class="external-link">Byte</a>&nbsp;rtkStatus,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&nbsp;hacc)</span></div>
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&nbsp;hacc,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;dtl,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a>&nbsp;isClear)</span></div>
<div class="block">Create a compressed position that is a position that can be serialized and
send by Internet. This position doesn't contain temporal information.</div>
<dl class="notes">
@@ -334,6 +344,8 @@ extends com.tractrac.common.lib.api.service.IServiceProvider</span></div>
<dd><code>m</code> - the value of the m coordinate (the offset)</dd>
<dd><code>rtkStatus</code> - the rtk status</dd>
<dd><code>hacc</code> - the hacc</dd>
<dd><code>dtl</code> - the distance to line in centimeters</dd>
<dd><code>isClear</code> - if the boat is clear of the line</dd>
<dt>Returns:</dt>
<dd>a compressed position</dd>
</dl>
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IPositionOffset (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IPositionOffset (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.data, interface: IPositionOffset">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IPositionSnapped (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IPositionSnapped (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.data, interface: IPositionSnapped">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -125,7 +125,7 @@ extends <a href="IPosition.html" title="interface in com.tractrac.model.lib.api.
<code><a href="../spatial/IGeoCoordinate.html#getHeight()">getHeight</a>, <a href="../spatial/IGeoCoordinate.html#getLatitude()">getLatitude</a>, <a href="../spatial/IGeoCoordinate.html#getLongitude()">getLongitude</a>, <a href="../spatial/IGeoCoordinate.html#getM()">getM</a>, <a href="../spatial/IGeoCoordinate.html#setHeight(double)">setHeight</a>, <a href="../spatial/IGeoCoordinate.html#setLatitude(double)">setLatitude</a>, <a href="../spatial/IGeoCoordinate.html#setLongitude(double)">setLongitude</a>, <a href="../spatial/IGeoCoordinate.html#setM(double)">setM</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-com.tractrac.model.lib.api.data.IPosition">Methods inherited from interface&nbsp;com.tractrac.model.lib.api.data.<a href="IPosition.html" title="interface in com.tractrac.model.lib.api.data">IPosition</a></h3>
<code><a href="IPosition.html#after(long)">after</a>, <a href="IPosition.html#after(com.tractrac.model.lib.api.data.IPosition)">after</a>, <a href="IPosition.html#before(long)">before</a>, <a href="IPosition.html#before(com.tractrac.model.lib.api.data.IPosition)">before</a>, <a href="IPosition.html#getDirection()">getDirection</a>, <a href="IPosition.html#getHACC()">getHACC</a>, <a href="IPosition.html#getRTKStatus()">getRTKStatus</a>, <a href="IPosition.html#getSpeed()">getSpeed</a>, <a href="IPosition.html#getTrueHeading()">getTrueHeading</a>, <a href="IPosition.html#isGPSTiming()">isGPSTiming</a>, <a href="IPosition.html#setDirection(double)">setDirection</a>, <a href="IPosition.html#setSpeed(double)">setSpeed</a></code></div>
<code><a href="IPosition.html#after(long)">after</a>, <a href="IPosition.html#after(com.tractrac.model.lib.api.data.IPosition)">after</a>, <a href="IPosition.html#before(long)">before</a>, <a href="IPosition.html#before(com.tractrac.model.lib.api.data.IPosition)">before</a>, <a href="IPosition.html#getDirection()">getDirection</a>, <a href="IPosition.html#getDTL()">getDTL</a>, <a href="IPosition.html#getHACC()">getHACC</a>, <a href="IPosition.html#getRTKStatus()">getRTKStatus</a>, <a href="IPosition.html#getSpeed()">getSpeed</a>, <a href="IPosition.html#getTrueHeading()">getTrueHeading</a>, <a href="IPosition.html#isClear()">isClear</a>, <a href="IPosition.html#isGPSTiming()">isGPSTiming</a>, <a href="IPosition.html#setDirection(double)">setDirection</a>, <a href="IPosition.html#setSpeed(double)">setSpeed</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-com.tractrac.model.lib.api.data.IPositionOffset">Methods inherited from interface&nbsp;com.tractrac.model.lib.api.data.<a href="IPositionOffset.html" title="interface in com.tractrac.model.lib.api.data">IPositionOffset</a></h3>
<code><a href="IPositionOffset.html#getOffset()">getOffset</a></code></div>
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IStartStopData (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IStartStopData (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.data, interface: IStartStopData">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>ITimeData (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>ITimeData (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.data, interface: ITimeData">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IControlPassing (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IControlPassing (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.data, interface: IControlPassing">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IControlPassings (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IControlPassings (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.data, interface: IControlPassings">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IMessageData (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IMessageData (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.data, interface: IMessageData">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IPosition (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IPosition (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.data, interface: IPosition">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
@@ -101,7 +101,7 @@ loadScripts(document, 'script');</script>
send by Internet.</div>
</div>
<div class="col-first odd-row-color"><code><a href="../IPosition.html" title="interface in com.tractrac.model.lib.api.data">IPosition</a></code></div>
<div class="col-second odd-row-color"><span class="type-name-label">IPositionFactory.</span><code><a href="../IPositionFactory.html#createCompressedPosition(double,double,double,double,double,java.lang.Double,java.lang.Double,java.lang.Byte,java.lang.Integer)" class="member-name-link">createCompressedPosition</a><wbr>(double&nbsp;lon,
<div class="col-second odd-row-color"><span class="type-name-label">IPositionFactory.</span><code><a href="../IPositionFactory.html#createCompressedPosition(double,double,double,double,double,java.lang.Double,java.lang.Double,java.lang.Byte,java.lang.Integer,java.lang.Double,java.lang.Boolean)" class="member-name-link">createCompressedPosition</a><wbr>(double&nbsp;lon,
double&nbsp;lat,
double&nbsp;height,
double&nbsp;speed,
@@ -109,7 +109,9 @@ loadScripts(document, 'script');</script>
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;trueHeading,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;m,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html" title="class or interface in java.lang" class="external-link">Byte</a>&nbsp;rtkStatus,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&nbsp;hacc)</code></div>
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&nbsp;hacc,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;dtl,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a>&nbsp;isClear)</code></div>
<div class="col-last odd-row-color">
<div class="block">Create a compressed position that is a position that can be serialized and
send by Internet.</div>
@@ -138,7 +140,7 @@ loadScripts(document, 'script');</script>
<div class="block">Create a position</div>
</div>
<div class="col-first odd-row-color"><code><a href="../IPosition.html" title="interface in com.tractrac.model.lib.api.data">IPosition</a></code></div>
<div class="col-second odd-row-color"><span class="type-name-label">IPositionFactory.</span><code><a href="../IPositionFactory.html#createPosition(double,double,double,double,double,double,long,boolean,java.lang.Double,java.lang.Byte,java.lang.Integer)" class="member-name-link">createPosition</a><wbr>(double&nbsp;lon,
<div class="col-second odd-row-color"><span class="type-name-label">IPositionFactory.</span><code><a href="../IPositionFactory.html#createPosition(double,double,double,double,double,double,long,boolean,java.lang.Double,java.lang.Byte,java.lang.Integer,java.lang.Double,java.lang.Boolean)" class="member-name-link">createPosition</a><wbr>(double&nbsp;lon,
double&nbsp;lat,
double&nbsp;height,
double&nbsp;speed,
@@ -148,7 +150,9 @@ loadScripts(document, 'script');</script>
boolean&nbsp;isGPSTiming,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;trueHeading,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html" title="class or interface in java.lang" class="external-link">Byte</a>&nbsp;rtkStatus,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&nbsp;hacc)</code></div>
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html" title="class or interface in java.lang" class="external-link">Integer</a>&nbsp;hacc,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html" title="class or interface in java.lang" class="external-link">Double</a>&nbsp;dtl,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html" title="class or interface in java.lang" class="external-link">Boolean</a>&nbsp;isClear)</code></div>
<div class="col-last odd-row-color">
<div class="block">Create a position</div>
</div>
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IPositionFactory (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IPositionFactory (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.data, interface: IPositionFactory">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IPositionOffset (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IPositionOffset (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.data, interface: IPositionOffset">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IPositionSnapped (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IPositionSnapped (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.data, interface: IPositionSnapped">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IStartStopData (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.IStartStopData (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.data, interface: IStartStopData">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.ITimeData (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Interface com.tractrac.model.lib.api.data.ITimeData (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.data, interface: ITimeData">
<meta name="generator" content="javadoc/ClassUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>com.tractrac.model.lib.api.data (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>com.tractrac.model.lib.api.data (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.data">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>com.tractrac.model.lib.api.data Class Hierarchy (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>com.tractrac.model.lib.api.data Class Hierarchy (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="tree: package: com.tractrac.model.lib.api.data">
<meta name="generator" content="javadoc/PackageTreeWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>Uses of Package com.tractrac.model.lib.api.data (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>Uses of Package com.tractrac.model.lib.api.data (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="use: package: com.tractrac.model.lib.api.data">
<meta name="generator" content="javadoc/PackageUseWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>CreateModelException (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>CreateModelException (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.event, class: CreateModelException">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>DataSource (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>DataSource (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.event, enum: DataSource">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>EventType (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>EventType (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.event, enum: EventType">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>ICompetitor (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>ICompetitor (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.event, interface: ICompetitor">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>ICompetitorClass (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>ICompetitorClass (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.event, interface: ICompetitorClass">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IEvent (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IEvent (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.event, interface: IEvent">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IEventFactory (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IEventFactory (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.event, interface: IEventFactory">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
@@ -1,11 +1,11 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (21) on Thu Oct 23 05:45:34 UTC 2025 -->
<title>IRace (Subscription - Applications - TracAPI 5.0.0 API)</title>
<!-- Generated by javadoc (21) on Thu Dec 18 06:23:01 UTC 2025 -->
<title>IRace (Subscription - Applications - TracAPI 5.0.3 API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2025-10-23">
<meta name="dc.created" content="2025-12-18">
<meta name="description" content="declaration: package: com.tractrac.model.lib.api.event, interface: IRace">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
Loaded 100 of 299 files, more files were not shown because too many files have changed in this diff. Show more