package com.alipay.bluewhale.core.task.group;
import java.util.List;
import backtype.storm.tuple.Fields;
import com.alipay.bluewhale.core.utils.StormUtils;
//mk-fields-grouper
/**
* ����fileds�ķ���ʵ��
*
* @author yannian
*
*/
public class MkFieldsGrouper {
private Fields out_fields;
private Fields group_fields;
private int num_tasks;
public MkFieldsGrouper(Fields _out_fields, Fields _group_fields,
int _num_tasks) {
this.out_fields = _out_fields;
this.group_fields = _group_fields;
this.num_tasks = _num_tasks;
}
public List<Integer> grouper(List<Object> values) {
int hashcode = this.out_fields.select(this.group_fields, values).hashCode();
if (hashcode < 0) {
hashcode *= -1;
}
int group = hashcode % this.num_tasks;
return StormUtils.mk_list(group);
}
}