Project

General

Profile

« Previous | Next » 

Revision c29d1c8f

Added by Andreas Müller over 5 years ago

cleanup and improve BM validators

View differences:

app-import/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/validation/BerlinModelCommonNamesImportValidator.java
173 173
			int count = rs.getInt("n");
174 174
			if (count > 0){
175 175
				System.out.println("========================================================");
176
				logger.warn("There are " + count + " common names that have a languageRefFk which can not be found in the emLanguageRefernce table.");
177

  
176
				System.out.println("There are " + count + " common names that have a languageRefFk which can not be found in the emLanguageReference table.");
178 177
				System.out.println("========================================================");
179 178
			}
180 179
			if (count > 0){
......
194 193
		try {
195 194
			boolean result = true;
196 195
			Source source = config.getSource();
197
			String strQuery = "SELECT cn.CommonNameId, cn.CommonName, pt.StatusFk, n.FullNameCache, s.Status, pt.PTRefFk, r.RefCache " +
196
			String strQuery = "SELECT cn.CommonNameId, cn.CommonName, pt.StatusFk, n.FullNameCache, s.Status, pt.PTRefFk, pt.PTNameFk, r.RefCache " +
198 197
						" FROM emCommonName cn " +
199 198
							" INNER JOIN PTaxon pt ON cn.PTNameFk = pt.PTNameFk AND cn.PTRefFk = pt.PTRefFk " +
200 199
			                " INNER JOIN Name n ON pt.PTNameFk = n.NameId " +
......
220 219
				String status = resulSet.getString("Status");
221 220
				String fullNameCache = resulSet.getString("FullNameCache");
222 221
				String ptRefFk = resulSet.getString("PTRefFk");
223
				String ptRef = resulSet.getString("RefCache");
222
				String ptNameFk = resulSet.getString("PTNameFk");
223
                String ptRef = resulSet.getString("RefCache");
224 224

  
225 225
				System.out.println("CommonNameId: " + commonNameId + "\n CommonName: " + commonName +
226 226
						"\n  Status: " + status +
227
						"\n  FullNameCache: " + fullNameCache +  "\n  ptRefFk: " + ptRefFk +
228
						"\n  sec: " + ptRef );
227
						"\n  FullNameCache: " + fullNameCache +
228
						"\n  ptRefFk: " + ptRefFk +
229
						"\n  ptNameFk: " + ptNameFk +
230
                        "\n  sec: " + ptRef );
229 231

  
230 232
				result = firstRow = false;
231 233
			}
app-import/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/validation/BerlinModelOccurrenceImportValidator.java
97 97
            boolean result = true;
98 98
            Source source = config.getSource();
99 99
            String strSelect = "SELECT OccurrenceId, PTNameFk, PTRefFk, AreaFk, Sources, Created_When, Created_Who, Updated_When, Updated_Who, Notes, Occurrence ";
100
            String strCount = " SELECT count(*) ";
100
            String strCount = " SELECT count(*) as n";
101 101
            String strQueryBase =
102 102
                    " FROM emOccurrence " +
103 103
                    " WHERE (Sources LIKE '%  %') OR (Sources LIKE '% ') OR (Sources LIKE ' %') ";
app-import/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/validation/BerlinModelOccurrenceSourceImportValidator.java
24 24
 * @since 17.02.2010
25 25
 */
26 26
public class BerlinModelOccurrenceSourceImportValidator implements IOValidator<BerlinModelImportState> {
27
	private static final Logger logger = Logger.getLogger(BerlinModelOccurrenceSourceImportValidator.class);
27
	@SuppressWarnings("unused")
28
    private static final Logger logger = Logger.getLogger(BerlinModelOccurrenceSourceImportValidator.class);
28 29

  
29 30
	@Override
30 31
    public boolean validate(BerlinModelImportState state) {
......
42 43
            boolean result = true;
43 44
            Source source = config.getSource();
44 45
            String strSelect = " SELECT OccurrenceSourceId, OccurrenceFk, Source, SourceNumber, OldName, OldNameFk, PreferredReferenceFlag ";
45
            String strCount = " count(*) ";
46
            String strCount = " SELECT count(*) as n";
46 47
            String strQueryBase =
47 48
                    " FROM emOccurrenceSource " +
48 49
                    " WHERE SourceNumber LIKE '% %' ";
app-import/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/validation/BerlinModelReferenceImportValidator.java
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;

Also available in: Unified diff