Project

General

Profile

Download (5.35 KB) Statistics
| Branch: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy 
4
* http://www.e-taxonomy.eu
5
* 
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.
8
*/
9
package eu.etaxonomy.cdm.io.pesi.erms.validation;
10

    
11
import java.sql.ResultSet;
12
import java.sql.SQLException;
13
import java.util.Map;
14

    
15
import org.apache.log4j.Logger;
16
import org.springframework.stereotype.Component;
17

    
18
import eu.etaxonomy.cdm.io.common.IOValidator;
19
import eu.etaxonomy.cdm.io.common.ResultSetPartitioner;
20
import eu.etaxonomy.cdm.io.common.Source;
21
import eu.etaxonomy.cdm.io.common.mapping.DbImportMapping;
22
import eu.etaxonomy.cdm.io.pesi.erms.ErmsImportBase;
23
import eu.etaxonomy.cdm.io.pesi.erms.ErmsImportConfigurator;
24
import eu.etaxonomy.cdm.io.pesi.erms.ErmsImportState;
25
import eu.etaxonomy.cdm.model.common.CdmBase;
26

    
27

    
28
/**
29
 * For validating general consistencies like existence of tables, etc.
30
 * @author a.mueller
31
 * @created 10.06.2009
32
 * @version 1.0
33
 */
34
@Component
35
public class ErmsGeneralImportValidator extends ErmsImportBase<CdmBase> implements IOValidator<ErmsImportState> {
36
	private static final Logger logger = Logger.getLogger(ErmsGeneralImportValidator.class);
37

    
38
	public ErmsGeneralImportValidator(){
39
		super(null, null, null);
40
	}
41
	
42
	/* (non-Javadoc)
43
	 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IoStateBase)
44
	 */
45
	@Override
46
	protected boolean doCheck(ErmsImportState state){
47
		return validate(state);
48
	}
49
	
50

    
51
	/* (non-Javadoc)
52
	 * @see eu.etaxonomy.cdm.io.common.IOValidator#validate(eu.etaxonomy.cdm.io.common.IoStateBase)
53
	 */
54
	public boolean validate(ErmsImportState state) {
55
		boolean result = true;
56
		ErmsImportConfigurator config = state.getConfig();
57
//		result &= checkRelAuthorsExist(config);
58
//		result &= checkRelReferenceExist(config);
59
		
60
		return result;
61
	}
62
	
63
	protected void doInvoke(ErmsImportState state){
64
		//do nothing
65
		return;
66
		
67
	}
68
	
69
	private boolean checkRelAuthorsExist(ErmsImportConfigurator config){
70
		
71
		try {
72
			boolean result = true;
73
			Source source = config.getSource();
74
			String strQuery = "SELECT Count(*) as n " +
75
					" FROM RelAuthor "
76
					;
77
			ResultSet rs = source.getResultSet(strQuery);
78
			rs.next();
79
			int count = rs.getInt("n");
80
			if (count > 0){
81
				System.out.println("========================================================");
82
				logger.warn("There are "+count+" RelAuthors, but RelAuthors are not implemented for CDM yet.");
83
				System.out.println("========================================================");
84
			}
85
			return result;
86
		} catch (SQLException e) {
87
			e.printStackTrace();
88
			return false;
89
		}
90

    
91
	}
92
	
93
	private boolean checkRelReferenceExist(ErmsImportConfigurator config){
94
		
95
		try {
96
			boolean result = true;
97
			Source source = config.getSource();
98
			String strQuery = "SELECT Count(*) as n " +
99
					" FROM RelReference "
100
					;
101
			ResultSet rs = source.getResultSet(strQuery);
102
			rs.next();
103
			int count = rs.getInt("n");
104
			if (count > 0){
105
				System.out.println("========================================================");
106
				logger.warn("There are "+count+" RelReferences, but RelReferences are not implemented for CDM yet.");
107
				System.out.println("========================================================");
108
			}
109
			return result;
110
		} catch (SQLException e) {
111
			e.printStackTrace();
112
			return false;
113
		}
114

    
115
	}
116
	
117
	
118
	/* (non-Javadoc)
119
	 * @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getTableName()
120
	 */
121
	@Override
122
	protected String getTableName() {
123
		return null;  //not needed
124
	}
125
	
126
	/* (non-Javadoc)
127
	 * @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getPluralString()
128
	 */
129
	@Override
130
	public String getPluralString() {
131
		return null; //not needed
132
	}
133
	
134
	
135
	/* (non-Javadoc)
136
	 * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator)
137
	 */
138
	protected boolean isIgnore(ErmsImportState state){
139
		return false;
140
	}
141

    
142
	/* (non-Javadoc)
143
	 * @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getRecordQuery(eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator)
144
	 */
145
	@Override
146
	protected String getRecordQuery(ErmsImportConfigurator config) {
147
		return null;  // not needed
148
	}
149

    
150
	/* (non-Javadoc)
151
	 * @see eu.etaxonomy.cdm.io.berlinModel.in.IPartitionedIO#doPartition(eu.etaxonomy.cdm.io.berlinModel.in.ResultSetPartitioner, eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportState)
152
	 */
153
	public boolean doPartition(ResultSetPartitioner partitioner, ErmsImportState state) {
154
		return true;  // not needed
155
	}
156

    
157
	/* (non-Javadoc)
158
	 * @see eu.etaxonomy.cdm.io.berlinModel.in.IPartitionedIO#getRelatedObjectsForPartition(java.sql.ResultSet)
159
	 */
160
	public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs) {
161
		return null;  // not needed
162
	}
163

    
164

    
165
	/* (non-Javadoc)
166
	 * @see eu.etaxonomy.cdm.io.common.mapping.IMappingImport#createObject(java.sql.ResultSet)
167
	 */
168
	public CdmBase createObject(ResultSet rs, ErmsImportState state) throws SQLException {
169
		return null;  //not needed
170
	}
171

    
172
	/* (non-Javadoc)
173
	 * @see eu.etaxonomy.cdm.io.erms.ErmsImportBase#getMapping()
174
	 */
175
	@Override
176
	protected DbImportMapping<?, ?> getMapping() {
177
		// TODO Auto-generated method stub
178
		return null;
179
	}
180

    
181

    
182

    
183
}
(2-2/10)