Project

General

Profile

Download (3.34 KB) Statistics
| Branch: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
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.
9
*/
10

    
11
package eu.etaxonomy.cdm.io.berlinModel.in.validation;
12

    
13
import java.sql.ResultSet;
14
import java.sql.SQLException;
15

    
16
import org.apache.commons.lang.StringUtils;
17
import org.apache.log4j.Logger;
18

    
19
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator;
20
import eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportState;
21
import eu.etaxonomy.cdm.io.common.IOValidator;
22
import eu.etaxonomy.cdm.io.common.Source;
23

    
24
/**
25
 * @author a.mueller
26
 * @created 17.02.2010
27
 */
28
public class BerlinModelOccurrenceImportValidator implements IOValidator<BerlinModelImportState> {
29
	private static final Logger logger = Logger.getLogger(BerlinModelOccurrenceImportValidator.class);
30

    
31
	@Override
32
	public boolean validate(BerlinModelImportState state) {
33
		boolean result = true;
34
		BerlinModelImportConfigurator bmiConfig = state.getConfig();
35
		result &= checkTaxonIsAccepted(bmiConfig);
36
		//result &= checkPartOfJournal(bmiConfig);
37
		System.out.println("Checking for Occurrence not yet fully implemented");
38
		return result;
39
	}
40
	
41
	
42
	//******************************** CHECK *************************************************
43
		
44
	private static boolean checkTaxonIsAccepted(BerlinModelImportConfigurator config){
45
		try {
46
			boolean result = true;
47
			Source source = config.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 NOT IN ( 1, 5))  ";
55

    
56
			if (StringUtils.isNotBlank(config.getOccurrenceFilter())){
57
				strQuery += String.format(" AND (%s) ", config.getOccurrenceFilter()) ; 
58
			}
59

    
60
			
61
			ResultSet resulSet = source.getResultSet(strQuery);
62
			boolean firstRow = true;
63
			while (resulSet.next()){
64
				if (firstRow){
65
					System.out.println("========================================================");
66
					System.out.println("There are Occurrences for a taxon that is not accepted!");
67
					System.out.println("========================================================");
68
				}
69
				int occurrenceId = resulSet.getInt("OccurrenceId");
70
//					int statusFk = resulSet.getInt("StatusFk");
71
				String status = resulSet.getString("Status");
72
				String fullNameCache = resulSet.getString("FullNameCache");
73
				String ptRefFk = resulSet.getString("PTRefFk");
74
				String ptRef = resulSet.getString("RefCache");
75
				
76
				System.out.println("OccurrenceId:" + occurrenceId + "\n  Status: " + status + 
77
						"\n  FullNameCache: " + fullNameCache +  "\n  ptRefFk: " + ptRefFk +
78
						"\n  sec: " + ptRef );
79
				
80
				result = firstRow = false;
81
			}
82
			
83
			return result;
84
		} catch (SQLException e) {
85
			e.printStackTrace();
86
			return false;
87
		}
88
	}
89

    
90
}
(8-8/19)