/** * */ package soottocfg.cfg.statement; import java.util.HashSet; import java.util.Map; import java.util.Set; import soottocfg.cfg.SourceLocation; import soottocfg.cfg.expression.Expression; import soottocfg.cfg.expression.IdentifierExpression; import soottocfg.cfg.type.BoolType; import soottocfg.cfg.variable.Variable; /** * @author teme * */ public class AssumeStatement extends Statement { /** * */ private static final long serialVersionUID = -4719730863944690585L; private Expression expression; /** * @param createdFrom */ public AssumeStatement(SourceLocation loc, Expression expr) { super(loc); assert (expr.getType() == BoolType.instance()); this.expression = expr; } public Expression getExpression() { return this.expression; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("assume "); sb.append(this.expression); return sb.toString(); } @Override public Set<IdentifierExpression> getUseIdentifierExpressions() { Set<IdentifierExpression> used = new HashSet<IdentifierExpression>(); used.addAll(expression.getUseIdentifierExpressions()); return used; } @Override public Set<IdentifierExpression> getDefIdentifierExpressions() { return new HashSet<IdentifierExpression>(); } @Override public AssumeStatement deepCopy() { return new AssumeStatement(getSourceLocation(), expression.deepCopy()); } @Override public AssumeStatement substitute(Map<Variable, Variable> subs) { return new AssumeStatement(getSourceLocation(), expression.substitute(subs)); } @Override public AssumeStatement substituteVarWithExpression(Map<Variable, Expression> subs) { return new AssumeStatement(getSourceLocation(), expression.substituteVarWithExpression(subs)); } }