/* Parameter -- 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 parameter. */ public class Parameter extends ACSLNode { private static final java.util.function.Predicate VALIDATOR = ACSLNode.VALIDATORS.get(Parameter.class); /** * The parameter type of this parameter. */ ACSLType parameterType; /** * The parameter identifier of this parameter. */ String parameterIdentifier; /** * The constructor taking initial values. * @param parameterType the parameter type of this parameter. * @param parameterIdentifier the parameter identifier of this parameter. */ public Parameter(ACSLType parameterType, String parameterIdentifier) { super(); this.parameterType = parameterType; this.parameterIdentifier = parameterIdentifier; assert VALIDATOR == null || VALIDATOR.test(this) : "Invalid Parameter: " + this; } /** * Returns a textual description of this object. */ public String toString() { StringBuffer sb = new StringBuffer(); sb.append("Parameter").append('['); sb.append(parameterType); sb.append(',').append(parameterIdentifier); return sb.append(']').toString(); } /** * Gets the parameter type of this parameter. * @return the parameter type of this parameter. */ public ACSLType getParameterType() { return parameterType; } /** * Gets the parameter identifier of this parameter. * @return the parameter identifier of this parameter. */ public String getParameterIdentifier() { return parameterIdentifier; } public List getOutgoingNodes() { List children = super.getOutgoingNodes(); children.add(parameterType); return children; } public void accept(ACSLVisitor visitor) { if (visitor.visit(this)) { if(parameterType!=null){ parameterType.accept(visitor); } } } public Parameter accept(ACSLTransformer visitor) { Parameter node = visitor.transform(this); if(node != this){ return node; } ACSLType newparameterType = null; if(parameterType != null){ newparameterType = (ACSLType)parameterType.accept(visitor); } if(parameterType != newparameterType){ return new Parameter(newparameterType, parameterIdentifier); } return this; } }