package com.github.stakafum.mapreduce;
/**
* 根据key进行分组,一个key会有多个values. 多个value使用GroupedValues封装
* @param <K>
* @param <V>
*/
public class GroupedKeyValue<K, V> {
K key;
GroupedValues<V> gValues;
GroupedKeyValue(K key){
this.key = key;
this.gValues = new GroupedValues<V>();
}
GroupedKeyValue(K key, GroupedValues<V> values){
this.key = key;
this.gValues = values;
}
void setKey(K key){
this.key = key;
}
void addValue(V value){
this.gValues.add(value);
}
void setValues(GroupedValues<V> gValues){
this.gValues = gValues;
}
K getKey(){
return this.key;
}
V getValue(){
V value = null;
if(this.gValues.hasValue())
value = this.gValues.get();
else{
System.err.println("gValues has no values.");
System.exit(0);
}
return value;
}
GroupedValues<V> getValues(){
return this.gValues;
}
}