/* # Licensed Materials - Property of IBM # Copyright IBM Corp. 2016 */ package com.ibm.streamsx.topology.spl; import java.util.concurrent.TimeUnit; import com.ibm.streams.operator.Tuple; import com.ibm.streams.operator.window.StreamWindow; import com.ibm.streams.operator.window.StreamWindow.Policy; import com.ibm.streamsx.topology.TWindow; import com.ibm.streamsx.topology.builder.BInputPort; import com.ibm.streamsx.topology.internal.core.WindowDefinition; class SPLWindowImpl extends WindowDefinition<Tuple,Object> implements SPLWindow { private final StreamWindow.Policy triggerPolicy; private final long triggerConfig; private final TimeUnit triggerTimeUnit; SPLWindowImpl(TWindow<Tuple,?> window, int count) { super(window.getStream(), window); this.triggerPolicy = Policy.COUNT; this.triggerConfig = count; triggerTimeUnit = null; } SPLWindowImpl(TWindow<Tuple,?> window, long time, TimeUnit unit) { super(window.getStream(), window); this.triggerPolicy = Policy.TIME; this.triggerConfig = time; triggerTimeUnit = unit; } @Override public SPLStream getStream() { return (SPLStream) super.getStream(); } /** * Make the passed input port windowed. */ void windowInput(BInputPort inputPort) { inputPort.window(StreamWindow.Type.SLIDING, policy, config, this.timeUnit, triggerPolicy, triggerConfig, triggerTimeUnit, false); } }