cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IDescriptionService.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IIdentifiableEntityService.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/INameService.java -text
+cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IOccurrenceService.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IReferenceService.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IService.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ITaxonService.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ITermService.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IdentifiableServiceBase.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/NameServiceImpl.java -text
+cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ReferenceServiceImpl.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ServiceBase.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonServiceImpl.java -text
import eu.etaxonomy.cdm.api.service.IDatabaseService;\r
import eu.etaxonomy.cdm.api.service.IDescriptionService;\r
import eu.etaxonomy.cdm.api.service.INameService;\r
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
import eu.etaxonomy.cdm.api.service.IReferenceService;\r
import eu.etaxonomy.cdm.api.service.ITaxonService;\r
import eu.etaxonomy.cdm.api.service.ITermService;\r
return configuration.getDescriptionService();\r
}\r
\r
+ public final IOccurrenceService getOccurrenceService(){\r
+ return configuration.getOccurrenceService();\r
+ }\r
+\r
public final ICommonService getCommonService(){\r
return configuration.getCommonService();\r
}\r
import eu.etaxonomy.cdm.api.service.IDatabaseService;\r
import eu.etaxonomy.cdm.api.service.IDescriptionService;\r
import eu.etaxonomy.cdm.api.service.INameService;\r
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
import eu.etaxonomy.cdm.api.service.IReferenceService;\r
import eu.etaxonomy.cdm.api.service.ITaxonService;\r
import eu.etaxonomy.cdm.api.service.ITermService;\r
@Autowired\r
private IDescriptionService descriptionService;\r
@Autowired\r
+ private IOccurrenceService occurrenceService;\r
+ @Autowired\r
private ICommonService commonService;\r
\r
\r
return this.descriptionService;\r
}\r
\r
+ public IOccurrenceService getOccurrenceService(){\r
+ return this.occurrenceService;\r
+ }\r
+\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration#getTermService()\r
*/\r
import eu.etaxonomy.cdm.api.service.IDatabaseService;\r
import eu.etaxonomy.cdm.api.service.IDescriptionService;\r
import eu.etaxonomy.cdm.api.service.INameService;\r
+import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
import eu.etaxonomy.cdm.api.service.IReferenceService;\r
import eu.etaxonomy.cdm.api.service.ITaxonService;\r
import eu.etaxonomy.cdm.api.service.ITermService;\r
*/\r
public IDescriptionService getDescriptionService();\r
\r
+ /**\r
+ * @return\r
+ */\r
+ public IOccurrenceService getOccurrenceService();\r
+ \r
/**\r
* @return\r
*/\r
--- /dev/null
+/**\r
+* Copyright (C) 2008 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+*/\r
+\r
+package eu.etaxonomy.cdm.api.service;\r
+\r
+import java.util.Collection;\r
+import java.util.List;\r
+import java.util.Map;\r
+import java.util.UUID;\r
+\r
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+\r
+/**\r
+ * @author a.babadshanjan\r
+ * @created 01.09.2008\r
+ */\r
+public interface IOccurrenceService extends IIdentifiableEntityService<SpecimenOrObservationBase> {\r
+\r
+ /**\r
+ * Computes all specimen or observation bases.\r
+ * @param limit\r
+ * @param start\r
+ * @return\r
+ */\r
+ public abstract List<SpecimenOrObservationBase> getAllSpecimenOrObservationBases(int limit, int start);\r
+\r
+ /** Saves a collection of specimen or observation bases.\r
+ * @return Map with UUID as key and SpecimenOrObservationBase as value.\r
+ **/\r
+ public abstract Map<UUID, SpecimenOrObservationBase> \r
+ saveSpecimenOrObservationBaseAll(Collection<SpecimenOrObservationBase> specimenOrObservationBaseCollection);\r
+\r
+}\r
/** save a taxon and return its UUID**/
public abstract UUID saveTaxon(TaxonBase taxon);
- /** save a collection of taxa and return its UUID**/
+ /** save a collection of taxa and return its UUID**/
public abstract Map<UUID, TaxonBase> saveTaxonAll(Collection<TaxonBase> taxonCollection);
*/
public abstract List<Taxon> getRootTaxa(ReferenceBase sec, CdmFetch cdmFetch, boolean onlyWithChildren);
- /**
- * Computes all taxon relationships.
- * @param limit
- * @param start
- * @return
- */
- //public abstract List<TaxonRelationship> getAllTaxonRelationships(int limit, int start);
-
- /**
- * Computes all synonym relationships.
- * @param limit
- * @param start
- * @return
- */
- //public abstract List<SynonymRelationship> getAllSynonymRelationships(int limit, int start);
-
/**
* Computes all relationships.
* @param limit
--- /dev/null
+/**\r
+* Copyright (C) 2008 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+*/\r
+\r
+package eu.etaxonomy.cdm.api.service;\r
+\r
+import java.util.Collection;\r
+import java.util.List;\r
+import java.util.Map;\r
+import java.util.UUID;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.springframework.beans.factory.annotation.Autowired;\r
+import org.springframework.stereotype.Service;\r
+import org.springframework.transaction.annotation.Transactional;\r
+\r
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
+import eu.etaxonomy.cdm.persistence.dao.name.ITaxonNameDao;\r
+import eu.etaxonomy.cdm.persistence.dao.occurrence.IOccurrenceDao;\r
+\r
+/**\r
+ * @author a.babadshanjan\r
+ * @created 01.09.2008\r
+ */\r
+@Service\r
+@Transactional(readOnly = true)\r
+public class OccurrenceServiceImpl extends IdentifiableServiceBase<SpecimenOrObservationBase> implements IOccurrenceService {\r
+\r
+ static private final Logger logger = Logger.getLogger(OccurrenceServiceImpl.class);\r
+\r
+ @Autowired\r
+ protected void setDao(IOccurrenceDao dao) {\r
+ this.dao = dao;\r
+ }\r
+\r
+ public OccurrenceServiceImpl() {\r
+ logger.debug("Load OccurrenceService Bean");\r
+ }\r
+ \r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#getAllspecimenOrObservationBases(int, int)\r
+ */\r
+ public List<SpecimenOrObservationBase> getAllSpecimenOrObservationBases(\r
+ int limit, int start) {\r
+ return dao.list(limit, start);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.cdm.api.service.IOccurrenceService#saveSpecimenOrObservationBaseAll(java.util.Collection)\r
+ */\r
+ public Map<UUID, SpecimenOrObservationBase> saveSpecimenOrObservationBaseAll(\r
+ Collection<SpecimenOrObservationBase> specimenOrObservationBaseCollection) {\r
+ return saveCdmObjectAll(specimenOrObservationBaseCollection);\r
+ }\r
+\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#generateTitleCache()\r
+ */\r
+ public void generateTitleCache() {\r
+ // TODO Auto-generated method stub\r
+ logger.warn("Not yet implemented");\r
+ }\r
+}\r
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;\r
import eu.etaxonomy.cdm.model.name.Rank;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
import eu.etaxonomy.cdm.model.reference.Book;\r
import eu.etaxonomy.cdm.model.reference.Database;\r
import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
\r
}\r
\r
- \r
private void retrieveAllDataFlat (CdmApplicationController appCtr, DataSet dataSet, int numberOfRows) {\r
\r
final int MAX_ROWS = 50000;\r
int taxonRelationshipRows = numberOfRows;\r
int synonymRelationshipRows = numberOfRows;\r
int relationshipRows = numberOfRows;\r
+ int occurrencesRows = numberOfRows;\r
\r
if (agentRows == 0) { agentRows = appCtr.getAgentService().count(Agent.class); }\r
logger.info("# Agents: " + agentRows);\r
dataSet.setReferencedEntities(appCtr.getNameService().getAllNomenclaturalStatus(MAX_ROWS, 0));\r
dataSet.addReferencedEntities(appCtr.getNameService().getAllTypeDesignations(MAX_ROWS, 0));\r
\r
+ if (occurrencesRows == 0) { occurrencesRows = appCtr.getOccurrenceService().count(SpecimenOrObservationBase.class); }\r
+ logger.info("# SpecimenOrObservationBase: " + occurrencesRows);\r
+ dataSet.setOccurrences(appCtr.getOccurrenceService().getAllSpecimenOrObservationBases(occurrencesRows, 0));\r
+\r
// TODO: \r
// retrieve taxa and synonyms separately\r
// need correct count for taxa and synonyms\r
List<TaxonNameBase> taxonomicNames;\r
List<DescriptionBase> descriptions;\r
List<ReferencedEntityBase> referencedEntities;\r
+ List<SpecimenOrObservationBase> occurrences;\r
\r
TransactionStatus txStatus = appCtr.startTransaction();\r
\r
\r
/* If terms are not saved here explicitly, then only those terms that are used\r
are saved implicitly. */\r
-// if ((terms = dataSet.getTerms()) != null) {\r
-// logger.info("Saving " + terms.size() + " terms");\r
-// appCtr.getTermService().saveTermsAll(terms);\r
-// }\r
+ if ((terms = dataSet.getTerms()) != null) {\r
+ logger.info("Saving " + terms.size() + " terms");\r
+ appCtr.getTermService().saveTermsAll(terms);\r
+ }\r
\r
if ((agents = dataSet.getAgents()) != null) {\r
logger.info("Saving " + agents.size() + " agents");\r
appCtr.getTaxonService().saveTaxonAll(taxonBases);\r
}\r
\r
- // NomenclaturalStatus and TypeDesignations saved with taxon names?\r
+ // NomenclaturalStatus and TypeDesignations are saved with taxon names\r
// if ((referencedEntities = dataSet.getReferencedEntities()) != null) {\r
// logger.info("Saving referenced entities");\r
// appCtr.getNameService().save...;\r
// appCtr.getDescriptionService().saveDescriptionAll(descriptions);\r
// }\r
\r
+ if ((occurrences = dataSet.getOccurrences()) != null) {\r
+ logger.info("Saving " + occurrences.size() + " references");\r
+ appCtr.getOccurrenceService().saveSpecimenOrObservationBaseAll(occurrences);\r
+ }\r
+\r
logger.info("All data saved");\r
\r
appCtr.commitTransaction(txStatus);\r
// via services rather than traversing the tree.\r
doSerializeFlat(serializeFromDb, marshOutOne);\r
\r
- //doDeserialize(deserializeToDb, marshOutOne);\r
+ doDeserialize(deserializeToDb, marshOutOne);\r
\r
//doSerialize(deserializeToDb, marshOutTwo);\r
}\r