*/\r
package eu.etaxonomy.cdm.api.service;\r
\r
+\r
import org.springframework.transaction.annotation.Propagation;\r
import org.springframework.transaction.annotation.Transactional;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
@Transactional(propagation=Propagation.SUPPORTS)\r
public interface IService<T extends CdmBase>{\r
\r
+\r
}
\ No newline at end of file
/** save a taxon and return its UUID**/
public abstract UUID saveTaxon(TaxonBase taxon);
+ /** delete a taxon and return its UUID**/
+ public abstract UUID removeTaxon(TaxonBase taxon);
+
/** */
public abstract List<Taxon> getRootTaxa(ReferenceBase sec);
/** */
public abstract List<TaxonBase> searchTaxaByName(String name, ReferenceBase sec);
+
+
}
this.dao=dao;\r
}\r
\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.cdm.api.service.Iyyy#setApplicationContext(org.springframework.context.ApplicationContext)\r
+ */\r
public void setApplicationContext(ApplicationContext appContext){\r
this.appContext = appContext;\r
}\r
return dao.saveOrUpdate(cdmObj);\r
}\r
\r
+ @Transactional(readOnly = false)\r
+ protected UUID removeCdmObject(T cdmObj){\r
+ if (logger.isDebugEnabled()){logger.debug("Save cdmObj: " + (cdmObj == null? null: cdmObj.toString()));}\r
+ return dao.delete(cdmObj);\r
+ }\r
+ \r
protected List<T> list(int limit, int start) {\r
return dao.list(limit, start);\r
}\r
static Logger logger = Logger.getLogger(TaxonServiceImpl.class);\r
\r
private ITaxonDao taxonDao;\r
+ \r
@Autowired\r
protected void setDao(ITaxonDao dao) {\r
this.dao = dao;\r
public UUID saveTaxon(TaxonBase taxon) {\r
return super.saveCdmObject(taxon);\r
}\r
+ \r
+\r
+ @Transactional(readOnly = false)\r
+ public UUID removeTaxon(TaxonBase taxon) {\r
+ return super.removeCdmObject(taxon);\r
+ }\r
\r
public List<TaxonBase> searchTaxaByName(String name, ReferenceBase sec) {\r
return taxonDao.getTaxaByName(name, sec);\r
public List<DefinedTermBase> listTerms() {
if (DefinedTermBase.isInitialized()){
- logger.debug("listTerms by Map");
+ logger.info("listTerms by Map");
List<DefinedTermBase> result = new ArrayList<DefinedTermBase>();
result.addAll(DefinedTermBase.getDefinedTerms().values());
return result;
}else{
//needed for initialization by DefinedTermBase
- logger.debug("listTerms by Init");
+ logger.info("listTerms by Init");
return dao.list(100000, 0);
}
}