Project

General

Profile

« Previous | Next » 

Revision c09ef0ad

Added by Patrick Plitzner over 7 years ago

Export epithet, rank and scientific name

View differences:

app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/bfnXml/in/BfnXmlTransformer.java
14 14
import org.apache.commons.lang.StringUtils;
15 15
import org.apache.log4j.Logger;
16 16

  
17
import com.google.common.collect.BiMap;
18
import com.google.common.collect.HashBiMap;
19

  
17 20
import eu.etaxonomy.cdm.io.redlist.bfnXml.BfnXmlConstants;
18 21
import eu.etaxonomy.cdm.model.name.Rank;
19 22
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
20 23
import eu.etaxonomy.cdm.strategy.exceptions.UnknownCdmTypeException;
21
/*import eu.etaxonomy.cdm.model.reference.Article;
22
import eu.etaxonomy.cdm.model.reference.Book;
23
import eu.etaxonomy.cdm.model.reference.BookSection;
24
import eu.etaxonomy.cdm.model.reference.Journal;
25
import eu.etaxonomy.cdm.model.reference.PersonalCommunication;
26
import eu.etaxonomy.cdm.model.reference.PrintSeries;*/
27
//import eu.etaxonomy.cdm.model.reference.WebPage;
28 24

  
29 25
public final class BfnXmlTransformer {
30 26
    @SuppressWarnings("unused")
......
144 140
	public static final UUID stateTermRLSpecialE = UUID.fromString("ef335a01-f4f1-4a02-95a2-2254aa457774");
145 141
	public static final UUID stateTermRLSpecialD = UUID.fromString("6b267cc5-49b6-4ebd-87ec-aa574e9cbcc5");
146 142

  
143
	private static final BiMap<Rank, String> rankMap = HashBiMap.create();
144
	static {
145
	    rankMap.put(Rank.INFRAGENUS(), BfnXmlConstants.RNK_INFRAGEN);
146
	    rankMap.put(Rank.SUBGENUS(), BfnXmlConstants.RNK_SUBGEN);
147
	    rankMap.put(Rank.GENUS(), BfnXmlConstants.RNK_GEN);
148
	    //genus subdivision
149
	    rankMap.put(Rank.SPECIESAGGREGATE(), BfnXmlConstants.RNK_AGGR);
150
	    rankMap.put(Rank.INFRAGENERICTAXON(), BfnXmlConstants.RNK_TAXINFRAGEN);
151
	    rankMap.put(Rank.SUBSERIES(), BfnXmlConstants.RNK_SUBSER);
152
	    rankMap.put(Rank.SERIES(), BfnXmlConstants.RNK_SER);
153
	    rankMap.put(Rank.SUBSECTION_BOTANY(), BfnXmlConstants.RNK_SUBSECT);
154
	    rankMap.put(Rank.SECTION_BOTANY(), BfnXmlConstants.RNK_SECT);
155
	    //species group
156
	    rankMap.put(Rank.SUBSPECIFICAGGREGATE(), BfnXmlConstants.RNK_SUBSP_AGGR);
157
	    rankMap.put(Rank.SUBSPECIES(), BfnXmlConstants.RNK_SSP);
158
	    rankMap.put(Rank.SUBSPECIES(), BfnXmlConstants.RNK_SUBSP);
159
	    rankMap.put(Rank.SUBSPECIES(), BfnXmlConstants.RNK_SUBSP_DOT);
160
	    rankMap.put(Rank.SPECIES(), BfnXmlConstants.RNK_SP);
161
	    rankMap.put(Rank.SPECIES(), BfnXmlConstants.RNK_SPEZIES);
162
	    //below subspecies
163
	    rankMap.put(Rank.CANDIDATE(), BfnXmlConstants.RNK_CAND);
164
	    rankMap.put(Rank.INFRASPECIFICTAXON(), BfnXmlConstants.RNK_TAXINFRASP);
165
	    rankMap.put(Rank.SPECIALFORM(), BfnXmlConstants.RNK_FSP);
166
	    rankMap.put(Rank.SUBSUBFORM(), BfnXmlConstants.RNK_SUBSUBFM);
167
	    rankMap.put(Rank.SUBFORM(), BfnXmlConstants.RNK_SUBFM);
168
	    rankMap.put(Rank.FORM(), BfnXmlConstants.RNK_FM);
169
	    rankMap.put(Rank.SUBSUBVARIETY(), BfnXmlConstants.RNK_SUBSUBVAR);
170
	    rankMap.put(Rank.SUBVARIETY(), BfnXmlConstants.RNK_SUBVAR);
171
	    rankMap.put(Rank.VARIETY(), BfnXmlConstants.RNK_VAR);
172
	    rankMap.put(Rank.VARIETY(), BfnXmlConstants.RNK_VAR_DOT);
173
	    rankMap.put(Rank.INFRASPECIES(), BfnXmlConstants.RNK_INFRASP);
174
	    //above superfamily
175
	    rankMap.put(Rank.INFRAORDER(), BfnXmlConstants.RNK_INFRAORD);
176
	    rankMap.put(Rank.ORDER(), BfnXmlConstants.RNK_ORD);
177
	    rankMap.put(Rank.SUPERORDER(), BfnXmlConstants.RNK_SUPERORD);
178
	    rankMap.put(Rank.INFRACLASS(), BfnXmlConstants.RNK_INFRACL);
179
	    rankMap.put(Rank.SUBCLASS(), BfnXmlConstants.RNK_SUBCL);
180
	    rankMap.put(Rank.CLASS(), BfnXmlConstants.RNK_CL);
181
	    rankMap.put(Rank.SUPERCLASS(), BfnXmlConstants.RNK_SUPERCL);
182
	    rankMap.put(Rank.INFRAPHYLUM(), BfnXmlConstants.RNK_INFRAPHYL_DIV);
183
	    rankMap.put(Rank.SUBPHYLUM(), BfnXmlConstants.RNK_SUBPHYL_DIV);
184
	    rankMap.put(Rank.PHYLUM(), BfnXmlConstants.RNK_PHYL_DIV);
185
	    rankMap.put(Rank.SUPERPHYLUM(), BfnXmlConstants.RNK_SUPERPHYL_DIV);
186
	    rankMap.put(Rank.INFRAKINGDOM(), BfnXmlConstants.RNK_INFRAREG);
187
	    rankMap.put(Rank.SUBKINGDOM(), BfnXmlConstants.RNK_SUBREG);
188
	    rankMap.put(Rank.KINGDOM(), BfnXmlConstants.RNK_REG);
189
	    rankMap.put(Rank.SUPERKINGDOM(), BfnXmlConstants.RNK_SUPERREG);
190
	    rankMap.put(Rank.DOMAIN(), BfnXmlConstants.RNK_DOM);
191
	    rankMap.put(Rank.SUPRAGENERICTAXON(), BfnXmlConstants.RNK_TAXSUPRAGEN);
192
	    rankMap.put(Rank.EMPIRE(), BfnXmlConstants.RNK_AUSWERTUNGSGRUPPE);
193
	    //family group
194
	    rankMap.put(Rank.FAMILY(), BfnXmlConstants.RNK_INFRAFAM);
195
	    rankMap.put(Rank.FAMILY(), BfnXmlConstants.RNK_SUBFAM);
196
	    rankMap.put(Rank.FAMILY(), BfnXmlConstants.RNK_FAM);
197
	    rankMap.put(Rank.FAMILY(), BfnXmlConstants.RNK_SUPERFAM);
198
	    //family subdivision
199
	    rankMap.put(Rank.FAMILY(), BfnXmlConstants.RNK_INTRATRIB);
200
	    rankMap.put(Rank.FAMILY(), BfnXmlConstants.RNK_SUBTRIB);
201
	    rankMap.put(Rank.FAMILY(), BfnXmlConstants.RNK_TRIB);
202
	    rankMap.put(Rank.FAMILY(), BfnXmlConstants.RNK_SUPERTRIB);
203
	}
204

  
205
    public static BiMap<Rank, String> getRankmap() {
206
        return rankMap;
207
    }
208

  
147 209

  
148 210
	public static TaxonRelationshipType concept2TaxonRelation(String conceptStatus) throws UnknownCdmTypeException{
149 211
		if(conceptStatus == null) {
app-import/src/main/java/eu/etaxonomy/cdm/io/redlist/bfnXml/out/BfnXmlTaxonNameExport.java
11 11
import java.io.FileWriter;
12 12
import java.io.IOException;
13 13
import java.util.List;
14
import java.util.Set;
14 15

  
15 16
import org.apache.log4j.Logger;
16 17
import org.jdom2.Attribute;
......
20 21
import org.jdom2.output.XMLOutputter;
21 22
import org.springframework.stereotype.Component;
22 23

  
24
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
23 25
import eu.etaxonomy.cdm.io.redlist.bfnXml.BfnXmlConstants;
26
import eu.etaxonomy.cdm.io.redlist.bfnXml.in.BfnXmlTransformer;
27
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
28
import eu.etaxonomy.cdm.model.common.OriginalSourceType;
29
import eu.etaxonomy.cdm.model.name.NonViralName;
30
import eu.etaxonomy.cdm.model.name.Rank;
24 31
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
25 32
import eu.etaxonomy.cdm.model.taxon.Classification;
26 33
import eu.etaxonomy.cdm.model.taxon.Taxon;
......
82 89
        parent.addContent(taxonym);
83 90

  
84 91
        Taxon taxon = taxonNode.getTaxon();
85
        Element nanteil = addNanteil(BfnXmlConstants.BEREICH_WISSNAME, taxon.getTitleCache());
86
        taxonym.addContent(nanteil);
92
        NonViralName name = HibernateProxyHelper.deproxy(taxon.getName(), NonViralName.class);
93
        Rank rank = name.getRank();
94
        //wissName
95
        addNanteil(taxonym, BfnXmlConstants.BEREICH_WISSNAME, taxon.getTitleCache());
96
        //epitithon 1,2,3
97
        addNanteil(taxonym, BfnXmlConstants.BEREICH_EPITHETON1, name.getGenusOrUninomial());
98
        if(rank.isLower(Rank.GENUS())){
99
            String epitheton2 = name.getInfraGenericEpithet();
100
            if(epitheton2==null){
101
                epitheton2 = name.getSpecificEpithet();
102
            }
103
            addNanteil(taxonym, BfnXmlConstants.BEREICH_EPITHETON2, epitheton2);
104
        }
105
        if(rank.isLower(Rank.SPECIES())){
106
            String epitheton3 = name.getInfraSpecificEpithet();
107
            if(epitheton3==null){
108
                epitheton3 = name.getSpecificEpithet();
109
            }
110
            addNanteil(taxonym, BfnXmlConstants.BEREICH_EPITHETON3, epitheton3);
111
        }
112
        Set<IdentifiableSource> sources = taxon.getSources();
113
        for (IdentifiableSource identifiableSource : sources) {
114
            if(identifiableSource.getType().equals(OriginalSourceType.Import)
115
                    && identifiableSource.getIdNamespace().equals(BfnXmlConstants.EL_TAXONYM+":"
116
            +BfnXmlConstants.EL_WISSNAME+":"+BfnXmlConstants.EL_NANTEIL+":"+BfnXmlConstants.BEREICH_EINDEUTIGER_CODE)){
117
                addNanteil(taxonym, BfnXmlConstants.BEREICH_EINDEUTIGER_CODE, identifiableSource.getIdInSource());
118
            }
119
        }
120
        //rank
121
        addNanteil(taxonym, BfnXmlConstants.BEREICH_RANG, BfnXmlTransformer.getRankmap().get(rank));
87 122

  
88 123
    }
89 124

  
90
    private Element addNanteil(String bereich, String textContent) {
125
    private void addNanteil(Element element, String bereich, String textContent) {
91 126
        Element nanteil = new Element(BfnXmlConstants.EL_NANTEIL);
92 127
        nanteil.setAttribute(new Attribute(BfnXmlConstants.ATT_BEREICH, bereich));
93 128
        nanteil.addContent(textContent);
94
        return nanteil;
129
        element.addContent(nanteil);
95 130
    }
96 131

  
97 132
    @Override

Also available in: Unified diff