3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.cdm
.io
.eflora
.centralAfrica
.checklist
.validation
;
13 import org
.apache
.log4j
.Logger
;
15 import eu
.etaxonomy
.cdm
.io
.common
.IOValidator
;
16 import eu
.etaxonomy
.cdm
.io
.eflora
.centralAfrica
.checklist
.CentralAfricaChecklistImportConfigurator
;
17 import eu
.etaxonomy
.cdm
.io
.eflora
.centralAfrica
.checklist
.CentralAfricaChecklistImportState
;
18 import eu
.etaxonomy
.cdm
.io
.eflora
.centralAfrica
.ferns
.CentralAfricaFernsImportConfigurator
;
19 import eu
.etaxonomy
.cdm
.io
.eflora
.centralAfrica
.ferns
.CentralAfricaFernsImportState
;
26 public class CentralAfricaChecklistTaxonImportValidator
implements IOValidator
<CentralAfricaChecklistImportState
>{
27 private static final Logger logger
= Logger
.getLogger(CentralAfricaChecklistTaxonImportValidator
.class);
29 public boolean validate(CentralAfricaChecklistImportState state
){
30 boolean result
= true;
31 CentralAfricaChecklistImportConfigurator config
= state
.getConfig();
32 logger
.warn("Checking for Taxa not yet fully implemented");
33 // result &= checkParentTaxonStatus(config);
34 // result &= checkAccParentTaxonStatus(config);
35 result
&= checkSynonymsAcceptedTaxonStatus(config
);
39 // private boolean checkAccParentTaxonStatus(CentralAfricaFernsImportConfigurator bmiConfig){
41 // boolean result = true;
42 // Source source = bmiConfig.getSource();
44 // " SELECT myTaxon.id AS childId, childStatus.status_name AS childStatus, myTaxon.tu_status, " +
45 // " myTaxon.tu_displayname AS childDisplayName, parent.id AS parentId, parent.tu_status AS parentStatusId, parentStatus.status_name AS parentStatus, " +
46 // " parent.tu_displayname as parentName, parentAcc.id AS parentAccId, parentAccStatus.status_name AS parentAccStatus, parentAcc.tu_displayname AS parentAccName, " +
47 // " parentAcc.tu_status AS Expr1 " +
48 // " FROM status AS parentAccStatus INNER JOIN " +
49 // " tu AS parentAcc ON parentAccStatus.status_id = parentAcc.tu_status RIGHT OUTER JOIN " +
50 // " tu AS parent ON parentAcc.id = parent.tu_acctaxon RIGHT OUTER JOIN " +
51 // " tu AS myTaxon ON parent.id = myTaxon.tu_parent LEFT OUTER JOIN " +
52 // " status AS parentStatus ON parent.tu_status = parentStatus.status_id LEFT OUTER JOIN " +
53 // " status AS childStatus ON myTaxon.tu_status = childStatus.status_id " +
54 // " WHERE (myTaxon.tu_status = 1) AND (parent.tu_status <> 1) " +
55 // " ORDER BY parentStatusId";
56 // ResultSet rs = source.getResultSet(strSQL);
57 // boolean firstRow = true;
62 // System.out.println("========================================================");
63 // logger.warn("There are accepted taxa that have an unaccepted parent and also the parents accepted taxon (tu_acctaxon) is not accepted. ");
64 // System.out.println("========================================================");
66 // int childId = rs.getInt("childId");
67 // String childName = rs.getString("childDisplayName");
69 // int parentId = rs.getInt("parentId");
70 // String parentName = rs.getString("parentName");
71 // String parentStatus = rs.getString("parentStatus");
73 // int accParentId = rs.getInt("parentAccId");
74 // String accParentName = rs.getString("parentAccName");
75 // String accParentStatus = rs.getString("parentAccStatus");
77 // System.out.println(
78 // "ChildId:" + childId + "\n childName: " + childName +
79 // "\n ParentId: " + parentId + "\n parentName: " + parentName + "\n parentStatus: " + parentStatus +
80 // "\n ParentAccId: " + accParentId + "\n accParentName: " + accParentName + "\n accParentStatus: " + accParentStatus );
81 // result = firstRow = false;
84 // System.out.println(" ");
88 // } catch (SQLException e) {
89 // e.printStackTrace();
94 private boolean checkSynonymsAcceptedTaxonStatus(CentralAfricaChecklistImportConfigurator bmiConfig
){
96 // boolean result = true;
97 //// Source source = bmiConfig.getSource();
99 //// " SELECT myTaxon.id AS synonymId, myTaxon.tu_displayname AS synonymName, synonymStatus.status_name AS synonymStatus, " +
100 //// " accTaxon.id AS acceptedId, accTaxon.tu_displayname AS acceptedName, acceptedStatus.status_name AS acceptedStatus " +
101 //// " FROM tu AS myTaxon INNER JOIN " +
102 //// " tu AS accTaxon ON myTaxon.tu_acctaxon = accTaxon.id INNER JOIN " +
103 //// " status AS synonymStatus ON myTaxon.tu_status = synonymStatus.status_id INNER JOIN " +
104 //// " status AS acceptedStatus ON accTaxon.tu_status = acceptedStatus.status_id " +
105 //// " WHERE (myTaxon.tu_status <> 1) AND (accTaxon.tu_status <> 1) " +
106 //// " ORDER BY myTaxon.tu_status, accTaxon.tu_status ";
107 //// ResultSet rs = source.getResultSet(strSQL);
108 //// boolean firstRow = true;
110 //// while (rs.next()){
113 //// System.out.println("========================================================");
114 //// logger.warn("There are accepted synonyms that have an unaccepted taxon that has no status 'accepted'. ");
115 //// System.out.println("========================================================");
117 //// int synonymId = rs.getInt("synonymId");
118 //// String synonymName = rs.getString("synonymName");
119 //// String synonymStatus = rs.getString("synonymStatus");
121 //// int acceptedId = rs.getInt("acceptedId");
122 //// String acceptedName = rs.getString("acceptedName");
123 //// String acceptedStatus = rs.getString("acceptedStatus");
125 //// System.out.println(
126 //// "SynonymId:" + synonymId + "\n synonymName: " + synonymName + "\n synonymStatus: " + synonymStatus +
127 //// "\n AcceptedId: " + acceptedId + "\n acceptedName: " + acceptedName + "\n acceptedStatus: " + acceptedStatus
128 ////// + "\n parentAccId: " + acceptedId + "\n accParentName: " + accParentName + "\n accParentStatus: " + accParentStatus
130 //// result = firstRow = false;
133 //// System.out.println(" ");
137 // } catch (SQLException e) {
138 // e.printStackTrace();