Project

General

Profile

« Previous | Next » 

Revision 55b8caff

Added by Andreas Müller over 6 years ago

ref #5499 latest Edaphobase import changes

View differences:

app-import/src/main/java/eu/etaxonomy/cdm/io/edaphobase/EdaphobaseTaxonImport.java
72 72

  
73 73
    @Override
74 74
    protected String getRecordQuery(EdaphobaseImportConfigurator config) {
75
        String result = " SELECT DISTINCT t.*, r.value as rankStr, pr.value as parentRankStr, ppr.value as grandParentRankStr, "
75
        String result = " SELECT DISTINCT t.*, r.value_summary as rankStr, pr.value_summary as parentRankStr, ppr.value_summary as grandParentRankStr, "
76 76
                    + " pt.name as parentName, ppt.name as grandParentName "
77 77
                + " FROM tax_taxon t "
78 78
                    + " LEFT JOIN tax_taxon pt ON t.parent_taxon_fk = pt.taxon_id "
79 79
                    + " LEFT JOIN tax_taxon ppt ON pt.parent_taxon_fk = ppt.taxon_id"
80
                    + " LEFT OUTER JOIN tax_rank_en r ON r.element_id = t.tax_rank_fk "
81
                    + " LEFT OUTER JOIN tax_rank_en pr ON pr.element_id = pt.tax_rank_fk "
82
                    + " LEFT OUTER JOIN tax_rank_en ppr ON ppr.element_id = ppt.tax_rank_fk "
80
                    + " LEFT OUTER JOIN selective_list.element r ON r.element_id = t.tax_rank_fk "
81
                    + " LEFT OUTER JOIN selective_list.element pr ON pr.element_id = pt.tax_rank_fk "
82
                    + " LEFT OUTER JOIN selective_list.element ppr ON ppr.element_id = ppt.tax_rank_fk "
83 83
                + " WHERE t.taxon_id IN (@IDSET)";
84 84
        result = result.replace("@IDSET", IPartitionedIO.ID_LIST_TOKEN);
85 85
        return result;
......
143 143

  
144 144
        TaxonBase<?> taxonBase;
145 145

  
146
        rankStr= extractEnglish(rankStr);
147
        parentRankStr= extractEnglish(parentRankStr);
148
        grandParentRankStr= extractEnglish(grandParentRankStr);
149

  
146 150
        //Name etc.
147 151
        Rank rank = makeRank(state, rankStr);
148 152
        checkRankMarker(state, rank);
......
205 209
    }
206 210

  
207 211

  
212
    /**
213
     * @param rankStr
214
     * @return
215
     */
216
    private String extractEnglish(String rankStr) {
217
        if (rankStr == null){
218
            return null;
219
        }
220
        String[] splits = rankStr.split(", ");
221
        if (splits.length != 3){
222
            String message = "Wrong rank format: "+  rankStr;
223
            logger.error(message);
224
            return null;
225
        }
226
        return splits[1].trim();
227
    }
228

  
229

  
208 230
    static Map<Integer,UUID> idMap = new HashMap<>();
209 231
    static{
210 232
        idMap.put(86594, UUID.fromString("715c2370-45a4-450c-99f7-e196758979ca"));  //Aporrectodea caliginosa
......
337 359
                if (StringUtils.isBlank(name.getGenusOrUninomial())){
338 360
                    name.setGenusOrUninomial(nameStr);
339 361
                }
340
            }else if (rank.isInfraGeneric()){
362
            }else if (rank.isInfraGenericButNotSpeciesGroup()){
341 363
                if (StringUtils.isBlank(name.getInfraGenericEpithet())){
342 364
                    name.setInfraGenericEpithet(nameStr);
343 365
                }

Also available in: Unified diff