package org.oddjob.state; import org.oddjob.Structural; /** * An operation that provides the result of evaluating many states. These * are used by {@link Structural} jobs to decide their own state. * <p> * It is illegal to pass the {@link JobState#DESTROYED} state as * an argument. Behaviour is undefined in this instance. * * @author rob * */ public interface StateOperator { /** * Evaluate the given states. * * @param states The states. * @return The result state. */ public ParentState evaluate(State... states); }