Project

General

Profile

Download (5.6 KB) Statistics
| Branch: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy 
4
* http://www.e-taxonomy.eu
5
* 
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

    
10
package eu.etaxonomy.cdm.io.pesi.indexFungorum;
11

    
12
import org.apache.commons.lang.StringUtils;
13
import org.apache.log4j.Logger;
14

    
15
import eu.etaxonomy.cdm.io.common.TdwgAreaProvider;
16
import eu.etaxonomy.cdm.io.common.mapping.InputTransformerBase;
17
import eu.etaxonomy.cdm.io.common.mapping.UndefinedTransformerMethodException;
18
import eu.etaxonomy.cdm.model.location.NamedArea;
19
import eu.etaxonomy.cdm.model.location.Country;
20
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
21
import eu.etaxonomy.cdm.model.name.Rank;
22

    
23
/**
24
 * @author a.mueller
25
 * @since 01.03.2010
26
 * @version 1.0
27
 */
28
public final class IndexFungorumTransformer extends InputTransformerBase {
29
	private static final Logger logger = Logger.getLogger(IndexFungorumTransformer.class);
30
	
31
	public static final String LSID_PREFIX = "urn:lsid:indexfungorum.org:names:";
32

    
33
	public static NomenclaturalCode kingdomId2NomCode(Integer kingdomId){
34
		switch (kingdomId){
35
			case 1: return null;
36
			case 2: return NomenclaturalCode.ICZN;  //Animalia
37
			case 3: return NomenclaturalCode.ICNAFP;  //Plantae
38
			case 4: return NomenclaturalCode.ICNAFP;  //Fungi
39
			case 5: return NomenclaturalCode.ICZN ;  //Protozoa
40
			case 6: return NomenclaturalCode.ICNB ;  //Bacteria
41
			case 7: return NomenclaturalCode.ICNAFP;  //Chromista
42
			case 147415: return NomenclaturalCode.ICNB;  //Monera
43
			default: return null;
44
	
45
		}
46
	}
47

    
48

    
49

    
50
	@Override
51
	public Rank getRankByKey(String key) throws UndefinedTransformerMethodException {
52
		if (StringUtils.isBlank(key)){
53
			return null;
54
		}
55
		Integer rankFk = Integer.valueOf(key);
56
		switch (rankFk){
57
			case 10: return Rank.KINGDOM();
58
 			case 30: return Rank.DIVISION();
59
			case 40: return Rank.SUBDIVISION();
60
			case 60: return Rank.CLASS();
61
			case 70: return Rank.SUBCLASS();
62
			case 100: return Rank.ORDER();
63
			case 110: return Rank.SUBORDER();  //not needed
64
			case 140: return Rank.FAMILY();
65
			default:
66
				logger.warn("Unhandled rank: " + rankFk);
67
				return null;
68
		}
69
		
70
	}
71

    
72

    
73

    
74
	/* (non-Javadoc)
75
	 * @see eu.etaxonomy.cdm.io.common.mapping.InputTransformerBase#getNamedAreaByKey(java.lang.String)
76
	 */
77
	@Override
78
	public NamedArea getNamedAreaByKey(String key) throws UndefinedTransformerMethodException {
79
		if (StringUtils.isBlank(key)){
80
			return null;
81
		}else if (key.equalsIgnoreCase("AT")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("AUT-AU");
82
		}else if (key.equalsIgnoreCase("LU")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("BGM-LU");
83
		}else if (key.equalsIgnoreCase("BA")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("YUG-BH");
84
		}else if (key.equalsIgnoreCase("BG")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("BUL-OO");
85
		}else if (key.equalsIgnoreCase("EE")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("BLT-ES");
86
		}else if (key.equalsIgnoreCase("FR")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("FRA");
87
		}else if (key.equalsIgnoreCase("DE")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("GER-OO");
88
		}else if (key.equalsIgnoreCase("IE")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("IRE-IR");
89
		}else if (key.equalsIgnoreCase("CH")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("SWI-OO");
90
		}else if (key.equalsIgnoreCase("NL")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("NET-OO");
91
		}else if (key.equalsIgnoreCase("HU")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("HUN-OO");
92
		}else if (key.equalsIgnoreCase("IT")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("ITA");
93
		}else if (key.equalsIgnoreCase("LV")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("BLT-LA");
94
		}else if (key.equalsIgnoreCase("LT")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("BLT-LI");
95
		}else if (key.equalsIgnoreCase("NO")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("NOR-OO");
96
		}else if (key.equalsIgnoreCase("PL")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("POL-OO");
97
		}else if (key.equalsIgnoreCase("RO")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("ROM-OO");
98
		}else if (key.equalsIgnoreCase("MT")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("SIC-MA");
99
		}else if (key.equalsIgnoreCase("SK")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("CZE-SK");
100
		}else if (key.equalsIgnoreCase("RS")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("YUG-SE");
101
		}else if (key.equalsIgnoreCase("SE")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("SWE-OO");
102
		}else if (key.equalsIgnoreCase("AM")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("TCS-AR");
103
		}else if (key.equalsIgnoreCase("IL")){return TdwgAreaProvider.getAreaByTdwgAbbreviation("PAL-IS");
104
		
105
		}else if (key.equalsIgnoreCase("UK")){return Country.UNITEDKINGDOMOFGREATBRITAINANDNORTHERNIRELAND();
106
		}else if (key.equalsIgnoreCase("DK")){return Country.DENMARKKINGDOMOF();
107
		}else if (key.equalsIgnoreCase("GR")){return Country.GREECEHELLENICREPUBLIC();
108
		}else if (key.equalsIgnoreCase("ES")){return Country.SPAINSPANISHSTATE();
109
		}else if (key.equalsIgnoreCase("PT")){return Country.PORTUGALPORTUGUESEREPUBLIC();
110
		}else if (key.equalsIgnoreCase("RU")){return Country.RUSSIANFEDERATION();
111
		}else if (key.equalsIgnoreCase("UA")){return Country.UKRAINE();
112
		}else if (key.equalsIgnoreCase("GE")){return Country.GEORGIA();
113
		}else if (key.equalsIgnoreCase("TR")){return Country.TURKEYREPUBLICOF();
114
		
115
		
116
		} else {
117
			logger.warn("Area not yet mapped: " +  key);
118
			return null;
119
		}
120
	}
121
}
(10-10/10)