Project

General

Profile

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

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

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

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

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

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

    
49

    
50

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

    
73

    
74

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