mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-10 22:30:56 +00:00
looking up and registering BoatClass objects with name, display name and alternative names from BoatClassMasterdata
This commit is contained in:
1 parent
e2cc3301cc
commit
3ae92c7afe
2 files changed
+12
-6
No files matched your search
+2
-2
@@ -103,8 +103,8 @@ public enum BoatClassMasterdata {
|
||||
return null;
|
||||
}
|
||||
|
||||
private static String unifyBoatClassName(String boatClassName) {
|
||||
return boatClassName.toUpperCase().replaceAll("\\s+","");
|
||||
public static String unifyBoatClassName(String boatClassName) {
|
||||
return boatClassName == null ? null : boatClassName.toUpperCase().replaceAll("\\s+","");
|
||||
}
|
||||
|
||||
public Distance getHullLength() {
|
||||
|
||||
+10
-4
@@ -270,18 +270,24 @@ public class SharedDomainFactoryImpl implements SharedDomainFactory {
|
||||
|
||||
@Override
|
||||
public BoatClass getOrCreateBoatClass(String name, boolean typicallyStartsUpwind) {
|
||||
final String unifiedBoatClassName = BoatClassMasterdata.unifyBoatClassName(name);
|
||||
synchronized (boatClassCache) {
|
||||
BoatClass result = boatClassCache.get(name);
|
||||
if (result == null && name != null) {
|
||||
BoatClass result = boatClassCache.get(unifiedBoatClassName);
|
||||
if (result == null && unifiedBoatClassName != null) {
|
||||
BoatClassMasterdata boatClassMasterdata = BoatClassMasterdata.resolveBoatClass(name);
|
||||
if (boatClassMasterdata != null) {
|
||||
result = new BoatClassImpl(name, boatClassMasterdata);
|
||||
boatClassCache.put(name, result);
|
||||
boatClassCache.put(unifiedBoatClassName, result);
|
||||
boatClassCache.put(boatClassMasterdata.getDisplayName(), result);
|
||||
for (String alternativeName : boatClassMasterdata.getAlternativeNames()) {
|
||||
boatClassCache.put(alternativeName, result);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (result == null) {
|
||||
result = new BoatClassImpl(name, typicallyStartsUpwind);
|
||||
boatClassCache.put(name, result);
|
||||
result = new BoatClassImpl(unifiedBoatClassName, typicallyStartsUpwind);
|
||||
boatClassCache.put(unifiedBoatClassName, result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user