package org.batfish.representation.cisco; import java.util.Collections; import java.util.List; import org.batfish.datamodel.Configuration; import org.batfish.datamodel.routing_policy.expr.BooleanExprs; import org.batfish.datamodel.routing_policy.statement.BufferedStatement; import org.batfish.datamodel.routing_policy.statement.If; import org.batfish.datamodel.routing_policy.statement.Statement; import org.batfish.datamodel.routing_policy.statement.Statements; import org.batfish.common.Warnings; public abstract class RoutePolicySetStatement extends RoutePolicyStatement { /** * */ private static final long serialVersionUID = 1L; @Override public final void applyTo(List<Statement> statements, CiscoConfiguration cc, Configuration c, Warnings w) { Statement setStatement = toSetStatement(cc, c, w); Statement bufferedStatement = new BufferedStatement(setStatement); If ifStatement = new If(); ifStatement.setGuard(BooleanExprs.CallExprContext.toStaticBooleanExpr()); ifStatement.setTrueStatements(Collections.singletonList( Statements.SetLocalDefaultActionAccept.toStaticStatement())); ifStatement.setFalseStatements(Collections.singletonList( Statements.SetDefaultActionAccept.toStaticStatement())); statements.add(bufferedStatement); statements.add(ifStatement); } protected abstract Statement toSetStatement(CiscoConfiguration cc, Configuration c, Warnings w); }