import eu.etaxonomy.cdm.io.common.ImportHelper;\r
import eu.etaxonomy.cdm.io.common.MapWrapper;\r
import eu.etaxonomy.cdm.io.common.Source;\r
+import eu.etaxonomy.cdm.model.agent.Team;\r
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.name.Rank;\r
/* Max number of references to be saved with one service call */\r
private int limit = 20000; // TODO: Make configurable\r
\r
- public FaunaEuropaeaReferenceImport() {\r
- }\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IImportConfigurator)\r
}\r
\r
int refId = rs.getInt("ref_id");\r
- //String author = rs.getString("ref_author");\r
+ String refAuthor = rs.getString("ref_author");\r
String year = rs.getString("ref_year");\r
String title = rs.getString("ref_title");\r
- String ref_author = rs.getString("ref_author");\r
String refSource = rs.getString("ref_source");\r
-// int authorId = rs.getInt("aut_id");\r
\r
StrictReferenceBase<?> reference = null;\r
+ TeamOrPersonBase<Team> author = null;\r
\r
try {\r
reference = Generic.NewInstance();\r
reference.setTitleCache(title);\r
reference.setDatePublished(ImportHelper.getDatePublished(year));\r
+ author = Team.NewInstance();\r
+ author.setTitleCache(refAuthor);\r
\r
// FIXME: author.aut_name and Reference.ref_author don't match\r
// if (authorStore != null) {\r
// }\r
\r
ImportHelper.setOriginalSource(reference, fauEuConfig.getSourceReference(), refId, namespace);\r
+ ImportHelper.setOriginalSource(author, fauEuConfig.getSourceReference(), refId, namespace);\r
+ \r
+ // Create reference\r
\r
if (!refStore.containsId(refId)) {\r
if (reference == null) {\r
}\r
refStore.put(refId, reference);\r
if (logger.isDebugEnabled()) { \r
- logger.debug("Stored reference (" + refId + ") " + ref_author); \r
+ logger.debug("Stored reference (" + refId + ") " + refAuthor); \r
}\r
} else {\r
logger.warn("Not imported reference with duplicated ref_id (" + refId + \r
- ") " + ref_author);\r
+ ") " + refAuthor);\r
+ }\r
+ \r
+ // Create authors\r
+ \r
+ if (!authorStore.containsId(refId)) {\r
+ if (refAuthor == null) {\r
+ logger.warn("Reference author is null");\r
+ }\r
+ authorStore.put(refId, author);\r
+ if (logger.isDebugEnabled()) { \r
+ logger.debug("Stored author (" + refId + ") " + refAuthor); \r
+ }\r
+ } else {\r
+ logger.warn("Not imported author with duplicated aut_id (" + refId + \r
+ ") " + refAuthor);\r
}\r
\r
+ \r
} catch (Exception e) {\r
logger.warn("An exception occurred when creating reference with id " + refId + \r
". Reference could not be saved.");\r
\r
if(logger.isInfoEnabled()) { logger.info("Saving references ..."); }\r
\r
- // save references\r
+ // save authors and references\r
getReferenceService().saveReferenceAll(refStore.objects());\r
+ getAgentService().saveAgentAll(authorStore.objects());\r
\r
if(logger.isInfoEnabled()) { logger.info("End making references ..."); }\r
\r
private static final Logger logger = Logger.getLogger(FaunaEuropaeaTaxonImport.class);\r
\r
/* Max number of taxa to retrieve (for test purposes) */\r
- private int maxTaxa = 5000;\r
+ private int maxTaxa = 0;\r
/* Max number of taxa to be saved with one service call */\r
private int limit = 10000; // TODO: Make configurable\r
/* Interval for progress info message when retrieving taxa */\r
" WHERE (1=1)" +\r
validClause;\r
\r
- if (logger.isInfoEnabled()) {\r
- logger.info("Query: " + strQuery);\r
+ if (logger.isDebugEnabled()) {\r
+ logger.debug("Query: " + strQuery);\r
}\r
rs = source.getResultSet(strQuery);\r
\r
TaxonBase<?> taxonBase = taxonStore.get(id);\r
FaunaEuropaeaTaxon fauEuTaxon = fauEuTaxonMap.get(id);\r
\r
- if (logger.isInfoEnabled()) { logger.info("Taxon # " + id); }\r
+ if (logger.isDebugEnabled()) { logger.debug("Taxon # " + id); }\r
String nameString = calculateTaxonName(fauEuTaxon, taxonBase, taxonStore, fauEuTaxonMap);\r
// String nameString = calculateTaxonName(fauEuTaxon, taxonBase, taxonStore);\r
- setTaxonName(nameString, fauEuTaxon, taxonBase);\r
+ setTaxonName(nameString, fauEuTaxon, taxonBase, fauEuConfig);\r
\r
}\r
return success; \r
subString = nameString.substring(0, index);\r
}\r
return subString;\r
- \r
-// String[] tokens = nameString.split("[\\s]+");\r
-// StringBuilder stringBuilder = \r
-// int len = tokens.length - 1;\r
-// for (int i = 0; i < len - 1; i++) {\r
-// String lastToken = tokens[len];\r
-// }\r
-// return lastToken;\r
- }\r
- \r
- \r
- /* Remove last part of name */\r
- private String exchangeEpithet(String nameString) {\r
- \r
- String subString = nameString;\r
- int index = nameString.lastIndexOf(" ");\r
- if (index > 0) {\r
- subString = nameString.substring(0, index);\r
- }\r
- return subString;\r
- \r
-// String[] tokens = nameString.split("[\\s]+");\r
-// StringBuilder stringBuilder = \r
-// int len = tokens.length - 1;\r
-// for (int i = 0; i < len - 1; i++) {\r
-// String lastToken = tokens[len];\r
-// }\r
-// return lastToken;\r
}\r
\r
\r
parentConcatStringBuilder.append(concatString);\r
parentConcatString = parentConcatStringBuilder.toString();\r
\r
- if (logger.isInfoEnabled()) { \r
- logger.info("Concatenated name: " + parentConcatString); \r
+ if (logger.isDebugEnabled()) { \r
+ logger.debug("Concatenated name: " + parentConcatString); \r
}\r
} else {\r
logger.warn("Parent uuid of " + parentId + " is null");\r
\r
int rank = fauEuTaxon.getRankId();\r
\r
- if(logger.isInfoEnabled()) { \r
- logger.info("Local taxon name (rank = " + rank + "): " + localString); \r
+ if(logger.isDebugEnabled()) { \r
+ logger.debug("Local taxon name (rank = " + rank + "): " + localString); \r
}\r
\r
callCount = 0;\r
\r
/* Build taxon name */\r
private boolean setTaxonName(String concatString, FaunaEuropaeaTaxon fauEuTaxon,\r
- TaxonBase<?> taxonBase) {\r
+ TaxonBase<?> taxonBase, FaunaEuropaeaImportConfigurator fauEuConfig) {\r
\r
boolean success = true;\r
\r
String titleCache = buildNameTitleCache(concatString, fauEuTaxon);\r
zooName.setTitleCache(titleCache);\r
zooName.setFullTitleCache(titleCache); // TODO: Add reference, NC status\r
+ \r
+ ImportHelper.setOriginalSource(taxonName, fauEuConfig.getSourceReference(), \r
+ fauEuTaxon.getId(), "TaxonName");\r
\r
// Set the complete scientific name in FaunaEuropaeaTaxon,\r
// including parent(s) parts.\r
// fauEuTaxon.setScientificName(concatString);\r
fauEuTaxon.setNameComplete(true);\r
\r
- if (logger.isInfoEnabled()) { \r
- logger.info("Name stored: " + concatString); \r
+ if (logger.isDebugEnabled()) { \r
+ logger.debug("Name stored: " + concatString); \r
}\r
return success;\r
}\r