X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/blobdiff_plain/3986faa0e3b1b3c99f989ef34655e0e5fe516c3b..HEAD:/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IPreferenceService.java diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IPreferenceService.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IPreferenceService.java index 54f1d5891a..afa8b3db5e 100644 --- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IPreferenceService.java +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IPreferenceService.java @@ -14,6 +14,7 @@ import eu.etaxonomy.cdm.model.common.CdmBase; import eu.etaxonomy.cdm.model.metadata.CdmPreference; import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey; import eu.etaxonomy.cdm.model.metadata.IPreferencePredicate; +import eu.etaxonomy.cdm.model.metadata.PreferenceResolver; import eu.etaxonomy.cdm.model.metadata.PreferenceSubject; import eu.etaxonomy.cdm.model.taxon.TaxonNode; @@ -45,6 +46,15 @@ public interface IPreferenceService { */ public List list(); + /** + * Returns all matching preferences for the given predicate. Use + * {@link #find(PrefKey)} to find the best matching preference + * or use {@link PreferenceResolver} to resolve the best matching + * preference on client side. + * @param predicate + * @return + */ + public List list(IPreferencePredicate predicate); /** * Retrieve all matching values for the given preference key. @@ -62,6 +72,13 @@ public interface IPreferenceService { */ public CdmPreference find(PrefKey key); + /** + * Retrieve the preference that has a key exactly matching the given key. + * @param key + * @return + */ + public CdmPreference findExact(PrefKey key); + // Can not yet be created as we allow only PreferencePredicate for predicate key creation now. // /** @@ -110,7 +127,7 @@ public interface IPreferenceService { * @param predicate * @return */ - public Object find(TaxonNode taxonNode, String predicate); + public CdmPreference find(TaxonNode taxonNode, String predicate); public CdmPreference find(TaxonNode taxonNode, IPreferencePredicate predicate); @@ -140,6 +157,12 @@ public interface IPreferenceService { public void set(CdmPreference preference); + /** + * @param preference + */ + void remove(PrefKey preference); + + //we need to decide if we want to keep this method // //returns old value