1
2
3
4
5
6
7
8
9 package eu.etaxonomy.cdm.io.berlinModel.in.validation;
10
11 import java.sql.ResultSet;
12 import java.sql.SQLException;
13 import java.util.Map;
14
15 import org.apache.log4j.Logger;
16 import org.springframework.stereotype.Component;
17
18 import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase;
19 import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator;
20 import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportState;
21 import eu.etaxonomy.cdm.io.common.IOValidator;
22 import eu.etaxonomy.cdm.io.common.ResultSetPartitioner;
23 import eu.etaxonomy.cdm.io.common.Source;
24 import eu.etaxonomy.cdm.model.common.CdmBase;
25
26
27
28
29
30
31
32
33 @Component
34 public class BerlinModelGeneralImportValidator extends BerlinModelImportBase implements IOValidator<BerlinModelImportState> {
35 private static final Logger logger = Logger.getLogger(BerlinModelGeneralImportValidator.class);
36
37 public BerlinModelGeneralImportValidator(){
38 super();
39 }
40
41
42
43
44 @Override
45 protected boolean doCheck(BerlinModelImportState state){
46 return validate(state);
47 }
48
49
50
51
52
53 public boolean validate(BerlinModelImportState state) {
54 boolean result = true;
55 BerlinModelImportConfigurator bmiConfig = state.getConfig();
56 result &= checkRelAuthorsExist(bmiConfig);
57 result &= checkRelReferenceExist(bmiConfig);
58
59 return result;
60 }
61
62 protected boolean doInvoke(BerlinModelImportState state){
63 boolean success = true;
64
65 return success;
66
67 }
68
69 private boolean checkRelAuthorsExist(BerlinModelImportConfigurator config){
70
71 try {
72 boolean result = true;
73 Source source = config.getSource();
74 String strQuery = "SELECT Count(*) as n " +
75 " FROM RelAuthor "
76 ;
77 ResultSet rs = source.getResultSet(strQuery);
78 rs.next();
79 int count = rs.getInt("n");
80 if (count > 0){
81 System.out.println("========================================================");
82 logger.warn("There are "+count+" RelAuthors, but RelAuthors are not implemented for CDM yet.");
83 System.out.println("========================================================");
84 }
85 return result;
86 } catch (SQLException e) {
87 e.printStackTrace();
88 return false;
89 }
90
91 }
92
93 private boolean checkRelReferenceExist(BerlinModelImportConfigurator config){
94
95 try {
96 boolean result = true;
97 Source source = config.getSource();
98 String strQuery = "SELECT Count(*) as n " +
99 " FROM RelReference "
100 ;
101 ResultSet rs = source.getResultSet(strQuery);
102 rs.next();
103 int count = rs.getInt("n");
104 if (count > 0){
105 System.out.println("========================================================");
106 logger.warn("There are "+count+" RelReferences, but RelReferences are not implemented for CDM yet.");
107 System.out.println("========================================================");
108 }
109 return result;
110 } catch (SQLException e) {
111 e.printStackTrace();
112 return false;
113 }
114
115 }
116
117
118
119
120
121 @Override
122 protected String getTableName() {
123 return null;
124 }
125
126
127
128
129 @Override
130 public String getPluralString() {
131 return null;
132 }
133
134
135
136
137
138 protected boolean isIgnore(BerlinModelImportState state){
139 return false;
140 }
141
142
143
144
145 @Override
146 protected String getRecordQuery(BerlinModelImportConfigurator config) {
147
148 return null;
149 }
150
151
152
153
154 public boolean doPartition(ResultSetPartitioner partitioner, BerlinModelImportState state) {
155 return true;
156 }
157
158
159
160
161 public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs) {
162 return null;
163 }
164
165
166 }