/* GlobalInvariant -- 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; /** * Represents a global invariant which is a special form of a invariant. */ public class GlobalInvariant extends Invariant { private static final java.util.function.Predicate VALIDATOR = ACSLNode.VALIDATORS.get(GlobalInvariant.class); /** * The constructor taking initial values. * @param identifier the identifier of this invariant. * @param formula the formula of this invariant. */ public GlobalInvariant(String identifier, Expression formula) { super(identifier, formula); assert VALIDATOR == null || VALIDATOR.test(this) : "Invalid GlobalInvariant: " + this; } /** * Returns a textual description of this object. */ public String toString() { return "GlobalInvariant"; } public List getOutgoingNodes() { List children = super.getOutgoingNodes(); return children; } public void accept(ACSLVisitor visitor) { if (visitor.visit((Invariant)this)) { //visit parent types higher up if necessary } else { return; } if (visitor.visit(this)) { if(formula!=null){ formula.accept(visitor); } } } public Invariant accept(ACSLTransformer visitor) { Invariant node = visitor.transform(this); if(node != this){ return node; } Expression newformula = null; if(formula != null){ newformula = (Expression)formula.accept(visitor); } if(formula != newformula){ return new GlobalInvariant(identifier, newformula); } return this; } }