public void testOptionalRequirements() {
/* Test optional requirement */
TmfAnalysisRequirement req = new TmfAnalysisEventRequirement(ImmutableSet.of(EVENT1));
- assertTrue(req.isFulfilled(fTrace));
+ assertTrue(req.test(fTrace));
req = new TmfAnalysisEventRequirement(ImmutableSet.of(EVENT1, EVENT3));
- assertTrue(req.isFulfilled(fTrace));
+ assertTrue(req.test(fTrace));
/* FIXME: if no optional requirement is fulfilled it should fail */
req = new TmfAnalysisEventRequirement(ImmutableSet.of(EVENT3));
- assertTrue(req.isFulfilled(fTrace));
+ assertTrue(req.test(fTrace));
}
/**
public void testMandatoryRequirements() {
/* Test mandatory requirement */
TmfAnalysisRequirement req = new TmfAnalysisEventRequirement(ImmutableSet.of(EVENT1), ValuePriorityLevel.MANDATORY);
- assertTrue(req.isFulfilled(fTrace));
+ assertTrue(req.test(fTrace));
req = new TmfAnalysisEventRequirement(ImmutableSet.of(EVENT1, EVENT2), ValuePriorityLevel.MANDATORY);
- assertTrue(req.isFulfilled(fTrace));
+ assertTrue(req.test(fTrace));
/* Event 3 is not an event of the trace */
req = new TmfAnalysisEventRequirement(ImmutableSet.of(EVENT1, EVENT2, EVENT3), ValuePriorityLevel.MANDATORY);
- assertFalse(req.isFulfilled(fTrace));
+ assertFalse(req.test(fTrace));
req = new TmfAnalysisEventRequirement(ImmutableSet.of(EVENT3), ValuePriorityLevel.MANDATORY);
- assertFalse(req.isFulfilled(fTrace));
+ assertFalse(req.test(fTrace));
}
/**
TmfTrace traceNoEvents = new TmfTraceStub();
TmfAnalysisRequirement req = new TmfAnalysisEventRequirement(ImmutableSet.of(EVENT1, EVENT3), ValuePriorityLevel.MANDATORY);
- assertTrue(req.isFulfilled(traceNoEvents));
+ assertTrue(req.test(traceNoEvents));
req = new TmfAnalysisEventRequirement(ImmutableSet.of(EVENT1, EVENT2), ValuePriorityLevel.OPTIONAL);
- assertTrue(req.isFulfilled(traceNoEvents));
+ assertTrue(req.test(traceNoEvents));
}
@Override
public boolean canExecute(ITmfTrace trace) {
for (TmfAnalysisRequirement requirement : getAnalysisRequirements()) {
- if (!requirement.isFulfilled(trace)) {
+ if (!requirement.test(trace)) {
return false;
}
}
StringBuilder builder = new StringBuilder();
builder.append(NLS.bind(Messages.TmfAbstractAnalysisModule_AnalysisCannotExecute, getName()));
for (TmfAnalysisRequirement requirement : getAnalysisRequirements()) {
- if (!requirement.isFulfilled(trace)) {
+ if (!requirement.test(trace)) {
builder.append("\n\n"); //$NON-NLS-1$
builder.append(NLS.bind(Messages.TmfAnalysis_RequirementNotFulfilled, requirement.getType()));
builder.append("\n"); //$NON-NLS-1$
import java.util.Set;
-import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
import org.eclipse.tracecompass.tmf.core.trace.ITmfTraceWithPreDefinedEvents;
import org.eclipse.tracecompass.tmf.core.trace.TmfEventTypeCollectionHelper;
}
@Override
- public boolean isFulfilled(@NonNull ITmfTrace trace) {
+ public boolean test(ITmfTrace trace) {
if (trace instanceof ITmfTraceWithPreDefinedEvents) {
Set<String> traceEvents = TmfEventTypeCollectionHelper.getEventNames(((ITmfTraceWithPreDefinedEvents) trace).getContainedEventTypes());
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+import java.util.function.Predicate;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
* @author Mathieu Rail
* @since 2.0
*/
-public class TmfAnalysisRequirement {
+public class TmfAnalysisRequirement implements Predicate<ITmfTrace> {
/**
* String for requirement type 'event', that can be used by analysis
* The trace on which to check for this requirement
* @return True if the trace has all mandatory values of this requirement
*/
- public boolean isFulfilled(ITmfTrace trace) {
+ @Override
+ public boolean test(ITmfTrace trace) {
switch (fType) {
case TYPE_EVENT:
if (trace instanceof ITmfTraceWithPreDefinedEvents) {