import eu.etaxonomy.cdm.model.metadata.CdmPreference;\r
import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;\r
import eu.etaxonomy.cdm.model.metadata.IPreferencePredicate;\r
+import eu.etaxonomy.cdm.model.metadata.PreferenceResolver;\r
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;\r
import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
\r
*/\r
public List<CdmPreference> list();\r
\r
+ /**\r
+ * Returns all matching preferences for the given predicate. Use\r
+ * {@link #find(PrefKey)} to find the best matching preference\r
+ * or use {@link PreferenceResolver} to resolve the best matching\r
+ * preference on client side.\r
+ * @param predicate\r
+ * @return\r
+ */\r
+ public List<CdmPreference> list(IPreferencePredicate<?> predicate);\r
\r
/**\r
* Retrieve all matching values for the given preference key.\r
*/\r
public CdmPreference find(PrefKey key);\r
\r
+ /**\r
+ * Retrieve the preference that has a key exactly matching the given key.\r
+ * @param key\r
+ * @return\r
+ */\r
+ public CdmPreference findExact(PrefKey key);\r
+\r
\r
// Can not yet be created as we allow only PreferencePredicate for predicate key creation now.\r
// /**\r
* @param predicate\r
* @return\r
*/\r
- public Object find(TaxonNode taxonNode, String predicate);\r
+ public CdmPreference find(TaxonNode taxonNode, String predicate);\r
\r
public CdmPreference find(TaxonNode taxonNode, IPreferencePredicate<?> predicate);\r
\r
public void set(CdmPreference preference);\r
\r
\r
+ /**\r
+ * @param preference\r
+ */\r
+ void remove(PrefKey preference);\r
+\r
+\r
\r
//we need to decide if we want to keep this method\r
// //returns old value\r