Project

General

Profile

Download (5.58 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 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
}
(9-9/9)