Note that there are some explanatory texts on larger screens.

plurals
  1. POhow to customize compareTo method to consider both direction flow
    text
    copied!<p>if I need to customize my code with this logic</p> <pre><code>if this.srcAddr=other.srcAddr or this.src.Addr = other.sdstAddr this.srcPort=other.srcPort this.srcPort=other.dstPort </code></pre> <p>because I am going to consider bi-directional flow, a packet from source to destination and a packet from destination to source belong to a flow.</p> <p>How should I change my code?</p> <pre><code>package myclassifier; public class Flows implements Comparable&lt;Flows&gt; { String srcAddr, dstAddr, srcPort, dstPort, protocol; public Flows(String sIP, String dIP){ this.srcAddr = sIP; this.dstAddr = dIP; } public int compareTo(Flows other) { int res = (this.srcAddr.compareTo(other.srcAddr)); if (res != 0) { return res; } res = this.dstAddr.compareTo(other.dstAddr); if (res != 0) { return res; } res = this.srcPort.compareTo(other.srcPort); if (res != 0) { return res; } res = this.dstPort.compareTo(other.dstPort); if (res != 0) { return res; } return this.protocol.compareTo(other.protocol); } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((dstAddr == null) ? 0 : dstAddr.hashCode()); result = prime * result + ((dstPort == null) ? 0 : dstPort.hashCode()); result = prime * result + ((srcAddr == null) ? 0 : srcAddr.hashCode()); result = prime * result + ((srcPort == null) ? 0 : srcPort.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Flows other = (Flows) obj; if (dstAddr == null) { if (other.dstAddr != null) return false; } else if (!dstAddr.equals(other.dstAddr)) return false; if (dstPort == null) { if (other.dstPort != null) return false; } else if (!dstPort.equals(other.dstPort)) return false; if (srcAddr == null) { if (other.srcAddr != null) return false; } else if (!srcAddr.equals(other.srcAddr)) return false; if (srcPort == null) { if (other.srcPort != null) return false; } else if (!srcPort.equals(other.srcPort)) return false; return true; } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload