package eu.etaxonomy.cdm.api.service;\r
\r
import java.util.List;\r
+import java.util.Set;\r
+import java.util.UUID;\r
\r
import org.apache.log4j.Logger;\r
+import org.hibernate.ObjectDeletedException;\r
import org.springframework.beans.factory.annotation.Autowired;\r
import org.springframework.stereotype.Service;\r
import org.springframework.transaction.annotation.Propagation;\r
import org.springframework.transaction.annotation.Transactional;\r
\r
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;\r
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;\r
import eu.etaxonomy.cdm.model.description.PolytomousKey;\r
+import eu.etaxonomy.cdm.model.name.NonViralName;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.cdm.persistence.dao.common.ICdmGenericDao;\r
import eu.etaxonomy.cdm.persistence.dao.reference.IReferenceDao;\r
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;\r
\r
public class ReferenceServiceImpl extends IdentifiableServiceBase<Reference,IReferenceDao> implements IReferenceService {\r
\r
static Logger logger = Logger.getLogger(ReferenceServiceImpl.class);\r
-\r
+ \r
+ @Autowired\r
+private ICdmGenericDao genericDao;\r
/**\r
* Constructor\r
*/\r
}\r
super.updateTitleCacheImpl(clazz, stepSize, cacheStrategy, monitor);\r
}\r
+ \r
+\r
+ @Override\r
+ protected void setOtherCachesNull(Reference ref) {\r
+ if (! ref.isProtectedAbbrevTitleCache()){\r
+ ref.setAbbrevTitleCache(null, false);\r
+ }\r
+ }\r
\r
\r
@Autowired\r
\r
return taxonList;\r
}\r
-\r
+ \r
+ @Override\r
+ public DeleteResult delete(Reference reference) {\r
+ //check whether the reference is used somewhere\r
+ DeleteResult result = isDeletable(reference, null);\r
+ \r
+ if (result.isOk()){\r
+ dao.delete(reference);\r
+ }\r
+ \r
+ return result;\r
+ }\r
}\r