Deprecate getCharacterData method in service layer
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / IDescriptionService.java
index 37349a96120ee6edfa61f0dfff1d118901fb0595..00390d74b7277668363dce9e2165b4a0e0dd24f0 100644 (file)
@@ -17,9 +17,11 @@ import java.util.Set;
 import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.service.pager.Pager;
+import eu.etaxonomy.cdm.api.utility.DescriptionUtility;
 import eu.etaxonomy.cdm.model.common.Annotation;
 import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.cdm.model.common.MarkerType;
 import eu.etaxonomy.cdm.model.common.TermVocabulary;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
@@ -27,7 +29,7 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.Distribution;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
-import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;
+import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
 import eu.etaxonomy.cdm.model.location.NamedArea;
@@ -36,6 +38,7 @@ import eu.etaxonomy.cdm.model.media.Media;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.persistence.dao.initializer.IBeanInitializer;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.query.OrderHint;
 
 public interface IDescriptionService extends IIdentifiableEntityService<DescriptionBase> {
@@ -97,6 +100,8 @@ public interface IDescriptionService extends IIdentifiableEntityService<Descript
      */
     public UUID deleteDescriptionElement(DescriptionElementBase descriptionElement);
 
+    public UUID deleteDescriptionElement(UUID descriptionElementUuid);
+
     /**
      * List the descriptions of type <T>, filtered using the following parameters
      *
@@ -361,7 +366,7 @@ public interface IDescriptionService extends IIdentifiableEntityService<Descript
      * @param propertyPaths Properties to initialize in the returned entities, following the syntax described in {@link IBeanInitializer#initialize(Object, List)}
      * @return a Pager containing TaxonDescription instances
      */
-    public Pager<TaxonDescription> searchDescriptionByDistribution(Set<NamedArea> namedAreas, PresenceAbsenceTermBase presence, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);
+    public Pager<TaxonDescription> searchDescriptionByDistribution(Set<NamedArea> namedAreas, PresenceAbsenceTerm presence, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);
 
     /**
      * Returns a Paged List of DescriptionElementBase instances where the default field matches the String queryString (as interpreted by the Lucene QueryParser)
@@ -475,28 +480,35 @@ public interface IDescriptionService extends IIdentifiableEntityService<Descript
 
     /**
      * @param taxonDescriptions
-     *
      * @param subAreaPreference
      *            enables the <b>Sub area preference rule</b> if set to true,
      *            see {@link DescriptionUtility#filterDistributions(Collection,
      *            boolean, boolean}
+
      * @param statusOrderPreference
      *            enables the <b>Status order preference rule</b> if set to
      *            true, see {@link
      *            DescriptionUtility#filterDistributions(Collection, boolean,
      *            boolean}
+     * @param hideMarkedAreas
+     *            distributions where the area has a {@link Marker} with one of
+     *            the specified {@link MarkerType}s will be skipped, see
+     *            {@link DescriptionUtility#filterDistributions(Collection, boolean, boolean, Set)}
      * @param omitLevels
      *            A Set NamedArea levels to omit - optional
      * @param propertyPaths
      *            the initialization strategy
+     *
      * @return
+     * @deprecated use {@link IEditGeoService#composeDistributionInfoFor()} instead
      */
+    @Deprecated
     public DistributionTree getOrderedDistributions(
             Set<TaxonDescription> taxonDescriptions,
             boolean subAreaPreference,
             boolean statusOrderPreference,
-            Set<NamedAreaLevel> omitLevels,
-            List<String> propertyPaths);
+            Set<MarkerType> hideMarkedAreas,
+            Set<NamedAreaLevel> omitLevels, List<String> propertyPaths);
 
     /**
       * Generate a string representation of the structured <code>description</code> supplied in natural language
@@ -528,8 +540,9 @@ public interface IDescriptionService extends IIdentifiableEntityService<Descript
      * @param targetDescription
      * @param isPaste if true, the elements are only copied (cloned) and not removed from the
      *         old description
+     * @return
      */
-    public void moveDescriptionElementsToDescription(Collection<DescriptionElementBase> descriptionElements, DescriptionBase targetDescription, boolean isPaste);
+    public UpdateResult moveDescriptionElementsToDescription(Collection<DescriptionElementBase> descriptionElements, DescriptionBase targetDescription, boolean isPaste);
 
     /**
      * Pager method to get all {@link NamedAreas} instances which are currently used
@@ -547,6 +560,46 @@ public interface IDescriptionService extends IIdentifiableEntityService<Descript
      * @return a Pager for all NamedAreas instances which are currently in use.
      *
      */
-    public Pager<NamedArea> pageNamedAreasInUse(Integer pageSize,
-            Integer pageNumber, List<String> propertyPaths);
+    public Pager<TermDto> pageNamedAreasInUse(boolean includeAllParents, Integer pageSize,
+            Integer pageNumber);
+
+       public DeleteResult deleteDescription(DescriptionBase description);
+
+       public DeleteResult deleteDescription(UUID descriptionUuid);
+
+    /**
+     * @param sourceTaxon
+     * @param targetTaxon
+     * @return
+     */
+    public UpdateResult moveTaxonDescriptions(Taxon sourceTaxon, Taxon targetTaxon);
+
+    /**
+     * @param sourceTaxonUuid
+     * @param targetTaxonUuid
+     * @return
+     */
+    public UpdateResult moveTaxonDescriptions(UUID sourceTaxonUuid, UUID targetTaxonUuid);
+
+
+    /**
+     * @param descriptionElementUUIDs
+     * @param targetDescriptionUuid
+     * @param isCopy
+     * @return
+     */
+    public UpdateResult moveDescriptionElementsToDescription(Set<UUID> descriptionElementUUIDs, UUID targetDescriptionUuid,
+            boolean isCopy);
+
+    /**
+     * @param descriptionElementUUIDs
+     * @param targetTaxonUuid
+     * @param moveMessage
+     * @param isCopy
+     * @return
+     */
+    public UpdateResult moveDescriptionElementsToDescription(Set<UUID> descriptionElementUUIDs, UUID targetTaxonUuid,
+            String moveMessage, boolean isCopy);
+
+
 }
\ No newline at end of file