Revision 8fb964f0
Added by Andreas Müller over 4 years ago
cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/indexFungorum/IndexFungorumGeneraImport.java | ||
---|---|---|
78 | 78 |
|
79 | 79 |
//Don't use (created bei Marc): DisplayName, NomRefCache |
80 | 80 |
|
81 |
Integer id =( (Number)rs.getObject("RECORD NUMBER")).intValue();
|
|
81 |
Integer id = rs.getInt("RECORD NUMBER");
|
|
82 | 82 |
|
83 | 83 |
String preferredName = rs.getString("NAME OF FUNGUS"); |
84 | 84 |
if (StringUtils.isBlank(preferredName)){ |
... | ... | |
96 | 96 |
//author + publication |
97 | 97 |
makeAuthorAndPublication(state, rs, name); |
98 | 98 |
//source |
99 |
//makeSource(state, taxon, id, NAMESPACE_GENERA ); |
|
100 |
// if (id != null){ |
|
101 |
makeSource(state, taxon, id.intValue(), NAMESPACE_GENERA ); |
|
102 |
// } else{ |
|
103 |
// makeSource(state, taxon, null,NAMESPACE_GENERA); |
|
104 |
// } |
|
99 |
makeSource(state, taxon, id.intValue(), NAMESPACE_GENERA ); |
|
100 |
|
|
105 | 101 |
getTaxonService().saveOrUpdate(taxon); |
106 | 102 |
} |
107 | 103 |
} catch (Exception e) { |
... | ... | |
153 | 149 |
} |
154 | 150 |
|
155 | 151 |
@Override |
156 |
public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs, IndexFungorumImportState state) { |
|
157 |
String nameSpace; |
|
158 |
// Class<?> cdmClass; |
|
159 |
// Set<String> idSet; |
|
160 |
Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<>(); |
|
152 |
public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition( |
|
153 |
ResultSet rs, IndexFungorumImportState state) { |
|
154 |
|
|
155 |
Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<>(); |
|
161 | 156 |
|
162 | 157 |
try{ |
163 |
// Set<String> taxonNameSet = new HashSet<>(); |
|
164 |
while (rs.next()){ |
|
165 |
// handleForeignKey(rs, taxonIdSet,"tu_accfinal" ); |
|
166 |
} |
|
167 | 158 |
|
168 | 159 |
//taxon map |
169 |
nameSpace = NAMESPACE_SUPRAGENERIC_NAMES ; |
|
170 |
// cdmClass = Taxon.class; |
|
171 |
// idSet = taxonNameSet; |
|
160 |
String nameSpace = NAMESPACE_SUPRAGENERIC_NAMES ; |
|
172 | 161 |
Map<String, TaxonBase<?>> taxonMap = new HashMap<>(); |
173 | 162 |
@SuppressWarnings("rawtypes") |
174 | 163 |
List<TaxonBase> list = getTaxonService().listTaxaByName(Taxon.class, "*", null, null, null, "*", null, 1000000, null, null); |
... | ... | |
183 | 172 |
referenceMap.put(SOURCE_REFERENCE, sourceReference); |
184 | 173 |
result.put(NAMESPACE_REFERENCE, referenceMap); |
185 | 174 |
|
186 |
} catch (SQLException e) {
|
|
175 |
} catch (Exception e) { |
|
187 | 176 |
throw new RuntimeException(e); |
188 | 177 |
} |
189 | 178 |
return result; |
cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/indexFungorum/IndexFungorumHigherClassificationImport.java | ||
---|---|---|
14 | 14 |
import java.util.HashMap; |
15 | 15 |
import java.util.List; |
16 | 16 |
import java.util.Map; |
17 |
import java.util.Set; |
|
18 | 17 |
|
19 | 18 |
import org.apache.log4j.Logger; |
20 | 19 |
import org.springframework.stereotype.Component; |
... | ... | |
167 | 166 |
} |
168 | 167 |
taxonFamily = makeTaxon(state, family, Rank.FAMILY()); |
169 | 168 |
if (taxonFamily != null){ |
170 |
try{
|
|
169 |
try{
|
|
171 | 170 |
//if this shows a warning see single issue in #2826 about Glomerellaceae (which has 2 different parents) |
172 | 171 |
getClassification(state).addParentChild(higherTaxon, taxonFamily, null, null); |
173 | 172 |
}catch(IllegalStateException e){ |
174 | 173 |
if (e.getMessage().startsWith("The child taxon is already part of the tree")){ |
175 |
//TaxonNode node = getClassification(state).getNode(taxonFamily); |
|
176 | 174 |
logger.warn(e.getMessage() + taxonFamily.getTitleCache() + " " + higherTaxon.getTitleCache()); |
177 | 175 |
} |
178 | 176 |
} |
... | ... | |
229 | 227 |
@Override |
230 | 228 |
public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs, IndexFungorumImportState state) { |
231 | 229 |
String nameSpace; |
232 |
Class<?> cdmClass; |
|
233 |
Set<String> idSet; |
|
234 | 230 |
Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<>(); |
235 | 231 |
|
236 | 232 |
try{ |
237 |
// Set<String> taxonNameSet = new HashSet<>(); |
|
238 |
// while (rs.next()){ |
|
239 |
// handleForeignKey(rs, taxonIdSet,"tu_accfinal" ); |
|
240 |
// } |
|
241 |
|
|
242 | 233 |
//taxon map |
243 | 234 |
nameSpace = IndexFungorumImportBase.NAMESPACE_SUPRAGENERIC_NAMES ; |
244 |
cdmClass = TaxonBase.class; |
|
245 |
// idSet = taxonNameSet; |
|
246 | 235 |
Map<String, TaxonBase<?>> taxonMap = new HashMap<>(); |
247 | 236 |
List<Taxon> list = getTaxonService().list(Taxon.class, null, null, null, null); |
248 | 237 |
for (Taxon taxon : list){ |
cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/indexFungorum/IndexFungorumImportBase.java | ||
---|---|---|
13 | 13 |
import java.sql.ResultSetMetaData; |
14 | 14 |
import java.sql.SQLException; |
15 | 15 |
import java.util.HashMap; |
16 |
import java.util.HashSet; |
|
17 | 16 |
import java.util.Map; |
18 | 17 |
import java.util.Set; |
19 | 18 |
import java.util.UUID; |
... | ... | |
52 | 51 |
* @author a.mueller |
53 | 52 |
* @since 27.02.2012 |
54 | 53 |
*/ |
55 |
public abstract class IndexFungorumImportBase extends CdmImportBase<IndexFungorumImportConfigurator, IndexFungorumImportState> implements ICdmIO<IndexFungorumImportState>, IPartitionedIO<IndexFungorumImportState> { |
|
54 |
public abstract class IndexFungorumImportBase |
|
55 |
extends CdmImportBase<IndexFungorumImportConfigurator, IndexFungorumImportState> |
|
56 |
implements ICdmIO<IndexFungorumImportState>, IPartitionedIO<IndexFungorumImportState> { |
|
56 | 57 |
|
57 | 58 |
private static final long serialVersionUID = -729872543287390949L; |
58 | 59 |
private static final Logger logger = Logger.getLogger(IndexFungorumImportBase.class); |
... | ... | |
105 | 106 |
|
106 | 107 |
@Override |
107 | 108 |
public boolean doPartition(@SuppressWarnings("rawtypes") ResultSetPartitioner partitioner, IndexFungorumImportState state) { |
108 |
|
|
109 |
boolean success = true ; |
|
110 |
Set<CdmBase> objectsToSave = new HashSet<>(); |
|
111 |
|
|
112 |
// DbImportMapping<?, ?> mapping = getMapping(); |
|
113 |
// mapping.initialize(state, cdmTargetClass); |
|
114 |
|
|
115 |
ResultSet rs = partitioner.getResultSet(); |
|
116 |
try{ |
|
117 |
while (rs.next()){ |
|
118 |
// success &= mapping.invoke(rs,objectsToSave); |
|
119 |
} |
|
120 |
} catch (SQLException e) { |
|
121 |
logger.error("SQLException:" + e); |
|
122 |
return false; |
|
123 |
} |
|
124 |
|
|
125 |
partitioner.startDoSave(); |
|
126 |
getCommonService().save(objectsToSave); |
|
127 |
return success; |
|
109 |
//should be overridden by subclasses if used |
|
110 |
return true; |
|
128 | 111 |
} |
129 | 112 |
|
130 | 113 |
protected abstract String getRecordQuery(IndexFungorumImportConfigurator config); |
... | ... | |
218 | 201 |
|
219 | 202 |
/** |
220 | 203 |
* Returns true if i is a multiple of recordsPerTransaction |
221 |
* @param i |
|
222 |
* @param recordsPerTransaction |
|
223 |
* @return |
|
224 | 204 |
*/ |
225 | 205 |
protected boolean loopNeedsHandling(int i, int recordsPerLoop) { |
226 | 206 |
startTransaction(); |
... | ... | |
316 | 296 |
} |
317 | 297 |
ref.setVolume(volume); |
318 | 298 |
|
319 |
//year //TODO why yearOfPubl 2x exact same value
|
|
299 |
//year |
|
320 | 300 |
String yearOfPubl = rs.getString("YEAR OF PUBLICATION"); |
321 | 301 |
String yearOnPubl = rs.getString("YEAR ON PUBLICATION"); |
322 | 302 |
String year = null; |
... | ... | |
330 | 310 |
ref.setDatePublished(TimePeriodParser.parseStringVerbatim(year)); |
331 | 311 |
} |
332 | 312 |
|
333 |
//preliminary, set protected titlecache as Generic Cache Generation with in references currently doesn't fully work yet
|
|
313 |
//TODO preliminary, set protected titlecache as generic cache generation with in-references currently doesn't fully work yet
|
|
334 | 314 |
String titleCache = CdmUtils.concat(", ", pubAuthorStr, title); |
335 |
if ( StringUtils.isNotBlank(pubAuthorStr)){
|
|
315 |
if (isNotBlank(pubAuthorStr)){ |
|
336 | 316 |
titleCache = "in " + titleCache; |
337 | 317 |
} |
338 | 318 |
titleCache = CdmUtils.concat(" ", titleCache, volume); |
cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/indexFungorum/IndexFungorumSpeciesImport.java | ||
---|---|---|
85 | 85 |
|
86 | 86 |
//DisplayName, NomRefCache -> don't use, created by Marc |
87 | 87 |
|
88 |
Integer id = (Integer)rs.getObject("PreferredNameIFnumber");
|
|
88 |
Integer id = rs.getInt("PreferredNameIFnumber");
|
|
89 | 89 |
String phylumName = rs.getString("Phylum name"); |
90 | 90 |
|
91 | 91 |
String preferredName = rs.getString("PreferredName"); |
... | ... | |
125 | 125 |
|
126 | 126 |
//save |
127 | 127 |
getTaxonService().saveOrUpdate(taxon); |
128 |
|
|
129 | 128 |
} |
130 | 129 |
} catch (Exception e) { |
131 | 130 |
e.printStackTrace(); |
cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/indexFungorum/IndexFungorumSubSpeciesImport.java | ||
---|---|---|
26 | 26 |
public class IndexFungorumSubSpeciesImport extends IndexFungorumImportBase { |
27 | 27 |
|
28 | 28 |
private static final long serialVersionUID = -2877755674188760685L; |
29 |
private static final Logger logger = Logger.getLogger(IndexFungorumSpeciesImport.class); |
|
29 |
private static final Logger logger = Logger.getLogger(IndexFungorumSubSpeciesImport.class);
|
|
30 | 30 |
|
31 | 31 |
private static final String pluralString = "subSpecies"; |
32 | 32 |
|
... | ... | |
64 | 64 |
|
65 | 65 |
TaxonName name = infraspecificTaxon.getName(); |
66 | 66 |
|
67 |
// getNameService().saveOrUpdate(name); |
|
68 | 67 |
String parentNameString = getParentNameInfraSpecific(name); |
69 |
// System.out.println("Parent name string: " + parentNameString); |
|
70 | 68 |
MatchingTaxonConfigurator matchingConfig = new MatchingTaxonConfigurator(); |
71 | 69 |
matchingConfig.setTaxonNameTitle(parentNameString); |
72 | 70 |
|
cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/indexFungorum/IndexFungorumSupraGeneraImport.java | ||
---|---|---|
50 | 50 |
String strRecordQuery = |
51 | 51 |
" SELECT * " + |
52 | 52 |
" FROM [tblSupragenericNames] " + |
53 |
// " WHERE ( dr.id IN (" + ID_LIST_TOKEN + ") )"; |
|
54 | 53 |
""; |
55 | 54 |
return strRecordQuery; |
56 | 55 |
} |
... | ... | |
59 | 58 |
protected void doInvoke(IndexFungorumImportState state) { |
60 | 59 |
|
61 | 60 |
logger.info("Start supra genera ..."); |
62 |
//handle source reference first |
|
61 |
|
|
62 |
//handle source reference first |
|
63 | 63 |
Reference sourceReference = state.getConfig().getSourceReference(); |
64 | 64 |
getReferenceService().save(sourceReference); |
65 | 65 |
|
... | ... | |
77 | 77 |
|
78 | 78 |
//Don't use (created by Marc): DisplayName, NomRefCache |
79 | 79 |
|
80 |
Integer id = ((Number)rs.getObject(COL_RECORD_NUMBER)).intValue();
|
|
80 |
Integer id = rs.getInt(COL_RECORD_NUMBER);
|
|
81 | 81 |
|
82 | 82 |
String supragenericNames = rs.getString(SUPRAGENERIC_NAMES); |
83 |
//String preferredName = rs.getString("PreferredName"); |
|
84 | 83 |
Integer rankFk = rs.getInt("PESI_RankFk"); |
85 | 84 |
|
86 | 85 |
//name |
87 | 86 |
Rank rank = state.getTransformer().getRankByKey(String.valueOf(rankFk)); |
88 | 87 |
TaxonName name = TaxonNameFactory.NewBotanicalInstance(rank); |
89 | 88 |
name.setGenusOrUninomial(supragenericNames); |
90 |
/*if (preferredName != null && !preferredName.equals(supragenericNames)){ |
|
91 |
logger.warn("Suprageneric names and preferredName is not equal. This case is not yet handled by IF import. I take SupragenericNames for import. RECORD NUMBER" +id); |
|
92 |
}*/ |
|
93 | 89 |
|
94 | 90 |
//taxon |
95 | 91 |
Taxon taxon = Taxon.NewInstance(name, sourceReference); |
96 | 92 |
//author + nom.ref. |
97 | 93 |
makeAuthorAndPublication(state, rs, name); |
98 | 94 |
//source |
99 |
// if (id != null){ |
|
100 |
makeSource(state, taxon, id.intValue(), NAMESPACE_SUPRAGENERIC_NAMES ); |
|
101 |
// } else{ |
|
102 |
// makeSource(state, taxon, null, NAMESPACE_SUPRAGENERIC_NAMES); |
|
103 |
// } |
|
95 |
makeSource(state, taxon, id, NAMESPACE_SUPRAGENERIC_NAMES ); |
|
96 |
|
|
104 | 97 |
getTaxonService().saveOrUpdate(taxon); |
105 | 98 |
} |
106 | 99 |
} catch (Exception e) { |
Also available in: Unified diff
ref #2826 cleanup