package org.batfish.representation.vyos;
import org.batfish.common.BatfishException;
import org.batfish.common.util.ComparableStructure;
import org.batfish.datamodel.LineAction;
import org.batfish.datamodel.Prefix;
import org.batfish.datamodel.SubRange;
public class PrefixListRule extends ComparableStructure<Integer> {
/**
*
*/
private static final long serialVersionUID = 1L;
private LineAction _action;
private String _description;
private int _ge;
private int _le;
private Prefix _prefix;
public PrefixListRule(int num) {
super(num);
_ge = 0;
_le = 32;
}
public LineAction getAction() {
return _action;
}
public String getDescription() {
return _description;
}
public SubRange getLengthRange() {
if (_prefix.getPrefixLength() <= _ge && _ge <= _le) {
return new SubRange(_ge, _le);
}
else {
throw new BatfishException("Invalid length range restriction");
}
}
public Prefix getPrefix() {
return _prefix;
}
public void setAction(LineAction action) {
_action = action;
}
public void setDescription(String description) {
_description = description;
}
public void setGe(int ge) {
_ge = ge;
_le = Math.max(_ge, _le);
}
public void setLe(int le) {
_le = le;
}
public void setPrefix(Prefix prefix) {
_prefix = prefix;
_ge = Math.max(_ge, _prefix.getPrefixLength());
_le = Math.max(_ge, _le);
}
}