Project

General

Profile

« Previous | Next » 

Revision b608e320

Added by Andreas Müller over 6 years ago

ref #6986 improve redlist xml import

View differences:

app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/bfnXml/out/BfnXmlTaxonNameExport.java
22 22
import eu.etaxonomy.cdm.io.redlist.bfnXml.BfnXmlConstants;
23 23
import eu.etaxonomy.cdm.io.redlist.bfnXml.in.BfnXmlTransformer;
24 24
import eu.etaxonomy.cdm.model.common.DefinedTerm;
25
import eu.etaxonomy.cdm.model.common.ExtensionType;
25 26
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
26 27
import eu.etaxonomy.cdm.model.common.Language;
27 28
import eu.etaxonomy.cdm.model.common.OriginalSourceType;
......
196 197
        parent.addContent(taxonym);
197 198

  
198 199
        //reihenfolge attribute
199
        taxonym.setAttribute(BfnXmlConstants.ATT_REIHENFOLGE, getIdentifier(taxon, BfnXmlConstants.UUID_REIHENFOLGE_IDENTIFIER_TYPE));
200
        taxonym.setAttribute(BfnXmlConstants.ATT_REIHENFOLGE, getExtension(taxon, ExtensionType.ORDER()));
201
                //getIdentifier(taxon, BfnXmlConstants.UUID_REIHENFOLGE_IDENTIFIER_TYPE));
200 202

  
201 203
        //taxNr attribute
202 204
        taxonym.setAttribute(BfnXmlConstants.ATT_TAXNR, getIdentifier(taxon, BfnXmlConstants.UUID_TAX_NR_IDENTIFIER_TYPE));
......
225 227

  
226 228
    }
227 229

  
230
    /**
231
     * @param taxon
232
     * @param order
233
     * @return
234
     */
235
    private String getExtension(Taxon taxon, ExtensionType order) {
236
        Set<String> set = taxon.getExtensions(order);
237
        if (set.size() != 1){
238
            logger.warn("Exactly 1 order extension should exist, but has " +  set.size());
239
            if (set.size() > 1){
240
                return set.iterator().next();
241
            }
242
            return null;
243
        }else{
244
            return set.iterator().next();
245
        }
246
    }
247

  
228 248
    private String getIdentifier(Taxon taxon, UUID identifierUuid) {
229 249
        DefinedTerm identifierType = HibernateProxyHelper.deproxy(getTermService().load(identifierUuid), DefinedTerm.class);
230 250
        Set<String> identfiers = taxon.getIdentifiers(identifierType);
......
353 373
            Taxon taxon1 = o1.getTaxon();
354 374
            Taxon taxon2 = o2.getTaxon();
355 375

  
356
            int reihenfolge1 = Integer.parseInt(getIdentifier(taxon1, BfnXmlConstants.UUID_REIHENFOLGE_IDENTIFIER_TYPE));
357
            int reihenfolge2 = Integer.parseInt(getIdentifier(taxon2, BfnXmlConstants.UUID_REIHENFOLGE_IDENTIFIER_TYPE));
376
            int reihenfolge1 = Integer.parseInt(getExtension(taxon1, ExtensionType.ORDER()));
377
            int reihenfolge2 = Integer.parseInt(getExtension(taxon2, ExtensionType.ORDER()));
358 378

  
359 379
            return reihenfolge1-reihenfolge2;
360 380
        }

Also available in: Unified diff