// ============================================================================ // // 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.explore; import java.util.HashMap; import java.util.Map; import org.talend.core.model.metadata.builder.database.dburl.SupportDBUrlType; import org.talend.dataquality.helpers.AnalysisHelper; /** * return the where clause for benford law indicator, but for different DB type, the clause is different. */ public class BenfordLawFrequencyExplorer extends FrequencyStatisticsExplorer { @Override protected String getInstantiatedClause() { // TDQ-11422: when the analysis have not run, the entity.getKey() is null if (entity.getKey() != null && entity.getKey().toString().equals("invalid")) {//$NON-NLS-1$ return dbmsLanguage.getInvalidClauseBenFord(this.columnName); } Object value = "'" + entity.getKey() + "%'"; //$NON-NLS-1$ //$NON-NLS-2$ String clause = entity.isLabelNull() ? getColumnName() + dbmsLanguage.isNull() : getColumnName() + dbmsLanguage.like() + value; if (isInformix()) { return " SUBSTR(" + getColumnName() + ",0,1)" + dbmsLanguage.like() + value; //$NON-NLS-1$ //$NON-NLS-2$ } return clause; } /** * DOC yyin Comment method "isInformix". * * @return */ private boolean isInformix() { if (dbmsLanguage.getDbmsName().startsWith(SupportDBUrlType.INFORMIXDEFAULTURL.getLanguage())) { return true; } return false; } /** * DOC yyin Comment method "getColumnName". * * @return */ private String getColumnName() { return dbmsLanguage.castColumnNameToChar(columnName); } @Override public Map<String, String> getSubClassQueryMap() { Map<String, String> map = new HashMap<String, String>(); map.put(MENU_VIEW_ROWS, getComment(MENU_VIEW_ROWS) + getFreqRowsStatement()); return map; } /* * (non-Javadoc) * * @see org.talend.dq.analysis.explore.DataExplorer#NotShowMenu() */ @Override protected boolean NotShowMenu() { return AnalysisHelper.isJavaExecutionEngine(this.analysis); } }