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;
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;
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> {
*/
public UUID deleteDescriptionElement(DescriptionElementBase descriptionElement);
+ public UUID deleteDescriptionElement(UUID descriptionElementUuid);
+
/**
* List the descriptions of type <T>, filtered using the following parameters
*
* @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)
/**
* @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
* @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
* @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