Revision 892efc69
Added by Andreas Kohlbecker almost 14 years ago
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelFactsImport.java | ||
---|---|---|
29 | 29 |
import eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer; |
30 | 30 |
import eu.etaxonomy.cdm.io.berlinModel.in.validation.BerlinModelFactsImportValidator; |
31 | 31 |
import eu.etaxonomy.cdm.io.common.IOValidator; |
32 |
import eu.etaxonomy.cdm.io.common.MapWrapper; |
|
33 | 32 |
import eu.etaxonomy.cdm.io.common.ResultSetPartitioner; |
34 | 33 |
import eu.etaxonomy.cdm.io.common.Source; |
35 | 34 |
import eu.etaxonomy.cdm.model.common.Annotation; |
... | ... | |
69 | 68 |
private static final String dbTableName = "Fact"; |
70 | 69 |
|
71 | 70 |
//FIXME don't use as class variable |
72 |
private MapWrapper<Feature> featureMap;
|
|
71 |
private Map<Integer, Feature> featureMap;
|
|
73 | 72 |
|
74 | 73 |
public BerlinModelFactsImport(){ |
75 | 74 |
super(); |
... | ... | |
88 | 87 |
} |
89 | 88 |
} |
90 | 89 |
|
91 |
private MapWrapper<Feature> invokeFactCategories(BerlinModelImportConfigurator bmiConfig){
|
|
90 |
private Map<Integer, Feature> invokeFactCategories(BerlinModelImportConfigurator bmiConfig){
|
|
92 | 91 |
|
93 |
MapWrapper<Feature> result = bmiConfig.getFeatureMap();
|
|
92 |
Map<Integer, Feature> result = bmiConfig.getFeatureMap();
|
|
94 | 93 |
Source source = bmiConfig.getSource(); |
95 | 94 |
|
96 | 95 |
try { |
... | ... | |
131 | 130 |
|
132 | 131 |
result.put(factCategoryId, feature); |
133 | 132 |
} |
134 |
Collection<Feature> col = result.getAllValues();
|
|
133 |
Collection<Feature> col = result.values();
|
|
135 | 134 |
getTermService().save((Collection)col); |
136 | 135 |
return result; |
137 | 136 |
} catch (SQLException e) { |
... | ... | |
149 | 148 |
featureMap = invokeFactCategories(state.getConfig()); |
150 | 149 |
return super.doInvoke(state); |
151 | 150 |
} |
152 |
|
|
151 |
|
|
153 | 152 |
|
154 | 153 |
/* (non-Javadoc) |
155 | 154 |
* @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getRecordQuery(eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator) |
156 | 155 |
*/ |
157 | 156 |
@Override |
158 | 157 |
protected String getRecordQuery(BerlinModelImportConfigurator config) { |
159 |
String strQuery = |
|
160 |
" SELECT Fact.*, PTaxon.RIdentifier as taxonId, RefDetail.Details " + |
|
161 |
" FROM Fact " + |
|
162 |
" INNER JOIN PTaxon ON Fact.PTNameFk = PTaxon.PTNameFk AND Fact.PTRefFk = PTaxon.PTRefFk " + |
|
163 |
" LEFT OUTER JOIN RefDetail ON Fact.FactRefDetailFk = RefDetail.RefDetailId AND Fact.FactRefFk = RefDetail.RefFk " + |
|
158 |
String strQuery =
|
|
159 |
" SELECT Fact.*, PTaxon.RIdentifier as taxonId, RefDetail.Details " +
|
|
160 |
" FROM Fact " +
|
|
161 |
" INNER JOIN PTaxon ON Fact.PTNameFk = PTaxon.PTNameFk AND Fact.PTRefFk = PTaxon.PTRefFk " +
|
|
162 |
" LEFT OUTER JOIN RefDetail ON Fact.FactRefDetailFk = RefDetail.RefDetailId AND Fact.FactRefFk = RefDetail.RefFk " +
|
|
164 | 163 |
" WHERE (FactId IN (" + ID_LIST_TOKEN + "))" + |
165 |
" ORDER By Sequence"; |
|
164 |
" ORDER By Sequence";
|
|
166 | 165 |
return strQuery; |
167 | 166 |
} |
168 | 167 |
|
... | ... | |
180 | 179 |
|
181 | 180 |
ResultSet rs = partitioner.getResultSet(); |
182 | 181 |
|
183 |
ReferenceBase<?> sourceRef = state.getConfig().getSourceReference(); |
|
184 |
|
|
182 |
ReferenceBase<?> sourceRef = state.getConfig().getSourceReference();
|
|
183 |
|
|
185 | 184 |
try{ |
186 | 185 |
int i = 0; |
187 | 186 |
//for each fact |
... | ... | |
240 | 239 |
} |
241 | 240 |
if (taxonDescription == null){ |
242 | 241 |
taxonDescription = TaxonDescription.NewInstance(); |
243 |
taxonDescription.setTitleCache(sourceRef == null ? null : sourceRef.getTitleCache()); |
|
242 |
taxonDescription.setTitleCache(sourceRef == null ? null : sourceRef.getTitleCache(), true);
|
|
244 | 243 |
taxon.addDescription(taxonDescription); |
245 | 244 |
} |
246 | 245 |
} |
... | ... | |
277 | 276 |
|
278 | 277 |
//for diptera database |
279 | 278 |
if (categoryFk == 99 && notes.contains("<OriginalName>")){ |
280 |
notes = notes.replaceAll("<OriginalName>", ""); |
|
281 |
notes = notes.replaceAll("</OriginalName>", ""); |
|
279 |
// notes = notes.replaceAll("<OriginalName>", "");
|
|
280 |
// notes = notes.replaceAll("</OriginalName>", "");
|
|
282 | 281 |
fact = notes + ": " + fact ; |
283 | 282 |
} |
284 | 283 |
//TODO textData.putText(fact, bmiConfig.getFactLanguage()); //doesn't work because bmiConfig.getFactLanguage() is not not a persistent Language Object |
... | ... | |
297 | 296 |
if (factRefFkObj != null){ |
298 | 297 |
citation = getReferenceOnlyFromMaps( |
299 | 298 |
biblioRefMap, nomRefMap, factRefFk); |
300 |
} |
|
299 |
}
|
|
301 | 300 |
if (citation == null && (factRefFkObj != null)){ |
302 |
logger.warn("Citation not found in referenceMap: " + factRefFk); |
|
301 |
logger.warn("Citation not found in referenceMap: " + factRefFk);
|
|
303 | 302 |
success = false; |
304 |
} |
|
303 |
}
|
|
305 | 304 |
if (citation != null || CdmUtils.isNotEmpty(details)){ |
306 | 305 |
DescriptionElementSource originalSource = DescriptionElementSource.NewInstance(); |
307 | 306 |
originalSource.setCitation(citation); |
... | ... | |
373 | 372 |
Class cdmClass; |
374 | 373 |
Set<String> idSet; |
375 | 374 |
Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>(); |
376 |
|
|
375 |
|
|
377 | 376 |
try{ |
378 | 377 |
Set<String> taxonIdSet = new HashSet<String>(); |
379 | 378 |
Set<String> referenceIdSet = new HashSet<String>(); |
... | ... | |
384 | 383 |
handleForeignKey(rs, referenceIdSet, "PTDesignationRefFk"); |
385 | 384 |
handleForeignKey(rs, refDetailIdSet, "FactRefDetailFk"); |
386 | 385 |
handleForeignKey(rs, refDetailIdSet, "PTDesignationRefDetailFk"); |
387 |
}
|
|
386 |
} |
|
388 | 387 |
|
389 | 388 |
//taxon map |
390 | 389 |
nameSpace = BerlinModelTaxonImport.NAMESPACE; |
... | ... | |
424 | 423 |
|
425 | 424 |
} catch (SQLException e) { |
426 | 425 |
throw new RuntimeException(e); |
427 |
}
|
|
426 |
} |
|
428 | 427 |
return result; |
429 | 428 |
} |
430 | 429 |
|
... | ... | |
453 | 452 |
imageMetaData.readMetaData(url.toURI(), 0); |
454 | 453 |
} |
455 | 454 |
catch(URISyntaxException e){ |
456 |
e.printStackTrace(); |
|
455 |
logger.error("URISyntaxException reading image metadata." , e); |
|
456 |
} catch (IOException e) { |
|
457 |
logger.error("IOError reading image metadata." , e); |
|
457 | 458 |
} |
458 |
|
|
459 | 459 |
MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance(imageMetaData.getMimeType(), null); |
460 | 460 |
media.addRepresentation(mediaRepresentation); |
461 | 461 |
ImageFile image = ImageFile.NewInstance(uri, size, imageMetaData); |
... | ... | |
475 | 475 |
|
476 | 476 |
} |
477 | 477 |
|
478 |
private Feature getFeature(MapWrapper<Feature> featureMap, Object categoryFkObj, Integer categoryFk){
|
|
478 |
private Feature getFeature(Map<Integer, Feature> featureMap, Object categoryFkObj, Integer categoryFk){
|
|
479 | 479 |
if (categoryFkObj != null){ |
480 | 480 |
return featureMap.get(categoryFk); |
481 | 481 |
}else{ |
... | ... | |
493 | 493 |
IOValidator<BerlinModelImportState> validator = new BerlinModelFactsImportValidator(); |
494 | 494 |
return validator.validate(state); |
495 | 495 |
} |
496 |
|
|
496 |
|
|
497 | 497 |
/* (non-Javadoc) |
498 | 498 |
* @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getTableName() |
499 | 499 |
*/ |
500 | 500 |
@Override |
501 | 501 |
protected String getTableName() { |
502 | 502 |
return dbTableName; |
503 |
} |
|
503 |
}
|
|
504 | 504 |
|
505 | 505 |
/* (non-Javadoc) |
506 | 506 |
* @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getPluralString() |
... | ... | |
508 | 508 |
@Override |
509 | 509 |
public String getPluralString() { |
510 | 510 |
return pluralString; |
511 |
} |
|
511 |
}
|
|
512 | 512 |
|
513 | 513 |
/* (non-Javadoc) |
514 | 514 |
* @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator) |
Also available in: Unified diff
merging /branches/cdmlib/SPRINT-Chichorieae1/ to trunk