Project

General

Profile

Download (5.37 KB) Statistics
| Branch: | Tag: | 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.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.erms.ErmsImportBase;
23
import eu.etaxonomy.cdm.io.erms.ErmsImportConfigurator;
24
import eu.etaxonomy.cdm.io.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 boolean doInvoke(ErmsImportState state){
64
		boolean success = true;
65
		//do nothing
66
		return success;
67
		
68
	}
69
	
70
	private boolean checkRelAuthorsExist(ErmsImportConfigurator config){
71
		
72
		try {
73
			boolean result = true;
74
			Source source = config.getSource();
75
			String strQuery = "SELECT Count(*) as n " +
76
					" FROM RelAuthor "
77
					;
78
			ResultSet rs = source.getResultSet(strQuery);
79
			rs.next();
80
			int count = rs.getInt("n");
81
			if (count > 0){
82
				System.out.println("========================================================");
83
				logger.warn("There are "+count+" RelAuthors, but RelAuthors are not implemented for CDM yet.");
84
				System.out.println("========================================================");
85
			}
86
			return result;
87
		} catch (SQLException e) {
88
			e.printStackTrace();
89
			return false;
90
		}
91

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

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

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

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

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

    
165

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

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

    
182

    
183

    
184
}
(2-2/10)