Project

General

Profile

« Previous | Next » 

Revision 9d685c8f

Added by Andreas Müller over 4 years ago

ref 5448 latest changes to Geaessplanzenimport Excel

View differences:

app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/gefaesspflanzen/excel/RedListGefaesspflanzenTaxonExcelImport.java
25 25
import eu.etaxonomy.cdm.model.common.Language;
26 26
import eu.etaxonomy.cdm.model.name.IBotanicalName;
27 27
import eu.etaxonomy.cdm.model.name.Rank;
28
import eu.etaxonomy.cdm.model.name.TaxonName;
28 29
import eu.etaxonomy.cdm.model.name.TaxonNameFactory;
29 30
import eu.etaxonomy.cdm.model.reference.Reference;
30 31
import eu.etaxonomy.cdm.model.taxon.Classification;
......
156 157
        }
157 158

  
158 159

  
159

  
160 160
        nameStr = CdmUtils.concat(" ", nameStr, authorStr);
161 161
        boolean isAuct = nameStr.endsWith("auct.");
162
        boolean isGrex = nameStr.contains(" grex ");
163
        boolean isSublusus = nameStr.contains(" sublusus ");
164 162
        nameStr = normalizeNameStr(nameStr);
165
        boolean isRankLessInfraSpec = nameStr.matches("[A-Z][a-z]+ [a-z]+ \\[ranglos\\]+ [a-z]+ .*");
166
        boolean isRankLessInfraGeneric = nameStr.matches("[A-Z][a-z]+ \\[ranglos\\]+ [A-Z][a-z]+ .*");
167
        if (isRankLessInfraSpec){
168
            nameStr.replace(" [ranglos] ", " subsp. ");
169
        }else if (isRankLessInfraGeneric){
170
            nameStr.replace(" [ranglos] ", " subg. ");
171
        }
172 163

  
173 164
        Rank rank = Rank.SPECIES();
174 165
        IBotanicalName name = (IBotanicalName)parser.parseFullName(nameStr, state.getConfig().getNomenclaturalCode(), rank);
......
176 167
        name = deduplicationHelper.getExistingName(state, name);
177 168
        if (name.isProtectedTitleCache()){
178 169
            logger.warn(line + "Name could not be parsed: " + nameStr);
179
        }else if (isSublusus){
180
            name.setRank(Rank.SUBLUSUS());
181
        }else if (isGrex){
182
            name.setRank(Rank.GREX());
183
        }else if (isRankLessInfraSpec){
184
            name.setRank(Rank.UNRANKED_INFRASPECIFIC());
185
        }else if (isRankLessInfraGeneric){
186
            name.setRank(Rank.UNRANKED_INFRAGENERIC());
187
        }
188

  
189
        String titleCache = name.getTitleCache();
190
        vollName = vollName.replace(" agg.", " aggr.").replace(" (E)", "");
191
        if (!titleCache.equals(vollName)){
192
            logger.warn("Vollname weicht ab: " + vollName +" <-> " +  titleCache);
193 170
        }
194 171

  
195 172
        deduplicationHelper.replaceAuthorNamesAndNomRef(state, name);
......
213 190

  
214 191
        taxon.addImportSource(noStr, getNamespace(state.getConfig()), getSourceCitation(state), null);
215 192

  
193
        checkVollname(state, taxon, vollName, sensuStr, isAuct);
216 194
        return taxon;
217 195
    }
218 196

  
219 197

  
220 198

  
199
    /**
200
     * @param state
201
     * @param taxon
202
     * @param sensuStr
203
     * @param isAuct
204
     * @param vollName
205
     */
206
    private void checkVollname(SimpleExcelTaxonImportState<CONFIG> state, TaxonBase<?> taxon, String vollName, String sensuStr, boolean isAuct) {
207
        TaxonName name = taxon.getName();
208
        String titleCache = (sensuStr == null && !isAuct) ? name.getTitleCache() : taxon.getTitleCache();
209
        vollName = vollName.replace(" agg.", " aggr.").replace(" (E)", "");
210
        if (!titleCache.equals(vollName)){
211
            logger.warn("Vollname weicht ab: " + vollName +" <-> " +  titleCache);
212
        }
213
    }
214

  
215

  
221 216
    /**
222 217
     * @param nameStr
223 218
     */

Also available in: Unified diff