Revision bff8d9fe
Added by Andreas Müller over 5 years ago
cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/erms/ErmsVernacularImport.java | ||
---|---|---|
1 | 1 |
/** |
2 | 2 |
* Copyright (C) 2007 EDIT |
3 |
* European Distributed Institute of Taxonomy
|
|
3 |
* European Distributed Institute of Taxonomy |
|
4 | 4 |
* http://www.e-taxonomy.eu |
5 |
*
|
|
5 |
* |
|
6 | 6 |
* The contents of this file are subject to the Mozilla Public License Version 1.1 |
7 | 7 |
* See LICENSE.TXT at the top of this package for the full license terms. |
8 | 8 |
*/ |
... | ... | |
34 | 34 |
import eu.etaxonomy.cdm.model.description.CommonTaxonName; |
35 | 35 |
import eu.etaxonomy.cdm.model.taxon.TaxonBase; |
36 | 36 |
|
37 |
|
|
38 | 37 |
/** |
39 | 38 |
* @author a.mueller |
40 | 39 |
* @since 20.02.2010 |
41 | 40 |
*/ |
42 | 41 |
@Component |
43 | 42 |
public class ErmsVernacularImport extends ErmsImportBase<CommonTaxonName> { |
44 |
@SuppressWarnings("unused") |
|
43 |
|
|
44 |
private static final long serialVersionUID = -5928250782824234181L; |
|
45 |
|
|
45 | 46 |
private static final Logger logger = Logger.getLogger(ErmsVernacularImport.class); |
46 | 47 |
|
47 | 48 |
private DbImportMapping<ErmsImportState, ErmsImportConfigurator> mapping; |
48 |
private ErmsImportState state; //import instance is never used more than once for Erms ; dirty |
|
49 |
|
|
50 |
|
|
49 |
// private ErmsImportState state; //import instance is never used more than once for Erms ; dirty |
|
50 |
|
|
51 | 51 |
private static final String pluralString = "vernaculars"; |
52 | 52 |
private static final String dbTableName = "vernaculars"; |
53 | 53 |
private static final Class<?> cdmTargetClass = CommonTaxonName.class; |
... | ... | |
58 | 58 |
|
59 | 59 |
@Override |
60 | 60 |
protected String getRecordQuery(ErmsImportConfigurator config) { |
61 |
String strRecordQuery =
|
|
62 |
" SELECT vernaculars.*, tu.tu_acctaxon, tu.id " +
|
|
61 |
String strRecordQuery = |
|
62 |
" SELECT vernaculars.*, tu.tu_acctaxon, tu.id " + |
|
63 | 63 |
" FROM vernaculars INNER JOIN tu ON vernaculars.tu_id = tu.id " + |
64 | 64 |
" WHERE ( vernaculars.id IN (" + ID_LIST_TOKEN + ") )"; |
65 | 65 |
return strRecordQuery; |
... | ... | |
69 | 69 |
protected DbImportMapping<ErmsImportState, ErmsImportConfigurator> getMapping() { |
70 | 70 |
if (mapping == null){ |
71 | 71 |
mapping = new DbImportMapping<ErmsImportState, ErmsImportConfigurator>(); |
72 |
|
|
73 |
mapping.addMapper(DbImportCommonNameCreationMapper.NewInstance("id", VERNACULAR_NAMESPACE, "tu_id", ErmsTaxonImport.TAXON_NAMESPACE));
|
|
74 |
|
|
72 |
|
|
73 |
mapping.addMapper(DbImportCommonNameCreationMapper.NewInstance("id", VERNACULAR_NAMESPACE, "tu_id", ErmsImportBase.TAXON_NAMESPACE));
|
|
74 |
|
|
75 | 75 |
mapping.addMapper(DbImportObjectMapper.NewInstance("lan_id", "language", LANGUAGE_NAMESPACE)); |
76 | 76 |
mapping.addMapper(DbImportStringMapper.NewInstance("vername", "name")); |
77 | 77 |
mapping.addMapper(DbImportAnnotationMapper.NewInstance("note", AnnotationType.EDITORIAL(), Language.DEFAULT())); |
... | ... | |
81 | 81 |
|
82 | 82 |
@Override |
83 | 83 |
protected void doInvoke(ErmsImportState state) { |
84 |
this.state = state; |
|
85 | 84 |
super.doInvoke(state); |
86 | 85 |
} |
87 |
|
|
86 |
|
|
88 | 87 |
@Override |
89 | 88 |
public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs, ErmsImportState state) { |
90 | 89 |
String nameSpace; |
91 | 90 |
Class<?> cdmClass; |
92 | 91 |
Set<String> idSet; |
93 |
Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>();
|
|
94 |
|
|
92 |
Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<>(); |
|
93 |
|
|
95 | 94 |
try{ |
96 |
Set<String> taxonIdSet = new HashSet<String>();
|
|
97 |
Set<String> languageIdSet = new HashSet<String>();
|
|
95 |
Set<String> taxonIdSet = new HashSet<>(); |
|
96 |
Set<String> languageIdSet = new HashSet<>(); |
|
98 | 97 |
while (rs.next()){ |
99 | 98 |
handleForeignKey(rs, taxonIdSet, "tu_id"); |
100 | 99 |
handleForeignKey(rs, languageIdSet, "lan_id"); |
101 | 100 |
} |
102 |
|
|
101 |
|
|
103 | 102 |
//taxon map |
104 |
nameSpace = ErmsTaxonImport.TAXON_NAMESPACE;
|
|
103 |
nameSpace = ErmsImportBase.TAXON_NAMESPACE;
|
|
105 | 104 |
cdmClass = TaxonBase.class; |
106 | 105 |
idSet = taxonIdSet; |
107 |
Map<String, TaxonBase<?>> taxonMap = (Map<String, TaxonBase<?>>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace); |
|
106 |
@SuppressWarnings("unchecked") |
|
107 |
Map<String, TaxonBase<?>> taxonMap = (Map<String, TaxonBase<?>>)getCommonService().getSourcedObjectsByIdInSource(cdmClass, idSet, nameSpace); |
|
108 | 108 |
result.put(nameSpace, taxonMap); |
109 |
|
|
109 |
|
|
110 | 110 |
//language map |
111 | 111 |
nameSpace = LANGUAGE_NAMESPACE; |
112 |
Map<String, Language> languageMap = new HashMap<String, Language>();
|
|
112 |
Map<String, Language> languageMap = new HashMap<>(); |
|
113 | 113 |
ErmsTransformer transformer = new ErmsTransformer(); |
114 | 114 |
for (String lanAbbrev: languageIdSet){ |
115 | 115 |
Language language = null; |
... | ... | |
119 | 119 |
UUID uuidLang = transformer.getLanguageUuid(lanAbbrev); |
120 | 120 |
if (uuidLang != null){ |
121 | 121 |
language = getLanguage(state, uuidLang, lanAbbrev, lanAbbrev, lanAbbrev); |
122 |
|
|
122 |
|
|
123 | 123 |
} |
124 | 124 |
if (language == null || language.equals(Language.UNDETERMINED() )){ |
125 | 125 |
logger.warn("Langauge undefined: " + lanAbbrev); |
126 | 126 |
} |
127 | 127 |
} |
128 |
|
|
128 |
|
|
129 | 129 |
} catch (IllegalArgumentException e) { |
130 | 130 |
e.printStackTrace(); |
131 | 131 |
} catch (UndefinedTransformerMethodException e) { |
... | ... | |
134 | 134 |
languageMap.put(lanAbbrev, language); |
135 | 135 |
} |
136 | 136 |
result.put(nameSpace, languageMap); |
137 |
|
|
137 |
|
|
138 | 138 |
} catch (SQLException e) { |
139 | 139 |
throw new RuntimeException(e); |
140 | 140 |
} |
141 | 141 |
return result; |
142 | 142 |
} |
143 |
|
|
143 |
|
|
144 | 144 |
@Override |
145 | 145 |
protected boolean doCheck(ErmsImportState state){ |
146 | 146 |
IOValidator<ErmsImportState> validator = new ErmsVernacularImportValidator(); |
147 | 147 |
return validator.validate(state); |
148 | 148 |
} |
149 |
|
|
150 |
|
|
149 |
|
|
151 | 150 |
@Override |
152 | 151 |
protected boolean isIgnore(ErmsImportState state){ |
153 | 152 |
return ! state.getConfig().isDoVernaculars(); |
154 | 153 |
} |
155 |
|
|
156 | 154 |
} |
Also available in: Unified diff
ref #1444 cleanup erms import code