2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.cdm
.io
.pesi
.erms
.validation
;
12 import java
.sql
.ResultSet
;
13 import java
.sql
.SQLException
;
15 import org
.apache
.log4j
.Logger
;
17 import eu
.etaxonomy
.cdm
.io
.common
.IOValidator
;
18 import eu
.etaxonomy
.cdm
.io
.common
.Source
;
19 import eu
.etaxonomy
.cdm
.io
.pesi
.erms
.ErmsImportConfigurator
;
20 import eu
.etaxonomy
.cdm
.io
.pesi
.erms
.ErmsImportState
;
23 * ERMS reference validator.
29 public class ErmsReferenceImportValidator
implements IOValidator
<ErmsImportState
>{
30 private static final Logger logger
= Logger
.getLogger(ErmsReferenceImportValidator
.class);
33 public boolean validate(ErmsImportState state
){
34 boolean result
= true;
35 ErmsImportConfigurator config
= state
.getConfig();
36 logger
.info("Checking for references not yet fully implemented");
37 // result &= checkTaxonStatus(config);
41 private boolean checkTaxonStatus(ErmsImportConfigurator bmiConfig
){
43 boolean result
= true;
44 Source source
= bmiConfig
.getSource();
45 String strSQL
= " SELECT RelPTaxon.RelQualifierFk, RelPTaxon.relPTaxonId, PTaxon.PTNameFk, PTaxon.PTRefFk, PTaxon_1.PTNameFk AS Expr1, PTaxon.RIdentifier, PTaxon_1.RIdentifier AS Expr3, Name.FullNameCache " +
47 " INNER JOIN PTaxon ON RelPTaxon.PTNameFk1 = PTaxon.PTNameFk AND RelPTaxon.PTRefFk1 = PTaxon.PTRefFk " +
48 " INNER JOIN PTaxon AS PTaxon_1 ON RelPTaxon.PTNameFk2 = PTaxon_1.PTNameFk AND RelPTaxon.PTRefFk2 = PTaxon_1.PTRefFk " +
49 " INNER JOIN Name ON PTaxon.PTNameFk = Name.NameId " +
50 " WHERE (dbo.PTaxon.StatusFk = 1) AND ((RelPTaxon.RelQualifierFk = 7) OR (RelPTaxon.RelQualifierFk = 6) OR (RelPTaxon.RelQualifierFk = 2)) ";
51 ResultSet rs
= source
.getResultSet(strSQL
);
52 boolean firstRow
= true;
57 System
.out
.println("========================================================");
58 logger
.warn("There are taxa that have a 'is synonym of' - relationship but having taxon status 'accepted'!");
59 System
.out
.println("========================================================");
61 int rIdentifier
= rs
.getInt("RIdentifier");
62 int nameFk
= rs
.getInt("PTNameFk");
63 int refFk
= rs
.getInt("PTRefFk");
64 int relPTaxonId
= rs
.getInt("relPTaxonId");
65 String taxonName
= rs
.getString("FullNameCache");
67 System
.out
.println("RIdentifier:" + rIdentifier
+ "\n name: " + nameFk
+
68 "\n taxonName: " + taxonName
+ "\n refId: " + refFk
+ "\n RelPTaxonId: " + relPTaxonId
);
69 result
= firstRow
= false;
72 System
.out
.println(" ");
76 } catch (SQLException e
) {