1
2
3
4
5
6
7
8
9
10
11 package eu.etaxonomy.cdm.io.berlinModel.out.mapper;
12
13 import java.sql.Connection;
14 import java.sql.PreparedStatement;
15 import java.sql.SQLException;
16 import java.util.Date;
17
18 import org.apache.log4j.Logger;
19 import org.hsqldb.Types;
20
21 import eu.etaxonomy.cdm.io.berlinModel.out.BerlinModelExportMapping;
22 import eu.etaxonomy.cdm.io.berlinModel.out.BerlinModelExportState;
23 import eu.etaxonomy.cdm.io.berlinModel.out.BerlinModelExportConfigurator;
24 import eu.etaxonomy.cdm.io.common.ImportHelper;
25 import eu.etaxonomy.cdm.model.common.CdmBase;
26 import eu.etaxonomy.cdm.model.description.Feature;
27 import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
28 import eu.etaxonomy.cdm.model.reference.ReferenceBase;
29
30
31
32
33
34
35 public class FactCategoryMapper extends DbSingleAttributeExportMapperBase<BerlinModelExportState> implements IDbExportMapper<BerlinModelExportState>{
36 @SuppressWarnings("unused")
37 private static final Logger logger = Logger.getLogger(FactCategoryMapper.class);
38
39 private PreparedStatement preparedStatement;
40 private BerlinModelExportMapping mapping = null;
41 private String dbTableName = "NomStatusRel";
42
43
44 public static FactCategoryMapper NewInstance(String cdmAttributeString, String dbAttributeString){
45 return new FactCategoryMapper(cdmAttributeString, dbAttributeString);
46 }
47
48 private BerlinModelExportMapping getMapping(){
49 boolean doExecute = false;
50 String tableName = dbTableName;
51 BerlinModelExportMapping mapping = new BerlinModelExportMapping(tableName);
52
53 mapping.addMapper(MethodMapper.NewInstance("NomStatusFk", this.getClass(), "getNomStatusFk", NomenclaturalStatus.class));
54 mapping.addMapper(DbObjectMapper.NewInstance("citation", "NomStatusRefFk"));
55 mapping.addMapper(RefDetailMapper.NewInstance("citationMicroReference","citation", "NomStatusRefDetailFk"));
56
57 mapping.addMapper(CreatedAndNotesMapper.NewInstance());
58
59
60
61 return mapping;
62 }
63
64
65
66
67
68
69
70
71
72
73
74 private FactCategoryMapper(String cdmAttributeString, String dbAttributeString) {
75 super(cdmAttributeString, dbAttributeString, null);
76 }
77
78
79
80
81
82
83 @Override
84 public void initialize(PreparedStatement stmt, IndexCounter index,BerlinModelExportState state, String tableName) {
85 super.initialize(stmt, index, state, tableName);
86 mapping = getMapping();
87
88
89
90
91
92 try {
93 mapping.initialize(state);
94 mapping.initialize(state);
95
96 } catch (SQLException e) {
97 e.printStackTrace();
98 throw new RuntimeException();
99 }
100 }
101
102
103
104
105
106 public Object invoke(CdmBase cdmBase, boolean xxx) {
107 String value = (String)super.getValue(cdmBase);
108 boolean isBoolean = false;
109 Feature feature = (Feature)ImportHelper.getValue(cdmBase, getSourceAttribute(), isBoolean, true);
110 Object result = makeRow(feature);
111
112 return result;
113 }
114
115
116
117
118 @Override
119 protected Object getValue(CdmBase cdmBase) {
120 String value = (String)super.getValue(cdmBase);
121 boolean isBoolean = false;
122 Feature feature = (Feature)ImportHelper.getValue(cdmBase, getSourceAttribute(), isBoolean, true);
123 Object result = makeRow(feature);
124
125 return result;
126 }
127
128
129 protected Integer makeRow(Feature feature){
130 if (feature == null){
131 return null;
132 }
133 Integer factCategoryId = getState().getNextFactCategoryId();
134 String factCategory = feature.getLabel();
135 Integer maxFactNumber = null;
136 Integer RankRestrictionFk = null;
137
138 try {
139 preparedStatement.setInt(1, factCategoryId);
140 preparedStatement.setString(2, factCategory);
141 preparedStatement.setNull(3, Types.INTEGER) ;
142 preparedStatement.setNull(4, Types.INTEGER) ;
143 preparedStatement.executeUpdate();
144 } catch (SQLException e) {
145
146 e.printStackTrace();
147 }
148 return factCategoryId;
149 }
150
151 protected Integer getId(CdmBase cdmBase){
152 BerlinModelExportConfigurator config = getState().getConfig();
153 if (false && config.getIdType() == BerlinModelExportConfigurator.IdType.CDM_ID){
154 return cdmBase.getId();
155 }else{
156 Integer id = getState().getDbId(cdmBase);
157 return id;
158 }
159 }
160
161
162
163
164 @Override
165 protected int getSqlType() {
166 return Types.INTEGER;
167 }
168
169
170
171
172 @Override
173 public Class<?> getTypeClass() {
174 return String.class;
175 }
176
177
178
179
180 }