/*
# Licensed Materials - Property of IBM
# Copyright IBM Corp. 2015
*/
package com.ibm.streamsx.topology.internal.functional.ops;
import com.ibm.streams.operator.OperatorContext;
import com.ibm.streams.operator.OutputTuple;
import com.ibm.streams.operator.StreamingInput;
import com.ibm.streams.operator.StreamingOutput;
import com.ibm.streams.operator.Tuple;
import com.ibm.streams.operator.model.InputPortSet;
import com.ibm.streams.operator.model.OutputPortSet;
import com.ibm.streams.operator.model.PrimitiveOperator;
@PrimitiveOperator(description = "Passes all input unchanged from its input port to its output port, but removes the __spl_hash, the second attribute.")
@InputPortSet(cardinality = 1)
@OutputPortSet(cardinality = 1)
public class HashRemover extends FunctionFunctor {
private StreamingOutput<OutputTuple> output;
@Override
public synchronized void initialize(OperatorContext context)
throws Exception {
super.initialize(context);
output = getOutput(0);
}
/**
* Removes the __spl_hash attribute at the start of a parallel region.
*/
public void process(StreamingInput<Tuple> stream, Tuple tuple)
throws Exception {
OutputTuple out_t = output.newTuple();
out_t.setObject(0, tuple.getObject(0));
output.submit(out_t);
}
/**
* Removed this as a parameter.
*/
@Override
public void setFunctionalLogic(String logic) {
}
}