/**
* <copyright> </copyright>
*
* $Id$
*/
package org.talend.dataquality.indicators.impl;
import org.apache.commons.lang.StringUtils;
import org.eclipse.emf.ecore.EClass;
import org.talend.dataquality.indicators.IndicatorsPackage;
import org.talend.dataquality.indicators.PatternLowFreqIndicator;
import org.talend.dataquality.indicators.TextParameters;
/**
* <!-- begin-user-doc --> An implementation of the model object '<em><b>Pattern Low Freq Indicator</b></em>'. <!--
* end-user-doc -->
* <p>
* </p>
*
* @generated
*/
public class PatternLowFreqIndicatorImpl extends LowFrequencyIndicatorImpl implements PatternLowFreqIndicator {
private String charsToReplace = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
private String replacementChars = "aaaaaaaaaaaaaaaaaaaaaaaaaaAAAAAAAAAAAAAAAAAAAAAAAAAA9999999999";
// Mark replace parameter whether has been setting by the user.
private boolean hasBeanCustomized = false;
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
protected PatternLowFreqIndicatorImpl() {
super();
}
/**
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
*/
@Override
protected EClass eStaticClass() {
return IndicatorsPackage.Literals.PATTERN_LOW_FREQ_INDICATOR;
}
@Override
public boolean prepare() {
// MOD xqliu 2009-06-29 bug 7068
final TextParameters textParameter = this.getParameters() == null ? null : this.getParameters().getTextParameter();
// ~
if (textParameter != null) {
// TDQ-10044: fix when the user didn't set the replace and charactersToReplace, use the default value(only
// for jave engine)
String replacementCharacters = textParameter.getReplacementCharacters();
if (!StringUtils.isBlank(replacementCharacters)) {
this.replacementChars = replacementCharacters;
hasBeanCustomized = true;
} else {
replacementChars = "aaaaaaaaaaaaaaaaaaaaaaaaaaAAAAAAAAAAAAAAAAAAAAAAAAAA9999999999";
hasBeanCustomized = false;
}
String charactersToReplace = textParameter.getCharactersToReplace();
if (!StringUtils.isBlank(charactersToReplace)) {
this.charsToReplace = charactersToReplace;
} else {
charsToReplace = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
}
// TDQ-10044~
}
return super.prepare();
}
@Override
public boolean handle(Object data) {
if (data == null) {
return super.handle(data);
} else {
String parsedData = convertCharacters(String.valueOf(data));
return super.handle(parsedData);
}
}
/**
* add by zshen for feature 12919 to convertCharacter when save data into analysisDataSet with java engin
*/
@Override
public String convertCharacters(String data) {
return replaceCharacters(String.valueOf(data), this.charsToReplace, this.replacementChars);
}
/*
* (non-Javadoc)
*
* @see org.talend.dataquality.indicators.impl.FrequencyIndicatorImpl#getFrequencyLabel(java.lang.Object)
*/
@Override
protected String getFrequencyLabel(Object name) {
return convertCharacters(name.toString());
}
/**
* Getter for hasBeanCustomized.
*
* @return the hasBeanCustomized
*/
public boolean isBeanCustomized() {
return hasBeanCustomized;
}
} // PatternLowFreqIndicatorImpl