package com.tibco.as.spacebar.ui.editor.continuous.coder;
import java.util.Collection;
import java.util.Map;
public class TupleHashCoder implements IHashCoder {
private Collection<IFieldHashCoder> coders;
public TupleHashCoder(Collection<IFieldHashCoder> coders) {
this.coders = coders;
}
@Override
public int getHashCode(Object object) {
int result = 1;
@SuppressWarnings("unchecked")
Map<String, Object> rowObject = (Map<String, Object>) object;
for (IFieldHashCoder coder : coders) {
Object element = rowObject.get(coder.getFieldName());
if (element == null) {
result = 31 * result;
} else {
result = 31 * result + coder.getHashCode(element);
}
}
return result;
}
}