// ============================================================================
//
// Copyright (C) 2006-2016 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.dq.analysis;
import org.apache.log4j.Logger;
import org.eclipse.emf.common.util.EList;
import org.talend.dataquality.PluginConstant;
import org.talend.dataquality.analysis.Analysis;
import org.talend.dataquality.analysis.AnalysisParameters;
import org.talend.dataquality.domain.Domain;
import org.talend.dataquality.helpers.DomainHelper;
import org.talend.dq.indicators.AbstractSchemaEvaluator;
import org.talend.utils.sugars.ReturnCode;
/**
* DOC scorreia class global comment. Detailled comment
*/
public abstract class AbstactSchemaAnalysisExecutor extends AnalysisExecutor {
private static Logger log = Logger.getLogger(AbstactSchemaAnalysisExecutor.class);
/*
* (non-Javadoc)
*
* @see org.talend.dq.analysis.AnalysisExecutor#createSqlStatement(org.talend.dataquality.analysis.Analysis)
*/
@Override
protected String createSqlStatement(Analysis analysis) {
return PluginConstant.EMPTY_STRING;
}
/**
* DOC scorreia Comment method "runAnalysisLow".
*
* @param analysis
* @param sqlStatement
* @param eval
* @return
*/
protected ReturnCode runAnalysisLow(Analysis analysis, String sqlStatement, AbstractSchemaEvaluator<?> eval,
java.sql.Connection connection) {
// set it into the evaluator
eval.setConnection(connection);
// use pooled connection
eval.setPooledConnection(POOLED_CONNECTION);
// set filters
String tablePattern = getTablePattern(analysis.getParameters());
eval.setTablePattern(tablePattern);
String viewPattern = getViewPattern(analysis.getParameters());
eval.setViewPattern(viewPattern);
// when to close connection
boolean closeAtTheEnd = true;
return eval.evaluateIndicators(sqlStatement, closeAtTheEnd);
}
/**
* DOC scorreia Comment method "getTablePattern".
*
* @param parameters
* @return
*/
private String getTablePattern(AnalysisParameters parameters) {
if (parameters == null) {
return null;
}
EList<Domain> dataFilters = parameters.getDataFilter();
return DomainHelper.getTablePattern(dataFilters);
}
private String getViewPattern(AnalysisParameters parameters) {
if (parameters == null) {
return null;
}
EList<Domain> dataFilters = parameters.getDataFilter();
return DomainHelper.getViewPattern(dataFilters);
}
}