1 |
1 |
/**
|
2 |
2 |
* Copyright (C) 2007 EDIT
|
3 |
|
* European Distributed Institute of Taxonomy
|
|
3 |
* European Distributed Institute of Taxonomy
|
4 |
4 |
* http://www.e-taxonomy.eu
|
5 |
|
*
|
|
5 |
*
|
6 |
6 |
* The contents of this file are subject to the Mozilla Public License Version 1.1
|
7 |
7 |
* See LICENSE.TXT at the top of this package for the full license terms.
|
8 |
8 |
*/
|
... | ... | |
42 |
42 |
result &= checkObligatoryAttributes(config, refImport);
|
43 |
43 |
result &= checkPartOfWithVolume(config);
|
44 |
44 |
result &= checkArticleWithEdition(config);
|
45 |
|
|
|
45 |
|
46 |
46 |
if (result == false ){System.out.println("========================================================");}
|
47 |
|
|
|
47 |
|
48 |
48 |
return result;
|
49 |
|
|
|
49 |
|
50 |
50 |
}
|
51 |
|
|
52 |
|
|
|
51 |
|
|
52 |
|
53 |
53 |
//******************************** CHECK *************************************************
|
54 |
|
|
|
54 |
|
55 |
55 |
private static boolean checkArticlesWithoutJournal(BerlinModelImportConfigurator config){
|
56 |
56 |
try {
|
57 |
57 |
boolean result = true;
|
58 |
58 |
Source source = config.getSource();
|
59 |
|
String strQuery = "SELECT Reference.RefId, InRef.RefId AS InRefID, Reference.RefCategoryFk, InRef.RefCategoryFk AS InRefCatFk, Reference.RefCache, Reference.NomRefCache, Reference.Title, RefCategory.RefCategoryAbbrev, InRefCategory.RefCategoryAbbrev AS InRefCat, InRef.Title AS InRefTitle " +
|
|
59 |
String strQuery = "SELECT Reference.RefId, InRef.RefId AS InRefID, Reference.RefCategoryFk, InRef.RefCategoryFk AS InRefCatFk, Reference.RefCache, Reference.NomRefCache, Reference.Title, RefCategory.RefCategoryAbbrev, InRefCategory.RefCategoryAbbrev AS InRefCat, InRef.Title AS InRefTitle " +
|
60 |
60 |
" FROM Reference INNER JOIN Reference AS InRef ON Reference.InRefFk = InRef.RefId INNER JOIN RefCategory ON Reference.RefCategoryFk = RefCategory.RefCategoryId INNER JOIN RefCategory AS InRefCategory ON InRef.RefCategoryFk = InRefCategory.RefCategoryId " +
|
61 |
61 |
" WHERE (Reference.RefCategoryFk = 1) AND (InRef.RefCategoryFk <> 9) ";
|
62 |
62 |
if (StringUtils.isNotBlank(config.getReferenceIdTable())){
|
63 |
63 |
strQuery += String.format(" AND (reference.refId IN " +
|
64 |
|
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
|
64 |
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
65 |
65 |
}
|
66 |
|
|
|
66 |
|
67 |
67 |
ResultSet rs = source.getResultSet(strQuery);
|
68 |
68 |
boolean firstRow = true;
|
69 |
69 |
while (rs.next()){
|
... | ... | |
82 |
82 |
String nomRefCache = rs.getString("nomRefCache");
|
83 |
83 |
String title = rs.getString("title");
|
84 |
84 |
String inRefTitle = rs.getString("InRefTitle");
|
85 |
|
|
86 |
|
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
87 |
|
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache + "\n title: " + title +
|
88 |
|
"\n inRefFk: " + inRefFk + "\n inRefCategory: " + inRefCat +
|
|
85 |
|
|
86 |
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
|
87 |
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache + "\n title: " + title +
|
|
88 |
"\n inRefFk: " + inRefFk + "\n inRefCategory: " + inRefCat +
|
89 |
89 |
"\n inRefTitle: " + inRefTitle );
|
90 |
90 |
result = firstRow = false;
|
91 |
91 |
}
|
92 |
|
|
|
92 |
|
93 |
93 |
return result;
|
94 |
94 |
} catch (SQLException e) {
|
95 |
95 |
e.printStackTrace();
|
96 |
96 |
return false;
|
97 |
97 |
}
|
98 |
98 |
}
|
99 |
|
|
|
99 |
|
100 |
100 |
private static boolean checkPartOfJournal(BerlinModelImportConfigurator config){
|
101 |
101 |
try {
|
102 |
102 |
boolean result = true;
|
103 |
103 |
Source source = config.getSource();
|
104 |
|
String strQuery = "SELECT Reference.RefId, InRef.RefId AS InRefID, Reference.RefCategoryFk, InRef.RefCategoryFk AS InRefCatFk, Reference.RefCache, Reference.NomRefCache, Reference.Title, RefCategory.RefCategoryAbbrev, InRefCategory.RefCategoryAbbrev AS InRefCat, InRef.Title AS InRefTitle " +
|
|
104 |
String strQuery = "SELECT Reference.RefId, InRef.RefId AS InRefID, Reference.RefCategoryFk, InRef.RefCategoryFk AS InRefCatFk, Reference.RefCache, Reference.NomRefCache, Reference.Title, RefCategory.RefCategoryAbbrev, InRefCategory.RefCategoryAbbrev AS InRefCat, InRef.Title AS InRefTitle " +
|
105 |
105 |
" FROM Reference INNER JOIN Reference AS InRef ON Reference.InRefFk = InRef.RefId INNER JOIN RefCategory ON Reference.RefCategoryFk = RefCategory.RefCategoryId INNER JOIN RefCategory AS InRefCategory ON InRef.RefCategoryFk = InRefCategory.RefCategoryId " +
|
106 |
106 |
" WHERE (Reference.RefCategoryFk = 2) AND (InRef.RefCategoryFk = 9) ";
|
107 |
107 |
|
108 |
108 |
if (StringUtils.isNotBlank(config.getReferenceIdTable())){
|
109 |
109 |
strQuery += String.format(" AND (reference.refId IN " +
|
110 |
|
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
|
110 |
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
111 |
111 |
}
|
112 |
112 |
|
113 |
|
|
|
113 |
|
114 |
114 |
ResultSet rs = source.getResultSet(strQuery);
|
115 |
115 |
boolean firstRow = true;
|
116 |
116 |
while (rs.next()){
|
... | ... | |
129 |
129 |
String nomRefCache = rs.getString("nomRefCache");
|
130 |
130 |
String title = rs.getString("title");
|
131 |
131 |
String inRefTitle = rs.getString("InRefTitle");
|
132 |
|
|
133 |
|
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
134 |
|
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache + "\n title: " + title +
|
135 |
|
"\n inRefFk: " + inRefFk + "\n inRefCategory: " + inRefCat +
|
|
132 |
|
|
133 |
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
|
134 |
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache + "\n title: " + title +
|
|
135 |
"\n inRefFk: " + inRefFk + "\n inRefCategory: " + inRefCat +
|
136 |
136 |
"\n inRefTitle: " + inRefTitle );
|
137 |
137 |
result = firstRow = false;
|
138 |
138 |
}
|
139 |
|
|
|
139 |
|
140 |
140 |
return result;
|
141 |
141 |
} catch (SQLException e) {
|
142 |
142 |
e.printStackTrace();
|
143 |
143 |
return false;
|
144 |
144 |
}
|
145 |
145 |
}
|
146 |
|
|
147 |
|
|
|
146 |
|
|
147 |
|
148 |
148 |
private static boolean checkPartOfUnresolved(BerlinModelImportConfigurator config){
|
149 |
149 |
try {
|
150 |
150 |
boolean result = true;
|
151 |
151 |
Source source = config.getSource();
|
152 |
|
String strQuery = "SELECT Reference.RefId, InRef.RefId AS InRefID, Reference.RefCategoryFk, InRef.RefCategoryFk AS InRefCatFk, Reference.RefCache, Reference.NomRefCache, Reference.Title, RefCategory.RefCategoryAbbrev, InRefCategory.RefCategoryAbbrev AS InRefCat, InRef.Title AS InRefTitle " +
|
|
152 |
String strQuery = "SELECT Reference.RefId, InRef.RefId AS InRefID, Reference.RefCategoryFk, InRef.RefCategoryFk AS InRefCatFk, Reference.RefCache, Reference.NomRefCache, Reference.Title, RefCategory.RefCategoryAbbrev, InRefCategory.RefCategoryAbbrev AS InRefCat, InRef.Title AS InRefTitle " +
|
153 |
153 |
" FROM Reference INNER JOIN Reference AS InRef ON Reference.InRefFk = InRef.RefId INNER JOIN RefCategory ON Reference.RefCategoryFk = RefCategory.RefCategoryId INNER JOIN RefCategory AS InRefCategory ON InRef.RefCategoryFk = InRefCategory.RefCategoryId " +
|
154 |
154 |
" WHERE (Reference.RefCategoryFk = 2) AND (InRef.RefCategoryFk = 10) ";
|
155 |
|
|
|
155 |
|
156 |
156 |
if (StringUtils.isNotBlank(config.getReferenceIdTable())){
|
157 |
157 |
strQuery += String.format(" AND (reference.refId IN " +
|
158 |
|
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
|
158 |
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
159 |
159 |
}
|
160 |
160 |
|
161 |
161 |
ResultSet rs = source.getResultSet(strQuery);
|
... | ... | |
176 |
176 |
String nomRefCache = rs.getString("nomRefCache");
|
177 |
177 |
String title = rs.getString("title");
|
178 |
178 |
String inRefTitle = rs.getString("InRefTitle");
|
179 |
|
|
180 |
|
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
181 |
|
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache + "\n title: " + title +
|
182 |
|
"\n inRefFk: " + inRefFk + "\n inRefCategory: " + inRefCat +
|
|
179 |
|
|
180 |
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
|
181 |
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache + "\n title: " + title +
|
|
182 |
"\n inRefFk: " + inRefFk + "\n inRefCategory: " + inRefCat +
|
183 |
183 |
"\n inRefTitle: " + inRefTitle );
|
184 |
184 |
result = firstRow = false;
|
185 |
185 |
}
|
186 |
186 |
if (result == false){
|
187 |
187 |
System.out.println("\nChoose a specific type from the following reference types: \n" +
|
188 |
|
" 1) Article \n 2) Book \n 3) BookSection \n 4) CdDvd \n 5) ConferenceProceeding \n 6) Database\n" +
|
|
188 |
" 1) Article \n 2) Book \n 3) BookSection \n 4) CdDvd \n 5) ConferenceProceeding \n 6) Database\n" +
|
189 |
189 |
" 7) Generic \n 7) InProceedings \n 8) Journal \n 9) Map \n 10) Patent \n 11) PersonalCommunication\n" +
|
190 |
190 |
" 12) PrintSeries \n 13) Proceedings \n 14) Report \n 15) Thesis \n 16) WebPage");
|
191 |
191 |
}
|
... | ... | |
195 |
195 |
return false;
|
196 |
196 |
}
|
197 |
197 |
}
|
198 |
|
|
|
198 |
|
199 |
199 |
private static boolean checkPartOfPartOf(BerlinModelImportConfigurator config){
|
200 |
200 |
try {
|
201 |
201 |
boolean result = true;
|
202 |
202 |
Source source = config.getSource();
|
203 |
|
String strQuery = "SELECT Reference.RefId, InRef.RefId AS InRefID, Reference.RefCategoryFk, InRef.RefCategoryFk AS InRefCatFk, Reference.RefCache, Reference.NomRefCache, Reference.Title, RefCategory.RefCategoryAbbrev, InRefCategory.RefCategoryAbbrev AS InRefCat, InRef.Title AS InRefTitle, InRef.InRefFk as InInRefId, InInRef.Title as inInRefTitle, InInRef.RefCategoryFk as inInRefCategory " +
|
|
203 |
String strQuery = "SELECT Reference.RefId, InRef.RefId AS InRefID, Reference.RefCategoryFk, InRef.RefCategoryFk AS InRefCatFk, Reference.RefCache, Reference.NomRefCache, Reference.Title, RefCategory.RefCategoryAbbrev, InRefCategory.RefCategoryAbbrev AS InRefCat, InRef.Title AS InRefTitle, InRef.InRefFk as InInRefId, InInRef.Title as inInRefTitle, InInRef.RefCategoryFk as inInRefCategory " +
|
204 |
204 |
" FROM Reference " +
|
205 |
|
" INNER JOIN Reference AS InRef ON Reference.InRefFk = InRef.RefId " +
|
206 |
|
" INNER JOIN RefCategory ON Reference.RefCategoryFk = RefCategory.RefCategoryId " +
|
|
205 |
" INNER JOIN Reference AS InRef ON Reference.InRefFk = InRef.RefId " +
|
|
206 |
" INNER JOIN RefCategory ON Reference.RefCategoryFk = RefCategory.RefCategoryId " +
|
207 |
207 |
" INNER JOIN RefCategory AS InRefCategory ON InRef.RefCategoryFk = InRefCategory.RefCategoryId " +
|
208 |
|
" INNER JOIN Reference AS InInRef ON InRef.InRefFk = InInRef.RefId " +
|
|
208 |
" INNER JOIN Reference AS InInRef ON InRef.InRefFk = InInRef.RefId " +
|
209 |
209 |
" WHERE (Reference.RefCategoryFk = 2) AND (InRef.RefCategoryFk = 2) ";
|
210 |
|
|
|
210 |
|
211 |
211 |
if (StringUtils.isNotBlank(config.getReferenceIdTable())){
|
212 |
212 |
strQuery += String.format(" AND (reference.refId IN " +
|
213 |
|
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
|
213 |
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
214 |
214 |
}
|
215 |
215 |
|
216 |
216 |
ResultSet rs = source.getResultSet(strQuery);
|
... | ... | |
218 |
218 |
while (rs.next()){
|
219 |
219 |
if (firstRow){
|
220 |
220 |
System.out.println("========================================================");
|
221 |
|
System.out.println("There are part-of-references that are part of an other 'part-of' reference!\n" +
|
|
221 |
System.out.println("There are part-of-references that are part of an other 'part-of' reference!\n" +
|
222 |
222 |
" This is invalid or ambigous. Please try to determine the reference types more detailed ");
|
223 |
223 |
System.out.println("========================================================");
|
224 |
224 |
}
|
... | ... | |
235 |
235 |
int inInRefId = rs.getInt("InInRefId");
|
236 |
236 |
String inInRefTitle = rs.getString("inInRefTitle");
|
237 |
237 |
int inInRefCategory = rs.getInt("inInRefCategory");
|
238 |
|
|
239 |
|
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
240 |
|
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache + "\n title: " + title +
|
241 |
|
"\n inRefFk: " + inRefFk + "\n inRefCategory: " + inRefCat +
|
|
238 |
|
|
239 |
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
|
240 |
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache + "\n title: " + title +
|
|
241 |
"\n inRefFk: " + inRefFk + "\n inRefCategory: " + inRefCat +
|
242 |
242 |
"\n inRefTitle: " + inRefTitle + "\n inInRefId: " + inInRefId + "\n inInRefTitle: " + inInRefTitle +
|
243 |
243 |
"\n inInRefCategory: " + inInRefCategory );
|
244 |
244 |
result = firstRow = false;
|
... | ... | |
255 |
255 |
}
|
256 |
256 |
}
|
257 |
257 |
|
258 |
|
|
|
258 |
|
259 |
259 |
private static boolean checkPartOfArticle(BerlinModelImportConfigurator config){
|
260 |
260 |
try {
|
261 |
261 |
boolean result = true;
|
262 |
262 |
Source source = config.getSource();
|
263 |
|
String strQuery = "SELECT Reference.RefId, InRef.RefId AS InRefID, Reference.RefCategoryFk, InRef.RefCategoryFk AS InRefCatFk, Reference.RefCache, Reference.NomRefCache, Reference.Title, Reference.NomTitleAbbrev as nomTitleAbbrev, RefCategory.RefCategoryAbbrev, InRefCategory.RefCategoryAbbrev AS InRefCat, InRef.Title AS InRefTitle, InRef.nomTitleAbbrev AS inRefnomTitleAbbrev, InRef.refCache AS inRefCache, InRef.nomRefCache AS inRefnomRefCache, " +
|
264 |
|
" InInRefCategory.RefCategoryAbbrev AS InInRefCat, InInRef.refCache AS inInRefCache, InInRef.nomRefCache AS inInRefNomRefCache " +
|
265 |
|
" FROM Reference " +
|
266 |
|
" INNER JOIN Reference AS InRef ON Reference.InRefFk = InRef.RefId " +
|
|
263 |
String strQuery = "SELECT r.RefId, InRef.RefId AS InRefID, r.RefCategoryFk, InRef.RefCategoryFk AS InRefCatFk, r.RefCache, r.NomRefCache, r.Title, r.NomTitleAbbrev as nomTitleAbbrev, RefCategory.RefCategoryAbbrev, InRefCategory.RefCategoryAbbrev AS InRefCat, InRef.Title AS InRefTitle, InRef.nomTitleAbbrev AS inRefnomTitleAbbrev, InRef.refCache AS inRefCache, InRef.nomRefCache AS inRefnomRefCache, " +
|
|
264 |
" InInRefCategory.RefCategoryAbbrev AS InInRefCat, InInRef.refCache AS inInRefCache, InInRef.nomRefCache AS inInRefNomRefCache " +
|
|
265 |
" FROM Reference r " +
|
|
266 |
" INNER JOIN Reference AS InRef ON r.InRefFk = InRef.RefId " +
|
267 |
267 |
" INNER JOIN Reference AS InInRef ON InRef.InRefFk = InInRef.RefId " +
|
268 |
|
" INNER JOIN RefCategory ON Reference.RefCategoryFk = RefCategory.RefCategoryId " +
|
|
268 |
" INNER JOIN RefCategory ON r.RefCategoryFk = RefCategory.RefCategoryId " +
|
269 |
269 |
" INNER JOIN RefCategory AS InRefCategory ON InRef.RefCategoryFk = InRefCategory.RefCategoryId " +
|
270 |
270 |
" INNER JOIN RefCategory AS InInRefCategory ON InInRef.RefCategoryFk = InInRefCategory.RefCategoryId " +
|
271 |
|
" WHERE (Reference.RefCategoryFk = 2) AND (InRef.RefCategoryFk = 1) ";
|
272 |
|
|
|
271 |
" WHERE (r.RefCategoryFk = 2) AND (InRef.RefCategoryFk = 1) ";
|
|
272 |
|
273 |
273 |
if (StringUtils.isNotBlank(config.getReferenceIdTable())){
|
274 |
|
strQuery += String.format(" AND (reference.refId IN " +
|
275 |
|
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
|
274 |
strQuery += String.format(" AND (r.refId IN " +
|
|
275 |
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
276 |
276 |
}
|
|
277 |
if (config.isEuroMed()){
|
|
278 |
strQuery += " AND r.RefId NOT IN (6187, 10269, 26613) ";
|
|
279 |
}
|
|
280 |
|
277 |
281 |
ResultSet rs = source.getResultSet(strQuery);
|
278 |
282 |
boolean firstRow = true;
|
279 |
283 |
while (rs.next()){
|
... | ... | |
300 |
304 |
String inInRefCat = rs.getString("inInRefCat");
|
301 |
305 |
String inInRefCache = rs.getString("inInRefCache");
|
302 |
306 |
String inInRefNomRefCache = rs.getString("inInRefNomRefCache");
|
303 |
|
|
304 |
|
|
305 |
|
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
306 |
|
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache + "\n title: " + title + "\n titleAbbrev: " + nomTitleAbbrev +
|
307 |
|
"\n inRefFk: " + inRefFk + "\n inRefCategory: " + inRefCat +
|
|
307 |
|
|
308 |
|
|
309 |
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
|
310 |
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache + "\n title: " + title + "\n titleAbbrev: " + nomTitleAbbrev +
|
|
311 |
"\n inRefFk: " + inRefFk + "\n inRefCategory: " + inRefCat +
|
308 |
312 |
"\n inRefTitle: " + inRefTitle + "\n inRefTitleAbbrev: " + inRefnomTitleAbbrev +
|
309 |
313 |
"\n inRefnomRefCache: " + inRefnomRefCache + "\n inRefCache: " + inRefCache +
|
310 |
314 |
"\n inInRefCat: " + inInRefCat + "\n inInRefCache: " + inInRefCache +
|
311 |
|
"\n inInRefNomRefCache: " + inInRefNomRefCache
|
312 |
|
|
|
315 |
"\n inInRefNomRefCache: " + inInRefNomRefCache
|
|
316 |
|
313 |
317 |
);
|
314 |
318 |
result = firstRow = false;
|
315 |
319 |
}
|
316 |
|
|
|
320 |
|
317 |
321 |
return result;
|
318 |
322 |
} catch (SQLException e) {
|
319 |
323 |
e.printStackTrace();
|
320 |
324 |
return false;
|
321 |
325 |
}
|
322 |
326 |
}
|
323 |
|
|
|
327 |
|
324 |
328 |
private static boolean checkJournalsWithSeries(BerlinModelImportConfigurator config){
|
325 |
329 |
try {
|
326 |
330 |
boolean result = true;
|
327 |
331 |
Source source = config.getSource();
|
328 |
|
String strQuery = "SELECT Reference.RefId, Reference.RefCategoryFk, Reference.RefCache, Reference.NomRefCache, Reference.Title, Reference.NomTitleAbbrev, Reference.Series, RefCategory.RefCategoryAbbrev " +
|
|
332 |
String strQuery = "SELECT Reference.RefId, Reference.RefCategoryFk, Reference.RefCache, Reference.NomRefCache, Reference.Title, Reference.NomTitleAbbrev, Reference.Series, RefCategory.RefCategoryAbbrev " +
|
329 |
333 |
" FROM Reference INNER JOIN " +
|
330 |
334 |
" RefCategory ON Reference.RefCategoryFk = RefCategory.RefCategoryId " +
|
331 |
335 |
" WHERE (Reference.RefCategoryFk = 9) AND ( Reference.series is not null AND Reference.series <>'') ";
|
332 |
|
|
|
336 |
|
333 |
337 |
if (StringUtils.isNotBlank(config.getReferenceIdTable())){
|
334 |
338 |
strQuery += String.format(" AND (reference.refId IN " +
|
335 |
|
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
|
339 |
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
336 |
340 |
}
|
337 |
|
|
|
341 |
|
338 |
342 |
ResultSet rs = source.getResultSet(strQuery);
|
339 |
343 |
boolean firstRow = true;
|
340 |
344 |
while (rs.next()){
|
... | ... | |
351 |
355 |
String title = rs.getString("title");
|
352 |
356 |
String nomTitleAbbrev = rs.getString("nomTitleAbbrev");
|
353 |
357 |
String series = rs.getString("series");
|
354 |
|
|
355 |
|
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
356 |
|
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache +
|
|
358 |
|
|
359 |
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
|
360 |
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache +
|
357 |
361 |
"\n title: " + title + "\n nomTitleAbbrev: " + nomTitleAbbrev +
|
358 |
362 |
"\n series: " + series );
|
359 |
363 |
result = firstRow = false;
|
360 |
364 |
}
|
361 |
|
|
|
365 |
|
362 |
366 |
return result;
|
363 |
367 |
} catch (SQLException e) {
|
364 |
368 |
e.printStackTrace();
|
365 |
369 |
return false;
|
366 |
370 |
}
|
367 |
371 |
}
|
368 |
|
|
|
372 |
|
369 |
373 |
private static boolean checkPartOfWithVolume(BerlinModelImportConfigurator config){
|
370 |
374 |
try {
|
371 |
375 |
boolean result = true;
|
372 |
376 |
Source source = config.getSource();
|
373 |
377 |
String strQuery = "SELECT Ref.RefId as refId, RefCategory.RefCategoryAbbrev as refCategoryAbbrev, Ref.nomRefCache as nomRefCache, Ref.refCache as refCache,Ref.volume as volume, Ref.Series as series, Ref.Edition as edition, Ref.title as title, Ref.nomTitleAbbrev as nomTitleAbbrev,InRef.RefCache as inRefRefCache, InRef.NomRefCache as inRefNomRefCache, InRef.RefId as inRefId, InRef.Volume as inRefVol, InRef.Series as inRefSeries, InRef.Edition as inRefEdition" +
|
374 |
|
" FROM Reference AS Ref " +
|
|
378 |
" FROM Reference AS Ref " +
|
375 |
379 |
" INNER JOIN RefCategory ON Ref.RefCategoryFk = RefCategory.RefCategoryId " +
|
376 |
380 |
" LEFT OUTER JOIN Reference AS InRef ON Ref.InRefFk = InRef.RefId " +
|
377 |
|
" WHERE (Ref.RefCategoryFk = 2) AND ((Ref.Volume IS NOT NULL) OR (Ref.Series IS NOT NULL) OR (Ref.Edition IS NOT NULL)) " ;
|
378 |
|
|
|
381 |
" WHERE (Ref.RefCategoryFk = 2) AND ((Ref.Volume IS NOT NULL) OR (Ref.Series IS NOT NULL) OR (Ref.Edition IS NOT NULL)) " ;
|
|
382 |
|
379 |
383 |
if (StringUtils.isNotBlank(config.getReferenceIdTable())){
|
380 |
384 |
strQuery += String.format(" AND (Ref.refId IN " +
|
381 |
|
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
|
385 |
" (SELECT refId FROM %s ))" , config.getReferenceIdTable()) ;
|
382 |
386 |
}
|
383 |
|
|
|
387 |
|
384 |
388 |
ResultSet rs = source.getResultSet(strQuery);
|
385 |
389 |
boolean firstRow = true;
|
386 |
390 |
while (rs.next()){
|
... | ... | |
404 |
408 |
String inRefVolume = rs.getString("inRefVol");
|
405 |
409 |
String inRefSeries = rs.getString("inRefSeries");
|
406 |
410 |
String inRefEdition = rs.getString("inRefEdition");
|
407 |
|
|
408 |
|
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
409 |
|
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache +
|
|
411 |
|
|
412 |
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
|
413 |
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache +
|
410 |
414 |
"\n title: " + title + "\n nomTitleAbbrev: " + nomTitleAbbrev + "\n volume: " + volume + "\n series: " + series +"\n edition: " + edition +
|
411 |
|
"\n inRef-ID:" + inRefId + "\n inRef-cache: " + inRefRefCache +
|
|
415 |
"\n inRef-ID:" + inRefId + "\n inRef-cache: " + inRefRefCache +
|
412 |
416 |
"\n inRef-nomCache: " + inRefNomRefCache + "\n inRef-volume: " + inRefVolume +"\n inRef-series: " + inRefSeries +"\n inRef-edition: " + inRefEdition +
|
413 |
417 |
"" );
|
414 |
418 |
result = firstRow = false;
|
415 |
419 |
}
|
416 |
|
|
|
420 |
|
417 |
421 |
return result;
|
418 |
422 |
} catch (SQLException e) {
|
419 |
423 |
e.printStackTrace();
|
420 |
424 |
return false;
|
421 |
425 |
}
|
422 |
426 |
}
|
423 |
|
|
|
427 |
|
424 |
428 |
private static boolean checkArticleWithEdition(BerlinModelImportConfigurator config){
|
425 |
429 |
try {
|
426 |
430 |
boolean result = true;
|
427 |
431 |
Source source = config.getSource();
|
428 |
432 |
String strQuery = "SELECT Ref.RefId as refId, RefCategory.RefCategoryAbbrev as refCategoryAbbrev, Ref.nomRefCache as nomRefCache, Ref.refCache as refCache,Ref.edition as edition, Ref.title as title, Ref.nomTitleAbbrev as nomTitleAbbrev,InRef.RefCache as inRefRefCache, InRef.NomRefCache as inRefNomRefCache, InRef.RefId as inRefId, InRef.Edition as inRefEdition" +
|
429 |
|
" FROM Reference AS Ref " +
|
|
433 |
" FROM Reference AS Ref " +
|
430 |
434 |
" INNER JOIN RefCategory ON Ref.RefCategoryFk = RefCategory.RefCategoryId " +
|
431 |
435 |
" LEFT OUTER JOIN Reference AS InRef ON Ref.InRefFk = InRef.RefId " +
|
432 |
436 |
" WHERE (Ref.RefCategoryFk = 1) AND (NOT (Ref.Edition IS NULL)) ";
|
433 |
|
|
|
437 |
|
434 |
438 |
if (StringUtils.isNotBlank(config.getReferenceIdTable())){
|
435 |
439 |
strQuery += String.format(" AND (Ref.refId IN " +
|
436 |
|
" (SELECT refId FROM %s )) " , config.getReferenceIdTable()) ;
|
|
440 |
" (SELECT refId FROM %s )) " , config.getReferenceIdTable()) ;
|
437 |
441 |
}
|
438 |
442 |
strQuery += " ORDER BY InRef.RefId ";
|
439 |
|
|
440 |
|
|
|
443 |
|
|
444 |
|
441 |
445 |
ResultSet rs = source.getResultSet(strQuery);
|
442 |
446 |
boolean firstRow = true;
|
443 |
447 |
while (rs.next()){
|
... | ... | |
457 |
461 |
String inRefNomRefCache = rs.getString("inRefNomRefCache");
|
458 |
462 |
int inRefId = rs.getInt("inRefId");
|
459 |
463 |
String inRefEdition = rs.getString("inRefEdition");
|
460 |
|
|
461 |
|
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
462 |
|
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache +
|
463 |
|
"\n title: " + title + "\n nomTitleAbbrev: " + nomTitleAbbrev + "\n edition: " + edition +
|
464 |
|
"\n inRef-ID:" + inRefId + "\n inRef-cache: " + inRefRefCache +
|
|
464 |
|
|
465 |
System.out.println("RefID:" + refId + "\n cat: " + cat +
|
|
466 |
"\n refCache: " + refCache + "\n nomRefCache: " + nomRefCache +
|
|
467 |
"\n title: " + title + "\n nomTitleAbbrev: " + nomTitleAbbrev + "\n edition: " + edition +
|
|
468 |
"\n inRef-ID:" + inRefId + "\n inRef-cache: " + inRefRefCache +
|
465 |
469 |
"\n inRef-nomCache: " + inRefNomRefCache + "\n inRef-edition: " + inRefEdition +
|
466 |
470 |
"" );
|
467 |
471 |
result = firstRow = false;
|
468 |
472 |
}
|
469 |
|
|
|
473 |
|
470 |
474 |
return result;
|
471 |
475 |
} catch (SQLException e) {
|
472 |
476 |
e.printStackTrace();
|
473 |
477 |
return false;
|
474 |
478 |
}
|
475 |
479 |
}
|
476 |
|
|
|
480 |
|
477 |
481 |
protected boolean checkObligatoryAttributes(BerlinModelImportConfigurator config, BerlinModelReferenceImport refImport){
|
478 |
482 |
boolean result = true;
|
479 |
|
|
|
483 |
|
480 |
484 |
try {
|
481 |
485 |
String strQuery = " SELECT Reference.* " +
|
482 |
486 |
" FROM Reference " +
|
... | ... | |
490 |
494 |
existingAttributes.add(rs.getMetaData().getColumnLabel(c+1).toLowerCase());
|
491 |
495 |
}
|
492 |
496 |
Set<String> obligatoryAttributes = refImport.getObligatoryAttributes(true, config);
|
493 |
|
|
|
497 |
|
494 |
498 |
obligatoryAttributes.removeAll(existingAttributes);
|
495 |
499 |
for (String attr : obligatoryAttributes){
|
496 |
500 |
System.out.println("Missing attribute: " + attr);
|
497 |
501 |
}
|
498 |
|
|
|
502 |
|
499 |
503 |
//additional Attributes
|
500 |
504 |
obligatoryAttributes = refImport.getObligatoryAttributes(true, config);
|
501 |
|
|
|
505 |
|
502 |
506 |
existingAttributes.removeAll(obligatoryAttributes);
|
503 |
507 |
for (String attr : existingAttributes){
|
504 |
508 |
System.out.println("Additional attribute: " + attr);
|
... | ... | |
513 |
517 |
|
514 |
518 |
protected boolean checkRefDetailUnimplementedAttributes(BerlinModelImportConfigurator config){
|
515 |
519 |
boolean result = true;
|
516 |
|
|
|
520 |
|
517 |
521 |
try {
|
518 |
522 |
String strQuery = " SELECT Count(*) as n" +
|
519 |
523 |
" FROM RefDetail " +
|
... | ... | |
521 |
525 |
" WHERE SecondarySources is not NULL AND SecondarySources <> '' ";
|
522 |
526 |
Source source = config.getSource();
|
523 |
527 |
ResultSet rs = source.getResultSet(strQuery);
|
524 |
|
|
|
528 |
|
525 |
529 |
rs.next();
|
526 |
530 |
int count = rs.getInt("n");
|
527 |
531 |
if (count > 0){
|
528 |
532 |
System.out.println("========================================================");
|
529 |
533 |
System.out.println("There are "+ count + " RefDetails with SecondarySources <> NULL ! Secondary sources are not yet implemented for Berlin Model Import");
|
530 |
534 |
System.out.println("========================================================");
|
531 |
|
|
|
535 |
|
532 |
536 |
}
|
533 |
537 |
strQuery = " SELECT Count(*) as n" +
|
534 |
538 |
" FROM RefDetail " +
|
535 |
539 |
// " INNER JOIN Reference ON Reference.RefId = RefDetail.RefFk " +
|
536 |
540 |
" WHERE IdInSource is not NULL AND IdInSource <> '' ";
|
537 |
541 |
rs = source.getResultSet(strQuery);
|
538 |
|
|
|
542 |
|
539 |
543 |
rs.next();
|
540 |
544 |
count = rs.getInt("n");
|
541 |
545 |
if (count > 0){
|
542 |
546 |
System.out.println("========================================================");
|
543 |
547 |
System.out.println("There are "+ count + " RefDetails with IdInSource <> NULL ! IdInSource are not yet implemented for Berlin Model Import");
|
544 |
548 |
System.out.println("========================================================");
|
545 |
|
|
|
549 |
|
546 |
550 |
}
|
547 |
|
|
|
551 |
|
548 |
552 |
} catch (SQLException e) {
|
549 |
553 |
logger.error(e);
|
550 |
554 |
e.printStackTrace();
|
... | ... | |
557 |
561 |
/* (non-Javadoc)
|
558 |
562 |
* @see eu.etaxonomy.cdm.io.common.IOValidator#validate(eu.etaxonomy.cdm.io.common.IoStateBase)
|
559 |
563 |
*/
|
560 |
|
@Deprecated //use validate(state, import) instead
|
|
564 |
@Override
|
|
565 |
@Deprecated //use validate(state, import) instead
|
561 |
566 |
public boolean validate(BerlinModelImportState state) {
|
562 |
567 |
logger.warn("BerlinModelReferenceImport uses wrong validation method");
|
563 |
568 |
return false;
|
cleanup and improve BM validators