Project

General

Profile

Download (4.18 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.erms;
11

    
12
import java.sql.ResultSet;
13
import java.sql.SQLException;
14
import java.util.HashMap;
15
import java.util.Map;
16
import java.util.UUID;
17

    
18
import org.apache.log4j.Logger;
19
import org.springframework.stereotype.Component;
20

    
21
import eu.etaxonomy.cdm.io.common.IOValidator;
22
import eu.etaxonomy.cdm.io.common.mapping.DbImportAnnotationMapper;
23
import eu.etaxonomy.cdm.io.common.mapping.DbImportExtensionMapper;
24
import eu.etaxonomy.cdm.io.common.mapping.DbImportMapping;
25
import eu.etaxonomy.cdm.io.common.mapping.DbImportObjectCreationMapper;
26
import eu.etaxonomy.cdm.io.common.mapping.DbImportStringMapper;
27
import eu.etaxonomy.cdm.io.common.mapping.IMappingImport;
28
import eu.etaxonomy.cdm.io.pesi.erms.validation.ErmsAreaImportValidator;
29
import eu.etaxonomy.cdm.model.common.AnnotationType;
30
import eu.etaxonomy.cdm.model.common.CdmBase;
31
import eu.etaxonomy.cdm.model.common.ExtensionType;
32
import eu.etaxonomy.cdm.model.location.NamedArea;
33
import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
34
import eu.etaxonomy.cdm.model.location.NamedAreaType;
35

    
36

    
37
/**
38
 * @author a.mueller
39
 * @created 20.02.2010
40
 */
41
@Component
42
public class ErmsAreaImport  extends ErmsImportBase<NamedArea> implements IMappingImport<NamedArea, ErmsImportState>{
43
	@SuppressWarnings("unused")
44
	private static final Logger logger = Logger.getLogger(ErmsAreaImport.class);
45

    
46
	private DbImportMapping<?,?> mapping;
47
	
48
	
49
	private int modCount = 10000;
50
	private static final String pluralString = "areas";
51
	private static final String dbTableName = "gu";
52
	private static final Class<?> cdmTargetClass = NamedArea.class;
53

    
54
	public ErmsAreaImport(){
55
		super(pluralString, dbTableName, cdmTargetClass);
56
	}
57

    
58

    
59
	/* (non-Javadoc)
60
	 * @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getRecordQuery(eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator)
61
	 */
62
	@Override
63
	protected String getRecordQuery(ErmsImportConfigurator config) {
64
		String strRecordQuery = 
65
			" SELECT * " + 
66
			" FROM gu " +
67
			" WHERE ( gu.id IN (" + ID_LIST_TOKEN + ") )";
68
		return strRecordQuery;
69
	}
70

    
71
	/* (non-Javadoc)
72
	 * @see eu.etaxonomy.cdm.io.erms.ErmsImportBase#getMapping()
73
	 */
74
	protected DbImportMapping getMapping() {
75
		if (mapping == null){
76
			mapping = new DbImportMapping();
77
			
78
			mapping.addMapper(DbImportObjectCreationMapper.NewInstance(this, "id", AREA_NAMESPACE)); //id
79
			mapping.addMapper(DbImportStringMapper.NewInstance("gu_name", "titleCache"));
80
			ExtensionType extensionType = getExtensionType( ErmsTransformer.GAZETTEER_UUID, "Gazetteer ID", "Gazetteer ID", "G-ID");
81
			mapping.addMapper(DbImportExtensionMapper.NewInstance("gazetteer_id",extensionType));
82
			mapping.addMapper(DbImportAnnotationMapper.NewInstance("note", AnnotationType.EDITORIAL()));
83

    
84
		}
85
		return mapping;
86
	}
87
	
88

    
89
	@Override
90
	public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs, ErmsImportState state) {
91
		Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>();
92
		return result;  //not needed
93
	}
94
	
95
	@Override
96
	public NamedArea createObject(ResultSet rs, ErmsImportState state) throws SQLException {
97
		int id = rs.getInt("id");
98
		String strGuName = rs.getString("gu_name");
99
		UUID uuid = ErmsTransformer.uuidFromGuName(strGuName);
100
		String label = strGuName;
101
		String text = strGuName;
102
		//TODO
103
		String labelAbbrev = String.valueOf(id);
104
		NamedAreaType areaType = null;
105
		NamedAreaLevel level = null;
106
		NamedArea area = getNamedArea(state, uuid, label, text, labelAbbrev, areaType, level);
107
		return area;
108
	}
109

    
110
	@Override
111
	protected boolean doCheck(ErmsImportState state){
112
		IOValidator<ErmsImportState> validator = new ErmsAreaImportValidator();
113
		return validator.validate(state);
114
	}
115
	
116
	@Override
117
	protected boolean isIgnore(ErmsImportState state){
118
		//TODO
119
//		return ! state.getConfig().isDoAreas();
120
		return false;
121
	}
122

    
123

    
124

    
125

    
126
}
(1-1/17)