#4313 implementing full stack of methods to expose TaxonNodeAgentRelations via remote...
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / ITaxonNodeService.java
index 52999ab76e7afe4f3814f3e51fb7e6ae55c432a4..2620c7f1bdf9c774b7df4ff2195b12a837a4465a 100644 (file)
@@ -16,11 +16,12 @@ import java.util.Set;
 import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
+import eu.etaxonomy.cdm.api.service.pager.Pager;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Classification;
-import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonNodeAgentRelation;
 
 
 /**
@@ -60,16 +61,7 @@ public interface ITaxonNodeService extends IAnnotatableService<TaxonNode>{
                Reference citation,
                String citationMicroReference) ;
 
-       /**
-        * deletes the given taxon nodes
-        *
-        * @param nodes
-        * @param config
-        * @return
-        *
-        */
-       public DeleteResult deleteTaxonNodes(Set<ITaxonTreeNode> nodes,
-                       TaxonDeletionConfigurator config) ;
+
     /**
      * @param nodeUuids
      * @param config
@@ -113,22 +105,12 @@ public interface ITaxonNodeService extends IAnnotatableService<TaxonNode>{
        public int countAllNodesForClassification(Classification classification);
 
 
-    /**
-     * @param taxonNode
-     * @param newParentTaxonNode
-     * @return
-     */
-    public UpdateResult moveTaxonNode(TaxonNode taxonNode, TaxonNode newParentTaxonNode);
-
-
-
-
     /**
      * @param taxonNodeUuid
      * @param newParentTaxonNodeUuid
      * @return
      */
-    public UpdateResult moveTaxonNode(UUID taxonNodeUuid, UUID newParentTaxonNodeUuid);
+    public UpdateResult moveTaxonNode(UUID taxonNodeUuid, UUID newParentTaxonNodeUuid, boolean parent);
 
 
 
@@ -137,9 +119,36 @@ public interface ITaxonNodeService extends IAnnotatableService<TaxonNode>{
      * @param newParentNodeUuid
      * @return
      */
-    UpdateResult moveTaxonNodes(Set<UUID> taxonNodeUuids, UUID newParentNodeUuid);
+    UpdateResult moveTaxonNodes(Set<UUID> taxonNodeUuids, UUID newParentNodeUuid, boolean parent);
 
+    /**
+     * @param taxonNode
+     * @param newParent
+     * @param parent
+     * @return
+     */
+    UpdateResult moveTaxonNode(TaxonNode taxonNode, TaxonNode newParent, boolean parent);
 
+    /**
+     * deletes the given taxon nodes
+     *
+     * @param nodes
+     * @param config
+     * @return
+     *
+     */
+    public DeleteResult deleteTaxonNodes(List<TaxonNode> list, TaxonDeletionConfigurator config);
+
+    /**
+     * Returns the of TaxonNodeAgentRelation entities which are associated with the TaxonNode for the
+     * given TaxonUuid in the specified Classification.
+     *
+     * @param taxonUuid
+     * @param classification
+     * @return
+     */
+    public Pager<TaxonNodeAgentRelation> pageTaxonNodeAgentRelations(UUID taxonUuid, UUID classificationUuid,
+            Integer pageSize, Integer pageIndex, List<String> propertyPaths);
 
 
 }