/**
*
*/
package com.taobao.top.analysis.statistics.map;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.taobao.top.analysis.node.job.JobTask;
import com.taobao.top.analysis.statistics.data.Alias;
import com.taobao.top.analysis.statistics.data.ReportEntry;
import com.taobao.top.analysis.util.AnalysisConstants;
/**
* 用于对多个报表字段有&的匹配需求,例如需要appkey在某一个范围并且api也在某一个范围
* 功能暂时不支持
*
* @author fangweng
*
*/
public class FileConditionMapper extends DefaultMapper{
/**
*
*/
private static final long serialVersionUID = -1362373610372800182L;
static Map<String, List<String>> condition;
@Override
public String generateKey(ReportEntry entry, String[] contents, JobTask jobtask) {
String key = super.generateKey(entry, contents, jobtask);
Map<String, Alias> aliasPool = jobtask.getStatisticsRule().getAliasPool();
if (AnalysisConstants.IGNORE_PROCESS.equals(key))
return AnalysisConstants.IGNORE_PROCESS;
if (condition != null && condition.size() > 0) {
Iterator<String> conKeys = condition.keySet().iterator();
while (conKeys.hasNext()) {
String k = conKeys.next();
int position = aliasPool.get(k).getKey();
String conValue = contents[position - 1];
if (!condition.get(k).contains(conValue))
return AnalysisConstants.IGNORE_PROCESS;
}
}
return key;
}
}