package org.batfish.datamodel.routing_policy.statement;
import org.batfish.datamodel.IsisLevel;
import org.batfish.datamodel.IsisRoute;
import org.batfish.datamodel.routing_policy.Environment;
import org.batfish.datamodel.routing_policy.Result;
import org.batfish.datamodel.routing_policy.expr.IsisLevelExpr;
import com.fasterxml.jackson.annotation.JsonCreator;
public class SetIsisLevel extends Statement {
/**
*
*/
private static final long serialVersionUID = 1L;
private IsisLevelExpr _level;
@JsonCreator
private SetIsisLevel() {
}
public SetIsisLevel(IsisLevelExpr level) {
_level = level;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
SetIsisLevel other = (SetIsisLevel) obj;
if (_level == null) {
if (other._level != null) {
return false;
}
}
else if (!_level.equals(other._level)) {
return false;
}
return true;
}
@Override
public Result execute(Environment environment) {
Result result = new Result();
IsisLevel level = _level.evaluate(environment);
IsisRoute.Builder isisRouteBuilder = (IsisRoute.Builder) environment
.getOutputRoute();
isisRouteBuilder.setLevel(level);
return result;
}
public IsisLevelExpr getLevel() {
return _level;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((_level == null) ? 0 : _level.hashCode());
return result;
}
public void setLevel(IsisLevelExpr level) {
_level = level;
}
}