/*
# Licensed Materials - Property of IBM
# Copyright IBM Corp. 2015
*/
package com.ibm.streamsx.topology.internal.logic;
import com.ibm.streamsx.topology.function.Function;
import com.ibm.streamsx.topology.function.ToIntFunction;
/**
* Obtain a hash for a key extracted from a tuple.
*/
public final class KeyFunctionHasher<T,K> implements ToIntFunction<T>, WrapperFunction {
private static final long serialVersionUID = 1L;
private final Function<T,K> keyFunction;
public KeyFunctionHasher(Function<T,K> keyFunction) {
this.keyFunction = keyFunction;
}
@Override
public int applyAsInt(T tuple) {
return keyFunction.apply(tuple).hashCode();
}
@Override
public Object getWrappedFunction() {
return keyFunction;
}
}