Merge branch 'release/5.45.0'
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / IPreferenceService.java
index e351a12e54f83e33e9afb08705eec4af1af0d540..afa8b3db5e230bb4471af74dc2d6d896eeaddfab 100644 (file)
@@ -13,7 +13,8 @@ import java.util.List;
 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
@@ -23,7 +24,7 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
  * 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
@@ -37,7 +38,7 @@ public interface IPreferenceService {
      * 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
@@ -45,6 +46,15 @@ public interface IPreferenceService {
       */\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
@@ -62,6 +72,13 @@ public interface IPreferenceService {
       */\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
@@ -82,17 +99,25 @@ public interface IPreferenceService {
 \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
@@ -102,9 +127,9 @@ public interface IPreferenceService {
       * @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
@@ -132,6 +157,13 @@ public interface IPreferenceService {
      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