/* Invariant -- Automatically generated by TreeBuilder (2024-10-27T16:47Z) */ package de.uni_freiburg.informatik.ultimate.model.acsl.ast; import java.util.List; import de.uni_freiburg.informatik.ultimate.model.acsl.ACSLNode; /** * Invariants (Global/Type). */ public abstract class Invariant extends ACSLNode { private static final java.util.function.Predicate VALIDATOR = ACSLNode.VALIDATORS.get(Invariant.class); /** * The identifier of this invariant. */ String identifier; /** * The formula of this invariant. */ Expression formula; /** * The constructor taking initial values. * @param identifier the identifier of this invariant. * @param formula the formula of this invariant. */ public Invariant(String identifier, Expression formula) { super(); this.identifier = identifier; this.formula = formula; assert VALIDATOR == null || VALIDATOR.test(this) : "Invalid Invariant: " + this; } /** * Returns a textual description of this object. */ public String toString() { StringBuffer sb = new StringBuffer(); sb.append("Invariant").append('['); sb.append(identifier); sb.append(',').append(formula); return sb.append(']').toString(); } /** * Gets the identifier of this invariant. * @return the identifier of this invariant. */ public String getIdentifier() { return identifier; } /** * Gets the formula of this invariant. * @return the formula of this invariant. */ public Expression getFormula() { return formula; } public List getOutgoingNodes() { List children = super.getOutgoingNodes(); children.add(formula); return children; } public abstract void accept(ACSLVisitor visitor); public abstract Invariant accept(ACSLTransformer visitor); }