import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.metadata.CdmPreference;\r
import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;\r
-import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\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
* STATE: UNDER CONSTRUCTION\r
*\r
* @author a.mueller\r
- * @date 03.06.2016\r
+ * @since 03.06.2016\r
*/\r
public interface IPreferenceService {\r
\r
* Return the number of all existing cdm preferences\r
* @return\r
*/\r
- public int count();\r
+ public long count();\r
\r
/**\r
* Returns all CDM preferences.\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
\r
/**\r
* Retrieve the database wide preference for the given predicate.\r
- * @param key\r
+ * @param predicate\r
* @return\r
*/\r
- public CdmPreference findDatabase(PreferencePredicate predicate);\r
+ public CdmPreference findDatabase(IPreferencePredicate<?> predicate);\r
\r
/**\r
* Retrieve the vaadin wide preference for the given predicate.\r
- * @param key\r
+ * @param predicate\r
+ * @return\r
+ */\r
+ public CdmPreference findVaadin(IPreferencePredicate<?> predicate);\r
+\r
+\r
+ /**\r
+ * Retrieve the TaxEditor wide preference for the given predicate.\r
+ * @param predicate\r
* @return\r
*/\r
- public CdmPreference findVaadin(PreferencePredicate predicate);\r
+ public CdmPreference findTaxEditor(IPreferencePredicate<?> predicate);\r
\r
/**\r
* Returns the best matching preference that matches the given\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, PreferencePredicate predicate);\r
+ public CdmPreference find(TaxonNode taxonNode, IPreferencePredicate<?> predicate);\r
\r
/**\r
* Returns the best matching preference that matches the given\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
// String setCdmPrefs(CdmBase cdmBase, String predicate, String value );\r