2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.cdm
.io
.mexico
;
11 import java
.sql
.ResultSet
;
12 import java
.sql
.SQLException
;
13 import java
.util
.HashMap
;
14 import java
.util
.HashSet
;
18 import org
.apache
.log4j
.Logger
;
19 import org
.springframework
.stereotype
.Component
;
21 import eu
.etaxonomy
.cdm
.io
.berlinModel
.in
.BerlinModelReferenceImport
;
22 import eu
.etaxonomy
.cdm
.io
.berlinModel
.in
.BerlinModelTaxonNameImport
;
23 import eu
.etaxonomy
.cdm
.io
.common
.ResultSetPartitioner
;
24 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
25 import eu
.etaxonomy
.cdm
.model
.description
.CommonTaxonName
;
26 import eu
.etaxonomy
.cdm
.model
.description
.DescriptionElementSource
;
27 import eu
.etaxonomy
.cdm
.model
.name
.TaxonName
;
28 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
35 public class MexicoEfloraCommonNameRefImport
extends MexicoEfloraImportBase
{
37 private static final long serialVersionUID
= -1712022169834400067L;
38 private static final Logger logger
= Logger
.getLogger(MexicoEfloraCommonNameRefImport
.class);
40 protected static final String NAMESPACE
= "CommonNameRef";
42 private static final String pluralString
= "common name sources";
43 private static final String dbTableName
= "Eflora_RelBiblioNomComun";
45 public MexicoEfloraCommonNameRefImport(){
46 super(dbTableName
, pluralString
);
50 protected String
getIdQuery(MexicoEfloraImportState state
) {
51 String sql
= " SELECT IdCombinado "
52 + " FROM " + dbTableName
53 + " ORDER BY IdCombinado ";
58 protected String
getRecordQuery(MexicoEfloraImportConfigurator config
) {
59 String sqlSelect
= " SELECT * ";
60 String sqlFrom
= " FROM " + dbTableName
;
61 String sqlWhere
= " WHERE ( IdCombinado IN (" + ID_LIST_TOKEN
+ ") )";
63 String strRecordQuery
=sqlSelect
+ " " + sqlFrom
+ " " + sqlWhere
;
64 return strRecordQuery
;
68 public boolean doPartition(@SuppressWarnings("rawtypes") ResultSetPartitioner partitioner
, MexicoEfloraImportState state
) {
70 boolean success
= true ;
72 @SuppressWarnings("unchecked")
73 Map
<String
, CommonTaxonName
> commonNameMap
= partitioner
.getObjectMap(MexicoEfloraCommonNameImport
.NAMESPACE
);
75 @SuppressWarnings("unchecked")
77 Map
<String
, Reference
> referenceMap
= partitioner
.getObjectMap(MexicoEfloraRefArticlesImport
.NAMESPACE
);
79 ResultSet rs
= partitioner
.getResultSet();
83 // if ((i++ % modCount) == 0 && i!= 1 ){ logger.info("PTaxa handled: " + (i-1));}
85 //create TaxonName element
86 String idCombi
= rs
.getString("IdCombinado");
87 int idBibliografia
= rs
.getInt("IdBibliografia");
88 String observaciones
= rs
.getString("Observaciones");
90 // String idNomComun = rs.getString("IdNomComun");
93 CommonTaxonName commonName
= commonNameMap
.get(idCombi
);
95 Reference ref
= referenceMap
.get(String
.valueOf(idBibliografia
));
96 String detail
= state
.getRefDetailMap().get(idBibliografia
);
98 DescriptionElementSource source
= commonName
.addPrimaryTaxonomicSource(ref
, detail
);
100 TaxonName nameUsedInSource
= getNameUsedInSource(state
, observaciones
);
101 source
.setNameUsedInSource(nameUsedInSource
);
102 //TODO other observaciones
104 partitioner
.startDoSave();
105 } catch (Exception e
) {
106 logger
.warn("An exception (" +e
.getMessage()+") occurred when trying to create common name for id " + idCombi
+ ".");
110 } catch (Exception e
) {
111 logger
.error("SQLException:" + e
);
115 logger
.warn("Finished partition");
120 private TaxonName
getNameUsedInSource(MexicoEfloraImportState state
, String observaciones
) {
121 // TODO Auto-generated method stub
126 public Map
<Object
, Map
<String
, ?
extends CdmBase
>> getRelatedObjectsForPartition(ResultSet rs
, MexicoEfloraImportState state
) {
130 Map
<Object
, Map
<String
, ?
extends CdmBase
>> result
= new HashMap
<>();
133 Set
<String
> nameIdSet
= new HashSet
<>();
134 Set
<String
> referenceIdSet
= new HashSet
<>();
136 // handleForeignKey(rs, nameIdSet, "PTNameFk");
137 // handleForeignKey(rs, referenceIdSet, "PTRefFk");
141 nameSpace
= BerlinModelTaxonNameImport
.NAMESPACE
;
143 Map
<String
, TaxonName
> nameMap
= getCommonService().getSourcedObjectsByIdInSourceC(TaxonName
.class, idSet
, nameSpace
);
144 result
.put(nameSpace
, nameMap
);
147 nameSpace
= BerlinModelReferenceImport
.REFERENCE_NAMESPACE
;
148 idSet
= referenceIdSet
;
149 Map
<String
, Reference
> referenceMap
= getCommonService().getSourcedObjectsByIdInSourceC(Reference
.class, idSet
, nameSpace
);
150 result
.put(nameSpace
, referenceMap
);
152 } catch (SQLException e
) {
153 throw new RuntimeException(e
);
159 protected String
getTableName() {
164 public String
getPluralString() {
169 protected boolean doCheck(MexicoEfloraImportState state
){
174 protected boolean isIgnore(MexicoEfloraImportState state
){
175 return ! state
.getConfig().isDoTaxa();