package org.batfish.datamodel; import org.batfish.common.BatfishException; public class FlowBuilder { private Integer _dscp; private Ip _dstIp; private Integer _dstPort; private Integer _ecn; private Integer _fragmentOffset; private Integer _icmpCode; private Integer _icmpType; private String _ingressNode; private String _ingressVrf; private IpProtocol _ipProtocol; private Integer _packetLength; private Ip _srcIp; private Integer _srcPort; private State _state; private String _tag; private Integer _tcpFlagsAck; private Integer _tcpFlagsCwr; private Integer _tcpFlagsEce; private Integer _tcpFlagsFin; private Integer _tcpFlagsPsh; private Integer _tcpFlagsRst; private Integer _tcpFlagsSyn; private Integer _tcpFlagsUrg; public FlowBuilder() { _dscp = 0; _dstIp = Ip.ZERO; _dstPort = 0; _ecn = 0; _fragmentOffset = 0; _ipProtocol = IpProtocol.IP; _srcIp = Ip.ZERO; _srcPort = 0; _icmpType = IcmpType.UNSET; _icmpCode = IcmpCode.UNSET; _ingressVrf = Configuration.DEFAULT_VRF_NAME; _packetLength = 0; _state = State.NEW; _tcpFlagsCwr = 0; _tcpFlagsEce = 0; _tcpFlagsUrg = 0; _tcpFlagsAck = 0; _tcpFlagsPsh = 0; _tcpFlagsRst = 0; _tcpFlagsSyn = 0; _tcpFlagsFin = 0; } public Flow build() { if (_ingressNode == null) { throw new BatfishException( "Cannot build flow without at least specifying ingress node"); } if (_tag == null) { throw new BatfishException("Cannot build flow without specifying tag"); } return new Flow(_ingressNode, _ingressVrf, _srcIp, _dstIp, _srcPort, _dstPort, _ipProtocol, _dscp, _ecn, _fragmentOffset, _icmpType, _icmpCode, _packetLength, _state, _tcpFlagsCwr, _tcpFlagsEce, _tcpFlagsUrg, _tcpFlagsAck, _tcpFlagsPsh, _tcpFlagsRst, _tcpFlagsSyn, _tcpFlagsFin, _tag); } public Integer getDscp() { return _dscp; } public Ip getDstIp() { return _dstIp; } public Integer getDstPort() { return _dstPort; } public Integer getEcn() { return _ecn; } public Integer getIcmpCode() { return _icmpCode; } public Integer getIcmpType() { return _icmpType; } public String getIngressNode() { return _ingressNode; } public String getIngressVrf() { return _ingressVrf; } public IpProtocol getIpProtocol() { return _ipProtocol; } public Integer getPacketLength() { return _packetLength; } public Ip getSrcIp() { return _srcIp; } public Integer getSrcPort() { return _srcPort; } public State getState() { return _state; } public String getTag() { return _tag; } public Integer getTcpFlagsAck() { return _tcpFlagsAck; } public Integer getTcpFlagsCwr() { return _tcpFlagsCwr; } public Integer getTcpFlagsEce() { return _tcpFlagsEce; } public Integer getTcpFlagsFin() { return _tcpFlagsFin; } public Integer getTcpFlagsPsh() { return _tcpFlagsPsh; } public Integer getTcpFlagsRst() { return _tcpFlagsRst; } public Integer getTcpFlagsSyn() { return _tcpFlagsSyn; } public Integer getTcpFlagsUrg() { return _tcpFlagsUrg; } public void setDscp(Integer dscp) { _dscp = dscp; } public void setDstIp(Ip dstIp) { _dstIp = dstIp; } public void setDstPort(int dstPort) { _dstPort = dstPort; } public void setDstPort(Integer dstPort) { _dstPort = dstPort; } public void setEcn(Integer ecn) { _ecn = ecn; } public void setFragmentOffset(int fragmentOffset) { _fragmentOffset = fragmentOffset; } public void setIcmpCode(Integer icmpCode) { _icmpCode = icmpCode; } public void setIcmpType(Integer icmpType) { _icmpType = icmpType; } public void setIngressNode(String ingressNode) { _ingressNode = ingressNode; } public void setIngressVrf(String ingressVrf) { _ingressVrf = ingressVrf; } public void setIpProtocol(IpProtocol ipProtocol) { _ipProtocol = ipProtocol; } public void setPacketLength(Integer packetLength) { _packetLength = packetLength; } public void setSrcIp(Ip srcIp) { _srcIp = srcIp; } public void setSrcPort(int srcPort) { _srcPort = srcPort; } public void setSrcPort(Integer srcPort) { _srcPort = srcPort; } public void setState(State state) { _state = state; } public void setTag(String tag) { _tag = tag; } public void setTcpFlagsAck(Integer tcpFlagsAck) { _tcpFlagsAck = tcpFlagsAck; } public void setTcpFlagsCwr(Integer tcpFlagsCwr) { _tcpFlagsCwr = tcpFlagsCwr; } public void setTcpFlagsEce(Integer tcpFlagsEce) { _tcpFlagsEce = tcpFlagsEce; } public void setTcpFlagsFin(Integer tcpFlagsFin) { _tcpFlagsFin = tcpFlagsFin; } public void setTcpFlagsPsh(Integer tcpFlagsPsh) { _tcpFlagsPsh = tcpFlagsPsh; } public void setTcpFlagsRst(Integer tcpFlagsRst) { _tcpFlagsRst = tcpFlagsRst; } public void setTcpFlagsSyn(Integer tcpFlagsSyn) { _tcpFlagsSyn = tcpFlagsSyn; } public void setTcpFlagsUrg(Integer tcpFlagsUrg) { _tcpFlagsUrg = tcpFlagsUrg; } }