58 |
58 |
*/
|
59 |
59 |
@Component
|
60 |
60 |
public class BerlinModelCommonNamesImport extends BerlinModelImportBase {
|
61 |
|
private static final Logger logger = Logger.getLogger(BerlinModelCommonNamesImport.class);
|
|
61 |
private static final long serialVersionUID = -8921948187177864321L;
|
|
62 |
|
|
63 |
private static final Logger logger = Logger.getLogger(BerlinModelCommonNamesImport.class);
|
62 |
64 |
|
63 |
65 |
public static final UUID REFERENCE_LANGUAGE_ISO639_2_UUID = UUID.fromString("40c4f8dd-3d9c-44a4-b77a-76e137a89a5f");
|
64 |
66 |
public static final UUID REFERENCE_LANGUAGE_STRING_UUID = UUID.fromString("2a1b678f-c27d-48c1-b43e-98fd0d426305");
|
... | ... | |
72 |
74 |
|
73 |
75 |
|
74 |
76 |
//map that stores the regions (named areas) and makes them accessible via the regionFk
|
75 |
|
private Map<String, NamedArea> regionMap = new HashMap<String, NamedArea>();
|
|
77 |
private Map<String, NamedArea> regionMap = new HashMap<>();
|
76 |
78 |
|
77 |
79 |
public BerlinModelCommonNamesImport(){
|
78 |
80 |
super(dbTableName, pluralString);
|
... | ... | |
81 |
83 |
@Override
|
82 |
84 |
protected String getIdQuery(BerlinModelImportState state) {
|
83 |
85 |
String result = " SELECT CommonNameId FROM emCommonName WHERE (1=1) ";
|
84 |
|
if (StringUtils.isNotBlank(state.getConfig().getCommonNameFilter())){
|
|
86 |
if (isNotBlank(state.getConfig().getCommonNameFilter())){
|
85 |
87 |
result += " AND " + state.getConfig().getCommonNameFilter();
|
86 |
88 |
}
|
87 |
89 |
|
... | ... | |
129 |
131 |
*/
|
130 |
132 |
private void makeRegions(BerlinModelImportState state) {
|
131 |
133 |
try {
|
132 |
|
SortedSet<Integer> regionFks = new TreeSet<Integer>();
|
|
134 |
SortedSet<Integer> regionFks = new TreeSet<>();
|
133 |
135 |
Source source = state.getConfig().getSource();
|
134 |
136 |
|
135 |
137 |
//fill set with all regionFk from emCommonName.regionFks
|
... | ... | |
160 |
162 |
boolean success = true ;
|
161 |
163 |
|
162 |
164 |
Set<TaxonBase> taxaToSave = new HashSet<>();
|
163 |
|
Map<String, Taxon> taxonMap = partitioner.getObjectMap(BerlinModelTaxonImport.NAMESPACE);
|
164 |
|
Map<String, TaxonName> taxonNameMap = partitioner.getObjectMap(BerlinModelTaxonNameImport.NAMESPACE);
|
165 |
|
|
166 |
|
Map<String, Reference> refMap = partitioner.getObjectMap(BerlinModelReferenceImport.REFERENCE_NAMESPACE);
|
|
165 |
@SuppressWarnings("unchecked")
|
|
166 |
Map<String, Taxon> taxonMap = partitioner.getObjectMap(BerlinModelTaxonImport.NAMESPACE);
|
|
167 |
@SuppressWarnings("unchecked")
|
|
168 |
Map<String, TaxonName> taxonNameMap = partitioner.getObjectMap(BerlinModelTaxonNameImport.NAMESPACE);
|
|
169 |
@SuppressWarnings("unchecked")
|
|
170 |
Map<String, Reference> refMap = partitioner.getObjectMap(BerlinModelReferenceImport.REFERENCE_NAMESPACE);
|
167 |
171 |
|
168 |
|
Map<String, Language> iso6392Map = new HashMap<String, Language>();
|
|
172 |
Map<String, Language> iso6392Map = new HashMap<>();
|
169 |
173 |
|
170 |
174 |
// logger.warn("MisappliedNameRefFk not yet implemented for Common Names");
|
171 |
175 |
|
... | ... | |
231 |
235 |
regionFk = regionFk.trim();
|
232 |
236 |
NamedArea area = regionMap.get(regionFk);
|
233 |
237 |
if (area == null){
|
234 |
|
if (regionFkSplit.length > 1 && StringUtils.isNotBlank(regionFk)){
|
|
238 |
if (regionFkSplit.length > 1 && isNotBlank(regionFk)){
|
235 |
239 |
logger.warn("Area for " + regionFk + " not defined in regionMap.");
|
236 |
240 |
}else{
|
237 |
241 |
//no region is defined
|
... | ... | |
507 |
511 |
}else if (splitRegion.length == 2){
|
508 |
512 |
String emCode = splitRegion[1].trim();
|
509 |
513 |
String tdwgCode = emTdwgMap.get(emCode);
|
510 |
|
if (StringUtils.isNotBlank(tdwgCode) ){
|
|
514 |
if (isNotBlank(tdwgCode) ){
|
511 |
515 |
NamedArea tdwgArea = getNamedArea(state, tdwgCode);
|
512 |
516 |
regionMap.put(String.valueOf(regionId), tdwgArea);
|
513 |
517 |
}else {
|
... | ... | |
575 |
579 |
private Map<String, String> getEmTdwgMap(Source source) throws SQLException {
|
576 |
580 |
String sql;
|
577 |
581 |
ResultSet rs;
|
578 |
|
Map<String, String> emTdwgMap = new HashMap<String, String>();
|
|
582 |
Map<String, String> emTdwgMap = new HashMap<>();
|
579 |
583 |
sql = " SELECT EmCode, TDWGCode FROM emArea ";
|
580 |
584 |
rs = source.getResultSet(sql);
|
581 |
585 |
while (rs.next()){
|
582 |
586 |
String emCode = rs.getString("EMCode");
|
583 |
587 |
String TDWGCode = rs.getString("TDWGCode");
|
584 |
|
if (StringUtils.isNotBlank(emCode) ){
|
|
588 |
if (isNotBlank(emCode) ){
|
585 |
589 |
emCode = emCode.trim();
|
586 |
590 |
if (emCode.equalsIgnoreCase("Ab") || emCode.equalsIgnoreCase("Rf")||
|
587 |
591 |
emCode.equalsIgnoreCase("Uk") || emCode.equalsIgnoreCase("Gg")){
|
588 |
592 |
emTdwgMap.put(emCode, emCode);
|
589 |
|
}else if (StringUtils.isNotBlank(TDWGCode)){
|
|
593 |
}else if (isNotBlank(TDWGCode)){
|
590 |
594 |
emTdwgMap.put(emCode, TDWGCode.trim());
|
591 |
595 |
}
|
592 |
596 |
}
|
... | ... | |
646 |
650 |
nameSpace = BerlinModelTaxonNameImport.NAMESPACE;
|
647 |
651 |
cdmClass = TaxonName.class;
|
648 |
652 |
idSet = nameIdSet;
|
649 |
|
Map<String, TaxonName> nameMap = (Map<String, TaxonName>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);
|
|
653 |
@SuppressWarnings("unchecked")
|
|
654 |
Map<String, TaxonName> nameMap = (Map<String, TaxonName>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);
|
650 |
655 |
result.put(nameSpace, nameMap);
|
651 |
656 |
|
652 |
657 |
//taxon map
|
653 |
658 |
nameSpace = BerlinModelTaxonImport.NAMESPACE;
|
654 |
659 |
cdmClass = TaxonBase.class;
|
655 |
660 |
idSet = taxonIdSet;
|
656 |
|
Map<String, TaxonBase<?>> taxonMap = (Map<String, TaxonBase<?>>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);
|
|
661 |
@SuppressWarnings("unchecked")
|
|
662 |
Map<String, TaxonBase<?>> taxonMap = (Map<String, TaxonBase<?>>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);
|
657 |
663 |
result.put(nameSpace, taxonMap);
|
658 |
664 |
|
659 |
665 |
//reference map
|
660 |
666 |
nameSpace = BerlinModelReferenceImport.REFERENCE_NAMESPACE;
|
661 |
667 |
cdmClass = Reference.class;
|
662 |
668 |
idSet = referenceIdSet;
|
663 |
|
Map<String, Reference> referenceMap = (Map<String, Reference>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);
|
|
669 |
@SuppressWarnings("unchecked")
|
|
670 |
Map<String, Reference> referenceMap = (Map<String, Reference>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace);
|
664 |
671 |
result.put(nameSpace, referenceMap);
|
665 |
672 |
// TODO remove if problem with duplicate DescElement_Annot id is solved
|
666 |
673 |
} catch (SQLException e) {
|
cleanup