/** * <copyright> </copyright> * * $Id$ */ package org.talend.dataquality.indicators.impl; import java.util.HashMap; import java.util.List; import org.eclipse.emf.ecore.EClass; import org.talend.dataquality.PluginConstant; import org.talend.dataquality.indicators.IndicatorsPackage; import org.talend.dataquality.indicators.SoundexLowFreqIndicator; import org.talend.utils.collections.MapValueSorter; /** * <!-- begin-user-doc --> An implementation of the model object '<em><b>Soundex Low Freq Indicator</b></em>'. <!-- * end-user-doc --> * <p> * </p> * * @generated */ public class SoundexLowFreqIndicatorImpl extends SoundexFreqIndicatorImpl implements SoundexLowFreqIndicator { /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ protected SoundexLowFreqIndicatorImpl() { super(); } /** * <!-- begin-user-doc --> <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return IndicatorsPackage.Literals.SOUNDEX_LOW_FREQ_INDICATOR; } @Override public boolean handle(Object data) { return super.handle(data); } @Override /* * MOD qiongli bug 13654,the low soudex should order by ValueToDistinct asc */ public boolean finalizeComputation() { final int topN = (parameters != null) ? parameters.getTopN() : PluginConstant.DEFAULT_TOP_N; if (isUsedMapDBMode()) { computeSoundexFreqByMapDB(false); } else { soundexForJavaEngine(); MapValueSorter mvs = new MapValueSorter(); List<Object> ls = mvs.sortMap(this.getValueToDistinctFreq(), true); List<Object> mostFrequent = getOrderElements(ls, topN, true); HashMap<Object, Long> map = new HashMap<Object, Long>(); for (Object object : mostFrequent) { map.put(object, valueToFreq.get(object)); } this.setValueToFreq(map); // this.distinctComputed = true; } return true; } } // SoundexLowFreqIndicatorImpl