@Override public Set<String> collectSources( Set<String> parentSources, Map<String, RoutingPolicy> routingPolicies, Warnings w) { return _statement.collectSources(parentSources, routingPolicies, w); }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof BufferedStatement)) { return false; } BufferedStatement other = (BufferedStatement) obj; return _statement.equals(other._statement); }
@Override public Result evaluate(Environment environment) { for (Statement statement : _preStatements) { statement.execute(environment); } Result result = _expr.evaluate(environment); for (Statement statement : _postStatements) { statement.execute(environment); } if (result.getBooleanValue()) { for (Statement statement : _postTrueStatements) { statement.execute(environment); } } return result; }
public RoutingPolicy simplify() { ImmutableList.Builder<Statement> simpleStatements = ImmutableList.builder(); for (Statement statement : _statements) { simpleStatements.addAll(statement.simplify()); } RoutingPolicy simple = new RoutingPolicy(_name, _owner); simple.setStatements(simpleStatements.build()); return simple; } }
@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + _statement.hashCode(); return result; }
String.format( "Unimplemented feature %s for %s transfer function on interface %s", stmt.toString(), s, _graphEdge.toString());
@Override public List<Statement> simplify() { if (_simplified != null) { return _simplified; } ImmutableList.Builder<Statement> simpleTrueStatementsBuilder = ImmutableList.builder(); ImmutableList.Builder<Statement> simpleFalseStatementsBuilder = ImmutableList.builder(); BooleanExpr simpleGuard = _guard.simplify(); for (Statement trueStatement : _trueStatements) { simpleTrueStatementsBuilder.addAll(trueStatement.simplify()); } List<Statement> simpleTrueStatements = simpleTrueStatementsBuilder.build(); for (Statement falseStatement : _falseStatements) { simpleFalseStatementsBuilder.addAll(falseStatement.simplify()); } List<Statement> simpleFalseStatements = simpleFalseStatementsBuilder.build(); if (simpleGuard.equals(BooleanExprs.TRUE)) { _simplified = simpleTrueStatements; } else if (simpleGuard.equals(BooleanExprs.FALSE)) { _simplified = simpleFalseStatements; } else if (simpleTrueStatements.isEmpty() && simpleFalseStatements.isEmpty()) { _simplified = Collections.emptyList(); } else { If simple = new If(getComment(), simpleGuard, simpleTrueStatements, simpleFalseStatements); _simplified = ImmutableList.of(simple); simple._simplified = _simplified; } return _simplified; } }
public Set<String> computeSources( Set<String> parentSources, Map<String, RoutingPolicy> routingPolicies, Warnings w) { if (_sources == null) { Set<String> newParentSources = Sets.union(parentSources, ImmutableSet.of(_name)); ImmutableSet.Builder<String> childSources = ImmutableSet.builder(); childSources.add(_name); for (Statement statement : _statements) { childSources.addAll(statement.collectSources(newParentSources, routingPolicies, w)); } _sources = childSources.build(); } return _sources; }
@Override public Result execute(Environment environment) { environment.setBuffered(true); Result result = _statement.execute(environment); return result; }
@Override public Set<String> collectSources( Set<String> sources, Map<String, RoutingPolicy> routingPolicies, Warnings w) { ImmutableSet.Builder<String> childSources = ImmutableSet.builder(); if (_expr != null) { childSources.addAll(_expr.collectSources(sources, routingPolicies, w)); } for (Statement statement : _postStatements) { childSources.addAll(statement.collectSources(sources, routingPolicies, w)); } for (Statement statement : _postTrueStatements) { childSources.addAll(statement.collectSources(sources, routingPolicies, w)); } for (Statement statement : _preStatements) { childSources.addAll(statement.collectSources(sources, routingPolicies, w)); } return childSources.build(); }
public Result call(Environment environment) { for (Statement statement : _statements) { Result result = statement.execute(environment); if (result.getExit()) { return result; } if (result.getReturn()) { result.setReturn(false); return result; } } Result result = new Result(); result.setFallThrough(true); result.setBooleanValue(environment.getDefaultAction()); return result; }
@Override public Set<String> collectSources( Set<String> parentSources, Map<String, RoutingPolicy> routingPolicies, Warnings w) { ImmutableSet.Builder<String> childSources = ImmutableSet.builder(); for (Statement statement : _falseStatements) { childSources.addAll(statement.collectSources(parentSources, routingPolicies, w)); } for (Statement statement : _trueStatements) { childSources.addAll(statement.collectSources(parentSources, routingPolicies, w)); } if (_guard != null) { childSources.addAll(_guard.collectSources(parentSources, routingPolicies, w)); } return childSources.build(); }
@Override public Result execute(Environment environment) { Result exprResult = _guard.evaluate(environment); if (exprResult.getExit()) { return exprResult; } boolean guardVal = exprResult.getBooleanValue(); List<Statement> toExecute = guardVal ? _trueStatements : _falseStatements; for (Statement statement : toExecute) { Result result = statement.execute(environment); if (result.getExit() || result.getReturn()) { return result; } } Result fallThroughResult = new Result(); fallThroughResult.setFallThrough(true); return fallThroughResult; }