1
2
3
4
5
6
7
8
9
10 package eu.etaxonomy.cdm.io.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.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.location.NamedArea;
32 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
33 import eu.etaxonomy.cdm.model.location.NamedAreaType;
34
35
36
37
38
39
40
41 @Component
42 public class ErmsAreaImport extends ErmsImportBase<NamedArea> implements IMappingImport<NamedArea, ErmsImportState>{
43 private static final Logger logger = Logger.getLogger(ErmsAreaImport.class);
44
45 private DbImportMapping mapping;
46
47
48 private int modCount = 10000;
49 private static final String pluralString = "areas";
50 private static final String dbTableName = "gu";
51 private static final Class cdmTargetClass = NamedArea.class;
52
53 public ErmsAreaImport(){
54 super(pluralString, dbTableName, cdmTargetClass);
55 }
56
57
58
59
60
61 @Override
62 protected String getRecordQuery(ErmsImportConfigurator config) {
63 String strRecordQuery =
64 " SELECT * " +
65 " FROM gu " +
66 " WHERE ( gu.id IN (" + ID_LIST_TOKEN + ") )";
67 return strRecordQuery;
68 }
69
70
71
72
73 protected DbImportMapping getMapping() {
74 if (mapping == null){
75 mapping = new DbImportMapping();
76
77 mapping.addMapper(DbImportObjectCreationMapper.NewInstance(this, "id", AREA_NAMESPACE));
78 mapping.addMapper(DbImportStringMapper.NewInstance("gu_name", "titleCache"));
79 mapping.addMapper(DbImportExtensionMapper.NewInstance("gazetteer_id", ErmsTransformer.GAZETTEER_UUID, "Gazetteer ID", "Gazetteer ID", "G-ID"));
80 mapping.addMapper(DbImportAnnotationMapper.NewInstance("note", AnnotationType.EDITORIAL()));
81
82 }
83 return mapping;
84 }
85
86
87
88
89
90 public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs) {
91 Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>();
92 return result;
93 }
94
95
96
97
98
99 public NamedArea createObject(ResultSet rs, ErmsImportState state) throws SQLException {
100 int id = rs.getInt("id");
101 String strGuName = rs.getString("gu_name");
102 UUID uuid = ErmsTransformer.uuidFromGuName(strGuName);
103 String label = strGuName;
104 String text = strGuName;
105
106 String labelAbbrev = String.valueOf(id);
107 NamedAreaType areaType = null;
108 NamedAreaLevel level = null;
109 NamedArea area = getNamedArea(state, uuid, label, text, labelAbbrev, areaType, level);
110 return area;
111 }
112
113
114
115
116 @Override
117 protected boolean doCheck(ErmsImportState state){
118 IOValidator<ErmsImportState> validator = new ErmsAreaImportValidator();
119 return validator.validate(state);
120 }
121
122
123
124
125
126 protected boolean isIgnore(ErmsImportState state){
127
128
129 return false;
130 }
131
132
133
134
135 }