From c35d4c4a9892a5229266cd7a118d70180c402708 Mon Sep 17 00:00:00 2001 From: Katja Luther Date: Fri, 3 May 2019 12:42:38 +0200 Subject: [PATCH] implement get(PrefKey) for exact match of key in preferenceCache --- .../e4/StatusComboBoxDataProvider.java | 6 ++-- .../preference/CdmPreferenceCache.java | 31 ++++++++++--------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusComboBoxDataProvider.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusComboBoxDataProvider.java index 67ff2fa82..3ed0e503d 100755 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusComboBoxDataProvider.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/checklist/e4/StatusComboBoxDataProvider.java @@ -27,7 +27,6 @@ import eu.etaxonomy.cdm.model.term.DefinedTermBase; import eu.etaxonomy.cdm.model.term.OrderedTermComparator; import eu.etaxonomy.cdm.model.term.Representation; import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache; -import eu.etaxonomy.taxeditor.preference.PreferencesUtil; import eu.etaxonomy.taxeditor.store.CdmStore; /** @@ -53,9 +52,10 @@ public class StatusComboBoxDataProvider implements IComboBoxDataProvider { CdmPreference pref = CdmPreferenceCache.instance().findBestMatching(key); if (pref == null) { key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableDistributionStatus); - pref = CdmPreferenceCache.instance().findBestMatching(key); + //pref = PreferenceResolver.resolve(preferenceCache.get(predicate), CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.getByKey(predicate))); + pref = CdmPreferenceCache.instance().get(key); if (pref == null){ - pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencesUtil.getStringValue(PreferencePredicate.AvailableDistributionStatus.getKey())); + pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencePredicate.AvailableDistributionStatus.getDefaultValue() != null ? PreferencePredicate.AvailableDistributionStatus.getDefaultValue().toString(): null); } } return getValues(pref); diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferenceCache.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferenceCache.java index 0a92c9bed..c05ad7996 100755 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferenceCache.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/CdmPreferenceCache.java @@ -51,27 +51,28 @@ public class CdmPreferenceCache { public CdmPreference get(String predicate){ if (preferenceCache.get(predicate) != null){ + List preferences = preferenceCache.get(predicate); if (preferenceCache.get(predicate).size() > 1){ - return findBestMatching(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.getByKey(predicate))); + CdmPreference pref = PreferenceResolver.resolve(preferenceCache.get(predicate), CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.getByKey(predicate))); + return pref; } return preferenceCache.get(predicate).get(0); } return null; } -// public Collection get(PrefKey key){ -// if (preferenceCache.containsKey(key.getPredicate())){ -// if (key.getSubject() != null){ -// Set result = new HashSet(); -// result.add(preferenceCache.get(key.getPredicate()).get(key.getSubject())); -// return result; -// }else{ -// if (!preferenceCache.get(key.getPredicate()).values().isEmpty()){ -// return preferenceCache.get(key.getPredicate()).values(); -// } -// } -// } -// return null; -// } + + //looking for the equal prefkey + public CdmPreference get(PrefKey key){ + if (preferenceCache.containsKey(key.getPredicate())){ + for (CdmPreference pref: preferenceCache.get(key.getPredicate())){ + if (pref.getKey().equals(key)){ + return pref; + } + } + + } + return null; + } public void put(CdmPreference pref){ if (preferenceCache.containsKey(pref.getPredicate())){ -- 2.34.1