package com.revolsys.visitor; import java.util.Comparator; import java.util.function.Predicate; import com.revolsys.util.ExitLoopException; public class SingleObjectVisitor<T> extends BaseVisitor<T> { private T object; public SingleObjectVisitor() { } public SingleObjectVisitor(final Comparator<T> comparator) { super(comparator); } public SingleObjectVisitor(final Predicate<T> filter) { super(filter); } public SingleObjectVisitor(final Predicate<T> filter, final Comparator<T> comparator) { super(filter, comparator); } @Override public void accept(final T object) { if (this.object == null) { this.object = object; } throw new ExitLoopException(); } public T getObject() { return this.object; } public void reset() { this.object = null; } }