/*
# Licensed Materials - Property of IBM
# Copyright IBM Corp. 2016
*/
package com.ibm.streamsx.topology.internal.test.handlers;
import com.ibm.streams.flow.handlers.StreamHandler;
import com.ibm.streams.operator.StreamingData.Punctuation;
import com.ibm.streams.operator.Tuple;
import com.ibm.streamsx.topology.function.Predicate;
import com.ibm.streamsx.topology.tester.Condition;
public class StringTupleTester implements StreamHandler<Tuple>, Condition<String>{
private final Predicate<String> tester;
private String firstFailure;
public StringTupleTester(Predicate<String> tester) {
this.tester = tester;
}
@Override
public void mark(Punctuation arg0) throws Exception {
}
@Override
public void tuple(Tuple t) throws Exception {
String tuple = t.getString(0);
if (!tester.test(tuple)) {
if (firstFailure == null)
firstFailure = tuple;
}
}
@Override
public boolean valid() {
return firstFailure == null;
}
@Override
public String getResult() {
return firstFailure;
}
}