package com.crawljax.condition.invariant; import java.util.List; import com.crawljax.condition.Condition; import com.crawljax.condition.ConditionType; import com.google.common.base.Objects; /** * An Invariant is an condition which should always hold when its preconditions are satisfied. */ public class Invariant extends ConditionType { /** * @param description * Description of the invariant. * @param invariantCondition * Condition to check. */ public Invariant(String description, Condition invariantCondition) { super(description, invariantCondition); } /** * @param description * Description of the invariant. * @param invariantCondition * Condition to check. * @param preConditions * Only check if the preconditions are true. */ public Invariant(String description, Condition invariantCondition, Condition... preConditions) { super(description, invariantCondition, preConditions); } /** * @param description * Description of the invariant. * @param invariantCondition * Condition to check. * @param preConditions * Only check if the preconditions are true. */ public Invariant(String description, Condition invariantCondition, List<Condition> preConditions) { super(description, invariantCondition, preConditions); } /** * @return The condition */ public Condition getInvariantCondition() { return getCondition(); } @Override public String toString() { return Objects.toStringHelper(this) .add("description", getDescription()) .add("condition", getInvariantCondition()) .toString(); } }