Merge branch 'release/5.19.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / CdmPreferenceCache.java
index a045583e8b9aa9821c8aa3de7a0a1e90c3e0d67a..8ad35eb7bd1be1bf2b0b7b790caf4fb6309bf149 100755 (executable)
@@ -9,6 +9,7 @@
 package eu.etaxonomy.taxeditor.preference;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -31,17 +32,14 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 /**
  * @author k.luther
  * @since 27.04.2018
- *
  */
 public class CdmPreferenceCache {
-    Map<String,List<CdmPreference>> preferenceCache = new HashMap();
+    Map<String,List<CdmPreference>> preferenceCache = new HashMap<>();
 
     private static CdmPreferenceCache instance;
 
     private final static Logger logger = Logger.getLogger(CdmPreferenceCache.class);
 
-
-
     public static CdmPreferenceCache instance(){
         if(instance == null){
             instance = new CdmPreferenceCache();
@@ -94,12 +92,10 @@ public class CdmPreferenceCache {
             cachedPreferences.remove(prefToRemove);
             cachedPreferences.add(pref);
         }else{
-            List<CdmPreference> prefs = new ArrayList();
+            List<CdmPreference> prefs = new ArrayList<>();
             prefs.add(pref);
             preferenceCache.put(pref.getPredicate(), prefs);
         }
-
-
     }
 
     public boolean remove(CdmPreference pref){
@@ -114,7 +110,6 @@ public class CdmPreferenceCache {
             cachedPreferences.remove(prefToRemove);
         }
         return true;
-
     }
 
     public void getAllTaxEditorDBPreferences(){
@@ -130,10 +125,10 @@ public class CdmPreferenceCache {
         PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableDistributionStatus);
 
         if (get(key) != null){
-            if (!PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.AvailableDistributionStatus.getKey())) || !get(key).isAllowOverride()){
+            if (!PreferencesUtil.getOverrideForPreference(PreferencePredicate.AvailableDistributionStatus.getKey()) || !get(key).isAllowOverride()){
                 //get terms for the uuids... and add them to the termManager as preferred terms
                 ITermService termService = CdmStore.getService(ITermService.class);
-                List<UUID> uuidList = new ArrayList();
+                List<UUID> uuidList = new ArrayList<>();
                 if (get(key).getValue() != null){
                     String[] uuidArray =findBestMatching(key).getValue().split(";");
                     for (String uuidString:uuidArray){
@@ -145,21 +140,21 @@ public class CdmPreferenceCache {
                     }
                 }
 
-                List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
-                List<TermDto> dtos = new ArrayList<>();
-                for (DefinedTermBase term: definedTermBases){
-                    dtos.add(TermDto.fromTerm(term));
-                }
+                Collection<TermDto> dtos = termService.findByUUIDsAsDto(uuidList);
+//                List<TermDto> dtos = new ArrayList<>();
+//                for (DefinedTermBase<?> term: definedTermBases){
+//                    dtos.add(TermDto.fromTerm(term));
+//                }
                 CdmStore.getTermManager().setPreferredTermsByType(dtos, TermType.PresenceAbsenceTerm);
             }
         }
          key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableRanks);
 
         if (get(key) != null){
-            if (!PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.AvailableRanks.getKey())) || !get(key).isAllowOverride()){
+            if (!PreferencesUtil.getOverrideForPreference(PreferencePredicate.AvailableRanks.getKey()) || !get(key).isAllowOverride()){
                 //get terms for the uuids... and add them to the termManager as preferred terms
                 ITermService termService = CdmStore.getService(ITermService.class);
-                List<UUID> uuidList = new ArrayList();
+                List<UUID> uuidList = new ArrayList<>();
                 if (get(key).getValue() != null){
                     String[] uuidArray =findBestMatching(key).getValue().split(";");
                     for (String uuidString:uuidArray){
@@ -172,8 +167,8 @@ public class CdmPreferenceCache {
                 }
 
                 List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
-                List<TermDto> dtos = new ArrayList();
-                for (DefinedTermBase term: definedTermBases){
+                List<TermDto> dtos = new ArrayList<>();
+                for (DefinedTermBase<?> term: definedTermBases){
                     dtos.add(TermDto.fromTerm(term));
                 }
                 CdmStore.getTermManager().setPreferredTermsByType(dtos, TermType.Rank);
@@ -183,10 +178,10 @@ public class CdmPreferenceCache {
         key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableNomenclaturalStatus);
 
         if (get(key) != null){
-            if (!PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.AvailableNomenclaturalStatus.getKey())) || !get(key).isAllowOverride()){
+            if (!PreferencesUtil.getOverrideForPreference(PreferencePredicate.AvailableNomenclaturalStatus.getKey()) || !get(key).isAllowOverride()){
                 //get terms for the uuids... and add them to the termManager as preferred terms
                 ITermService termService = CdmStore.getService(ITermService.class);
-                List<UUID> uuidList = new ArrayList();
+                List<UUID> uuidList = new ArrayList<>();
                 if (get(key).getValue() != null){
                     String[] uuidArray =findBestMatching(key).getValue().split(";");
                     for (String uuidString:uuidArray){
@@ -199,8 +194,8 @@ public class CdmPreferenceCache {
                 }
 
                 List<DefinedTermBase> definedTermBases = termService.load(uuidList, null);
-                List<TermDto> dtos = new ArrayList();
-                for (DefinedTermBase term: definedTermBases){
+                List<TermDto> dtos = new ArrayList<>();
+                for (DefinedTermBase<?> term: definedTermBases){
                     dtos.add(TermDto.fromTerm(term));
                 }
                 CdmStore.getTermManager().setPreferredTermsByType(dtos, TermType.NomenclaturalStatusType);
@@ -208,15 +203,11 @@ public class CdmPreferenceCache {
         }
     }
 
-
-
     public CdmPreference findBestMatching(PrefKey key) {
-        List<CdmPreference> allPrefs = new ArrayList();
+        List<CdmPreference> allPrefs = new ArrayList<>();
         for (String predicate: preferenceCache.keySet()){
             allPrefs.addAll(preferenceCache.get(predicate));
         }
-       return PreferenceResolver.resolve(allPrefs, key);
-
+        return PreferenceResolver.resolve(allPrefs, key);
     }
-
 }