Revision 0d76bb7d
Added by Andreas Müller over 5 years ago
app-import/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/validation/BerlinModelOccurrenceSourceImportValidator.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 |
*/ |
... | ... | |
26 | 26 |
public class BerlinModelOccurrenceSourceImportValidator implements IOValidator<BerlinModelImportState> { |
27 | 27 |
private static final Logger logger = Logger.getLogger(BerlinModelOccurrenceSourceImportValidator.class); |
28 | 28 |
|
29 |
/* (non-Javadoc) |
|
30 |
* @see eu.etaxonomy.cdm.io.common.IOValidator#validate(eu.etaxonomy.cdm.io.common.IoStateBase) |
|
31 |
*/ |
|
32 |
public boolean validate(BerlinModelImportState state) { |
|
29 |
@Override |
|
30 |
public boolean validate(BerlinModelImportState state) { |
|
33 | 31 |
boolean result = true; |
34 |
BerlinModelImportConfigurator bmiConfig = state.getConfig(); |
|
35 |
// result &= checkTaxonIsAccepted(bmiConfig); |
|
36 |
//result &= checkPartOfJournal(bmiConfig); |
|
37 |
System.out.println("Checking for OccurrenceSources not yet implemented"); |
|
32 |
BerlinModelImportConfigurator config = state.getConfig(); |
|
33 |
result &= checkSourcesWithWhitespace(config); |
|
38 | 34 |
return result; |
39 | 35 |
} |
40 |
|
|
41 |
|
|
36 |
|
|
37 |
|
|
42 | 38 |
//******************************** CHECK ************************************************* |
43 |
|
|
44 |
private static boolean checkTaxonIsAccepted(BerlinModelImportConfigurator bmiConfig){
|
|
45 |
try {
|
|
46 |
boolean result = true;
|
|
47 |
Source source = bmiConfig.getSource();
|
|
48 |
String strQuery = "SELECT emOccurrence.OccurrenceId, PTaxon.StatusFk, Name.FullNameCache, Status.Status, PTaxon.PTRefFk, Reference.RefCache " +
|
|
49 |
" FROM emOccurrence INNER JOIN " +
|
|
50 |
" PTaxon ON emOccurrence.PTNameFk = PTaxon.PTNameFk AND emOccurrence.PTRefFk = PTaxon.PTRefFk INNER JOIN " +
|
|
51 |
" Name ON PTaxon.PTNameFk = Name.NameId INNER JOIN " +
|
|
52 |
" Status ON PTaxon.StatusFk = Status.StatusId LEFT OUTER JOIN " +
|
|
53 |
" Reference ON PTaxon.PTRefFk = Reference.RefId " + |
|
54 |
" WHERE (PTaxon.StatusFk <> 1) ";
|
|
55 |
|
|
56 |
ResultSet resulSet = source.getResultSet(strQuery);
|
|
57 |
boolean firstRow = true;
|
|
58 |
while (resulSet.next()){
|
|
59 |
if (firstRow){
|
|
60 |
System.out.println("========================================================");
|
|
61 |
logger.warn("There are Occurrences for a taxon that is not accepted!");
|
|
62 |
System.out.println("========================================================");
|
|
63 |
}
|
|
64 |
int occurrenceId = resulSet.getInt("OccurrenceId"); |
|
65 |
int statusFk = resulSet.getInt("StatusFk");
|
|
66 |
String status = resulSet.getString("Status");
|
|
67 |
String fullNameCache = resulSet.getString("FullNameCache");
|
|
68 |
String ptRefFk = resulSet.getString("PTRefFk");
|
|
69 |
String ptRef = resulSet.getString("RefCache");
|
|
70 |
|
|
71 |
System.out.println("OccurrenceId:" + occurrenceId + "\n Status: " + status +
|
|
72 |
"\n FullNameCache: " + fullNameCache + "\n ptRefFk: " + ptRefFk +
|
|
73 |
"\n sec: " + ptRef );
|
|
74 |
|
|
75 |
result = firstRow = false;
|
|
76 |
} |
|
77 |
|
|
78 |
return result;
|
|
79 |
} catch (SQLException e) {
|
|
80 |
e.printStackTrace();
|
|
81 |
return false;
|
|
82 |
}
|
|
83 |
} |
|
39 |
|
|
40 |
private static boolean checkSourcesWithWhitespace(BerlinModelImportConfigurator config){
|
|
41 |
try {
|
|
42 |
boolean result = true;
|
|
43 |
Source source = config.getSource();
|
|
44 |
String strSelect = " SELECT OccurrenceSourceId, OccurrenceFk, Source, SourceNumber, OldName, OldNameFk, PreferredReferenceFlag ";
|
|
45 |
String strCount = " count(*) ";
|
|
46 |
String strQueryBase =
|
|
47 |
" FROM emOccurrenceSource " +
|
|
48 |
" WHERE SourceNumber LIKE '% %' ";
|
|
49 |
|
|
50 |
ResultSet rs = source.getResultSet(strCount + strQueryBase);
|
|
51 |
rs.next(); |
|
52 |
int n = rs.getInt("n");
|
|
53 |
if (n > 0){
|
|
54 |
System.out.println("=======================================================================");
|
|
55 |
System.out.println("There are "+n+" occurrence source numbers with whitespace!");
|
|
56 |
System.out.println("---------------------------------------------------------------");
|
|
57 |
System.out.println(strSelect + strQueryBase);
|
|
58 |
System.out.println("=======================================================================");
|
|
59 |
}
|
|
60 |
|
|
61 |
rs = source.getResultSet(strSelect + strQueryBase);
|
|
62 |
while (rs.next()){
|
|
63 |
int occurrenceSourceId = rs.getInt("OccurrenceSourceId");
|
|
64 |
String sourceNumber = rs.getString("SourceNumber");
|
|
65 |
String Source = rs.getString("Source");
|
|
66 |
|
|
67 |
System.out.println("OccurrenceSourceId:" + occurrenceSourceId +
|
|
68 |
"\n Source Number: " + sourceNumber +
|
|
69 |
"\n Source: " + Source)
|
|
70 |
; |
|
71 |
}
|
|
72 |
|
|
73 |
return result; |
|
74 |
} catch (SQLException e) {
|
|
75 |
e.printStackTrace();
|
|
76 |
return false;
|
|
77 |
}
|
|
78 |
}
|
|
79 |
|
|
84 | 80 |
|
85 | 81 |
} |
Also available in: Unified diff
add tests for occurrences sources with unwanted whitespaces