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
17 import org.apache.log4j.Logger;
18 import org.springframework.stereotype.Component;
19
20 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
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.DbImportTruncatedStringMapper;
28 import eu.etaxonomy.cdm.io.common.mapping.DbNotYetImplementedMapper;
29 import eu.etaxonomy.cdm.io.common.mapping.IMappingImport;
30 import eu.etaxonomy.cdm.io.erms.validation.ErmsReferenceImportValidator;
31 import eu.etaxonomy.cdm.model.common.AnnotationType;
32 import eu.etaxonomy.cdm.model.common.CdmBase;
33 import eu.etaxonomy.cdm.model.common.ExtensionType;
34 import eu.etaxonomy.cdm.model.common.Language;
35 import eu.etaxonomy.cdm.model.reference.ReferenceBase;
36 import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
37
38
39
40
41
42
43
44 @Component
45 public class ErmsReferenceImport extends ErmsImportBase<ReferenceBase> implements IMappingImport<ReferenceBase, ErmsImportState>{
46 private static final Logger logger = Logger.getLogger(ErmsReferenceImport.class);
47
48 private DbImportMapping mapping;
49
50
51 private int modCount = 10000;
52 private static final String pluralString = "sources";
53 private static final String dbTableName = "sources";
54 private static final Class cdmTargetClass = ReferenceBase.class;
55
56 public ErmsReferenceImport(){
57 super(pluralString, dbTableName, cdmTargetClass);
58 }
59
60
61
62
63
64 @Override
65 protected String getRecordQuery(ErmsImportConfigurator config) {
66 String strRecordQuery =
67 " SELECT * " +
68 " FROM sources " +
69 " WHERE ( sources.id IN (" + ID_LIST_TOKEN + ") )";
70 return strRecordQuery;
71 }
72
73
74
75
76 protected DbImportMapping getMapping() {
77 if (mapping == null){
78 mapping = new DbImportMapping();
79
80 mapping.addMapper(DbImportObjectCreationMapper.NewInstance(this, "id", REFERENCE_NAMESPACE));
81 mapping.addMapper(DbImportExtensionMapper.NewInstance("imis_id", ErmsTransformer.IMIS_UUID, "imis", "imis", "imis"));
82
83 mapping.addMapper(DbImportTruncatedStringMapper.NewInstance("source_name", "titleCache", "title"));
84 mapping.addMapper(DbImportStringMapper.NewInstance("source_abstract", "referenceAbstract"));
85 mapping.addMapper(DbImportAnnotationMapper.NewInstance("source_note", AnnotationType.EDITORIAL(), Language.DEFAULT()));
86
87
88 mapping.addMapper(DbImportExtensionMapper.NewInstance("source_link", ExtensionType.URL()));
89
90
91 mapping.addMapper(DbNotYetImplementedMapper.NewInstance("source_type"));
92 mapping.addMapper(DbNotYetImplementedMapper.NewInstance("source_orig_fn"));
93
94 }
95 return mapping;
96 }
97
98
99
100
101 public ReferenceBase createObject(ResultSet rs, ErmsImportState state)
102 throws SQLException {
103 int id = rs.getInt("id");
104 ReferenceBase ref = ReferenceFactory.newGeneric();
105 return ref;
106 }
107
108
109
110
111 public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs) {
112 Map<Object, Map<String, ? extends CdmBase>> result = new HashMap<Object, Map<String, ? extends CdmBase>>();
113 return result;
114 }
115
116
117
118
119 @Override
120 protected boolean doCheck(ErmsImportState state){
121 IOValidator<ErmsImportState> validator = new ErmsReferenceImportValidator();
122 return validator.validate(state);
123 }
124
125
126
127
128
129 protected boolean isIgnore(ErmsImportState state){
130
131 return state.getConfig().getDoReferences() != IImportConfigurator.DO_REFERENCES.ALL;
132 }
133
134
135
136
137
138 }