import java.io.FileOutputStream;\r
import java.io.OutputStreamWriter;\r
import java.io.PrintWriter;\r
+import java.util.ArrayList;\r
import java.util.List;\r
\r
import org.apache.log4j.Logger;\r
import org.springframework.stereotype.Component;\r
import org.springframework.transaction.TransactionStatus;\r
\r
+import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
import eu.etaxonomy.cdm.io.common.CdmExportBase;\r
-import eu.etaxonomy.cdm.io.common.CdmIoBase;\r
import eu.etaxonomy.cdm.io.common.ICdmExport;\r
-import eu.etaxonomy.cdm.io.common.ICdmIO;\r
import eu.etaxonomy.cdm.io.common.IExportConfigurator;\r
import eu.etaxonomy.cdm.io.common.IImportConfigurator;\r
import eu.etaxonomy.cdm.model.agent.AgentBase;\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
+import eu.etaxonomy.cdm.model.common.User;\r
+import eu.etaxonomy.cdm.model.description.FeatureNode;\r
+import eu.etaxonomy.cdm.model.description.FeatureTree;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;\r
\r
/**\r
* @author a.babadshanjan\r
protected boolean doInvoke(JaxbExportState state) {\r
\r
JaxbExportConfigurator jaxbExpConfig = (JaxbExportConfigurator)state.getConfig();\r
- String dbname = jaxbExpConfig.getSource().getName();\r
+// String dbname = jaxbExpConfig.getSource().getName();\r
String fileName = jaxbExpConfig.getDestination();\r
- logger.info("Serializing DB " + dbname + " to file " + fileName);\r
- logger.debug("DbSchemaValidation = " + jaxbExpConfig.getDbSchemaValidation());\r
+// logger.info("Serializing DB " + dbname + " to file " + fileName);\r
+// logger.debug("DbSchemaValidation = " + jaxbExpConfig.getDbSchemaValidation());\r
\r
TransactionStatus txStatus = startTransaction(true);\r
DataSet dataSet = new DataSet();\r
try {\r
cdmDocumentBuilder = new CdmDocumentBuilder();\r
PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(fileName), "UTF8"), true);\r
+ \r
+ /*SAXResult result = new SAXResult();\r
+ ContentHandler handler = new DefaultHandler();\r
+ \r
+ result.setHandler(handler);*/\r
+ \r
+ //cdmDocumentBuilder.marshal(dataSet, result);\r
cdmDocumentBuilder.marshal(dataSet, writer);\r
-\r
+ \r
// TODO: Split into one file per data set member to see whether performance improves?\r
\r
logger.info("XML file written");\r
int referenceBaseRows = numberOfRows;\r
int taxonNameBaseRows = numberOfRows;\r
int taxonBaseRows = numberOfRows;\r
+ int taxonNodeRows = numberOfRows;\r
int relationshipRows = numberOfRows;\r
int occurrencesRows = numberOfRows;\r
int mediaRows = numberOfRows;\r
int featureDataRows = numberOfRows;\r
+ int taxonomicTreeDataRows = numberOfRows;\r
int languageDataRows = numberOfRows;\r
int termVocabularyRows = numberOfRows;\r
int homotypicalGroupRows = numberOfRows;\r
+ int UserRows= numberOfRows;\r
\r
+ if (jaxbExpConfig.isDoUsers() == true) {\r
+ \r
+ if (UserRows == 0) { UserRows = MAX_ROWS; }\r
+ logger.info("# User");\r
+ List<User> users = getUserService().list(null, UserRows, 0, null, null);\r
+ \r
+ \r
+ for (User user: users){\r
+ dataSet.addUser( (User)HibernateProxyHelper.deproxy(user));\r
+ }\r
+ \r
+ }\r
if (jaxbExpConfig.isDoTermVocabularies() == true) {\r
if (termVocabularyRows == 0) { termVocabularyRows = MAX_ROWS; }\r
logger.info("# TermVocabulary");\r
- dataSet.setTermVocabularies(getTermService().getAllTermVocabularies(MAX_ROWS, 0));;\r
+ dataSet.setTermVocabularies((List)getVocabularyService().list(null,termVocabularyRows, 0, null, null));\r
}\r
+ \r
+ \r
\r
// if (jaxbExpConfig.isDoLanguageData() == true) {\r
// if (languageDataRows == 0) { languageDataRows = MAX_ROWS; }\r
// logger.info("# Representation, Language String");\r
// dataSet.setLanguageData(getTermService().getAllRepresentations(MAX_ROWS, 0));\r
-// dataSet.addLanguageData(getTermService().getAllLanguageStrings(MAX_ROWS, 0));\r
+ //TODO!!! \r
+ dataSet.setLanguageStrings(getTermService().getAllLanguageStrings(MAX_ROWS, 0));\r
// }\r
\r
if (jaxbExpConfig.isDoTerms() == true) {\r
if (definedTermBaseRows == 0) { definedTermBaseRows = getTermService().count(DefinedTermBase.class); }\r
logger.info("# DefinedTermBase: " + definedTermBaseRows);\r
- dataSet.setTerms(getTermService().getAllDefinedTerms(definedTermBaseRows, 0));\r
+ dataSet.setTerms(getTermService().list(null,definedTermBaseRows, 0,null,null));\r
}\r
-\r
+ \r
if (jaxbExpConfig.isDoAuthors() == true) {\r
if (agentRows == 0) { agentRows = getAgentService().count(AgentBase.class); }\r
logger.info("# Agents: " + agentRows);\r
//logger.info(" # Team: " + appCtr.getAgentService().count(Team.class));\r
- dataSet.setAgents(getAgentService().getAllAgents(agentRows, 0));\r
+ dataSet.setAgents(getAgentService().list(null,agentRows, 0,null,null));\r
}\r
+ \r
+ \r
\r
if (jaxbExpConfig.getDoReferences() != IImportConfigurator.DO_REFERENCES.NONE) {\r
if (referenceBaseRows == 0) { referenceBaseRows = getReferenceService().count(ReferenceBase.class); }\r
logger.info("# ReferenceBase: " + referenceBaseRows);\r
- dataSet.setReferences(getReferenceService().getAllReferences(referenceBaseRows, 0));\r
+ dataSet.setReferences(getReferenceService().list(null,referenceBaseRows, 0,null,null));\r
+ }\r
+ \r
+ if (jaxbExpConfig.isDoHomotypicalGroups() == true) {\r
+ if (homotypicalGroupRows == 0) { homotypicalGroupRows = MAX_ROWS; }\r
+ logger.info("# Homotypical Groups");\r
+ dataSet.setHomotypicalGroups(getNameService().getAllHomotypicalGroups(homotypicalGroupRows, 0));\r
}\r
\r
if (jaxbExpConfig.isDoTaxonNames() == true) {\r
if (taxonNameBaseRows == 0) { taxonNameBaseRows = getNameService().count(TaxonNameBase.class); }\r
logger.info("# TaxonNameBase: " + taxonNameBaseRows);\r
//logger.info(" # Taxon: " + getNameService().count(BotanicalName.class));\r
- dataSet.setTaxonomicNames(getNameService().getAllNames(taxonNameBaseRows, 0));\r
+ dataSet.setTaxonomicNames(getNameService().list(null,taxonNameBaseRows, 0,null,null));\r
}\r
\r
- if (jaxbExpConfig.isDoHomotypicalGroups() == true) {\r
- if (homotypicalGroupRows == 0) { homotypicalGroupRows = MAX_ROWS; }\r
- logger.info("# Homotypical Groups");\r
- dataSet.setHomotypicalGroups(getNameService().getAllHomotypicalGroups(homotypicalGroupRows, 0));\r
- }\r
+ \r
\r
if (jaxbExpConfig.isDoTaxa() == true) {\r
if (taxonBaseRows == 0) { taxonBaseRows = getTaxonService().count(TaxonBase.class); }\r
logger.info("# TaxonBase: " + taxonBaseRows);\r
// dataSet.setTaxa(new ArrayList<Taxon>());\r
// dataSet.setSynonyms(new ArrayList<Synonym>());\r
- List<TaxonBase> tb = getTaxonService().getAllTaxonBases(taxonBaseRows, 0);\r
+ List<TaxonBase> tb = getTaxonService().list(null,taxonBaseRows, 0,null,null);\r
for (TaxonBase taxonBase : tb) {\r
- dataSet.addTaxonBase(taxonBase);\r
+ dataSet.addTaxonBase((TaxonBase)HibernateProxyHelper.deproxy(taxonBase));\r
}\r
}\r
\r
// Set<RelationshipBase> relationSet = new HashSet<RelationshipBase>(relationList);\r
// dataSet.setRelationships(relationSet);\r
// }\r
-\r
+ if (jaxbExpConfig.isDoOccurrence() == true) {\r
+ if (occurrencesRows == 0) { occurrencesRows = getOccurrenceService().count(SpecimenOrObservationBase.class); }\r
+ logger.info("# SpecimenOrObservationBase: " + occurrencesRows);\r
+ List<SpecimenOrObservationBase> occurrenceList = getOccurrenceService().list(null,occurrencesRows, 0,null,null);\r
+ /*List<SpecimenOrObservationBase> noProxyList = new ArrayList<SpecimenOrObservationBase>();\r
+ for (SpecimenOrObservationBase specimen : occurrenceList){\r
+ specimen = (SpecimenOrObservationBase)HibernateProxyHelper.deproxy(specimen);\r
+ noProxyList.add(specimen);\r
+ }*/\r
+ dataSet.setOccurrences(occurrenceList);\r
+ }\r
+ \r
if (jaxbExpConfig.isDoTypeDesignations() == true) {\r
logger.info("# TypeDesignations");\r
dataSet.addTypeDesignations(getNameService().getAllTypeDesignations(MAX_ROWS, 0));\r
}\r
\r
- if (jaxbExpConfig.isDoOccurrence() == true) {\r
- if (occurrencesRows == 0) { occurrencesRows = getOccurrenceService().count(SpecimenOrObservationBase.class); }\r
- logger.info("# SpecimenOrObservationBase: " + occurrencesRows);\r
- dataSet.setOccurrences(getOccurrenceService().getAllSpecimenOrObservationBases(occurrencesRows, 0));\r
- }\r
+ \r
\r
if (jaxbExpConfig.isDoMedia() == true) {\r
if (mediaRows == 0) { mediaRows = MAX_ROWS; }\r
logger.info("# Media");\r
- dataSet.setMedia(getMediaService().getAllMedia(mediaRows, 0));\r
+ dataSet.setMedia(getMediaService().list(null,mediaRows, 0,null,null));\r
// dataSet.addMedia(getMediaService().getAllMediaRepresentations(mediaRows, 0));\r
// dataSet.addMedia(getMediaService().getAllMediaRepresentationParts(mediaRows, 0));\r
}\r
if (jaxbExpConfig.isDoFeatureData() == true) {\r
if (featureDataRows == 0) { featureDataRows = MAX_ROWS; }\r
logger.info("# Feature Tree, Feature Node");\r
- dataSet.setFeatureTrees(getDescriptionService().getFeatureTreesAll(null));\r
+ List<FeatureTree> featureTrees = new ArrayList<FeatureTree>();\r
+ featureTrees= getFeatureTreeService().list(null,featureDataRows, 0, null, null);\r
+ List<FeatureTree> taxTreesdeproxy = new ArrayList<FeatureTree>();\r
+ for (FeatureTree featureTree : featureTrees){\r
+ HibernateProxyHelper.deproxy(featureTree);\r
+ taxTreesdeproxy.add(featureTree);\r
+ }\r
+ \r
+ dataSet.setFeatureTrees(getFeatureTreeService().list(null,null,null,null,null));\r
+ }\r
+ if (jaxbExpConfig.isDoTaxonomicTreeData() == true) {\r
+ if (taxonomicTreeDataRows == 0) { taxonomicTreeDataRows = MAX_ROWS; }\r
+ logger.info("# Taxonomic Tree");\r
+ \r
+ \r
+ List<TaxonomicTree> taxTrees = new ArrayList<TaxonomicTree>();\r
+ taxTrees= getTaxonTreeService().list(null,taxonomicTreeDataRows, 0, null, null);\r
+ \r
+ List<TaxonomicTree> taxTreesdeproxy = new ArrayList<TaxonomicTree>();\r
+ for (TaxonomicTree taxTree : taxTrees){\r
+ HibernateProxyHelper.deproxy(taxTree);\r
+ taxTreesdeproxy.add(taxTree);\r
+ }\r
+ List<TaxonNode> taxNodes = new ArrayList<TaxonNode>();\r
+ taxNodes= getTaxonTreeService().getAllNodes();\r
+ List<TaxonNode> taxNodesdeproxy = new ArrayList<TaxonNode>();\r
+ for (TaxonNode taxNode : taxNodes){\r
+ HibernateProxyHelper.deproxy(taxNode);\r
+ taxNodesdeproxy.add(taxNode);\r
+ }\r
+ \r
+ dataSet.setTaxonNodes(taxNodesdeproxy);\r
+ dataSet.setTaxonomicTrees(taxTreesdeproxy );\r
}\r
+ //TODO: FIXME!!!!!\r
+ dataSet.setLanguageStrings(null);\r
}\r
\r
\r