package org.batfish.representation.cisco; import org.batfish.datamodel.Configuration; import org.batfish.datamodel.routing_policy.expr.NamedPrefix6Set; import org.batfish.datamodel.routing_policy.expr.NamedPrefixSet; import org.batfish.datamodel.routing_policy.expr.Prefix6SetExpr; import org.batfish.datamodel.routing_policy.expr.PrefixSetExpr; import org.batfish.common.Warnings; public class RoutePolicyPrefixSetName extends RoutePolicyPrefixSet { private static final long serialVersionUID = 1L; private final int _expressionLine; private final String _name; public RoutePolicyPrefixSetName(String name, int expressionLine) { _name = name; _expressionLine = expressionLine; } public String getName() { return _name; } @Override public Prefix6SetExpr toPrefix6SetExpr(CiscoConfiguration cc, Configuration c, Warnings w) { if (cc.getPrefixLists().containsKey(_name)) { return null; } else if (!cc.getPrefix6Lists().containsKey(_name)) { cc.undefined(CiscoStructureType.PREFIX6_LIST, _name, CiscoStructureUsage.ROUTE_POLICY_PREFIX_SET, _expressionLine); } else { Prefix6List list = cc.getPrefix6Lists().get(_name); list.getReferers().put(this, "route policy named ipv6 prefix-set: '" + _name + "'"); } return new NamedPrefix6Set(_name); } @Override public PrefixSetExpr toPrefixSetExpr(CiscoConfiguration cc, Configuration c, Warnings w) { if (cc.getPrefix6Lists().containsKey(_name)) { return null; } else if (!cc.getPrefixLists().containsKey(_name)) { cc.undefined(CiscoStructureType.PREFIX_LIST, _name, CiscoStructureUsage.ROUTE_POLICY_PREFIX_SET, _expressionLine); } else { PrefixList list = cc.getPrefixLists().get(_name); list.getReferers().put(this, "route policy named ipv4 prefix-set: '" + _name + "'"); } return new NamedPrefixSet(_name); } }