java_gen: made OFValueTypes Comparable
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/ArpOpcode.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/ArpOpcode.java
index 5ab940d..2a33a0e 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/ArpOpcode.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/ArpOpcode.java
@@ -2,6 +2,8 @@
import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.primitives.UnsignedInts;
+
public class ArpOpcode implements OFValueType<ArpOpcode> {
final static int LENGTH = 2;
@@ -160,4 +162,31 @@
return opcode;
}
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + opcode;
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ArpOpcode other = (ArpOpcode) obj;
+ if (opcode != other.opcode)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int compareTo(ArpOpcode o) {
+ return UnsignedInts.compare(opcode, o.opcode);
+ }
+
}
\ No newline at end of file
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/EthType.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/EthType.java
index abd4bff..7031a0d 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/EthType.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/EthType.java
@@ -2,6 +2,8 @@
import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.primitives.UnsignedInts;
+
/**
* EtherType field representation.
@@ -214,24 +216,6 @@
}
@Override
- public boolean equals(Object obj) {
- if (!(obj instanceof EthType))
- return false;
- EthType o = (EthType)obj;
- if (o.rawValue != this.rawValue)
- return false;
- return true;
- }
-
- @Override
- public int hashCode() {
- final int prime = 37;
- int result = 1;
- result = prime * result + rawValue;
- return result;
- }
-
- @Override
public String toString() {
return Integer.toHexString(rawValue);
}
@@ -253,5 +237,28 @@
return rawValue;
}
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof EthType))
+ return false;
+ EthType o = (EthType)obj;
+ if (o.rawValue != this.rawValue)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 37;
+ int result = 1;
+ result = prime * result + rawValue;
+ return result;
+ }
+
+ @Override
+ public int compareTo(EthType o) {
+ return UnsignedInts.compare(rawValue, o.rawValue);
+ }
+
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/ICMPv4Code.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/ICMPv4Code.java
index a6544c9..c66486f 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/ICMPv4Code.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/ICMPv4Code.java
@@ -2,6 +2,8 @@
import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.primitives.Shorts;
+
/**
*
* @author Yotam Harchol (yotam.harchol@bigswitch.com)
@@ -56,4 +58,30 @@
}
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + code;
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ICMPv4Code other = (ICMPv4Code) obj;
+ if (code != other.code)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int compareTo(ICMPv4Code o) {
+ return Shorts.compare(code, o.code);
+ }
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/ICMPv4Type.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/ICMPv4Type.java
index 5190d4e..594aaec 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/ICMPv4Type.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/ICMPv4Type.java
@@ -2,8 +2,9 @@
import org.jboss.netty.buffer.ChannelBuffer;
-public class ICMPv4Type implements OFValueType<ICMPv4Type> {
+import com.google.common.primitives.Shorts;
+public class ICMPv4Type implements OFValueType<ICMPv4Type> {
final static int LENGTH = 1;
private static final short ICMPV4_TYPE_VAL_ECHO_REPLY = 0;
@@ -166,5 +167,30 @@
return ICMPv4Type.of((short)(this.type & mask.type));
}
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + type;
+ return result;
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ICMPv4Type other = (ICMPv4Type) obj;
+ if (type != other.type)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int compareTo(ICMPv4Type o) {
+ return Shorts.compare(type, o.type);
+ }
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java
index 3b07c17..77b792f 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv4Address.java
@@ -1,7 +1,11 @@
package org.projectfloodlight.openflow.types;
+import java.util.Arrays;
+
import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.primitives.UnsignedInts;
+
/**
@@ -106,28 +110,6 @@
return res.toString();
}
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + rawValue;
- return result;
- }
-
- @Override
- public boolean equals(final Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- IPv4Address other = (IPv4Address) obj;
- if (rawValue != other.rawValue)
- return false;
- return true;
- }
-
public void write4Bytes(ChannelBuffer c) {
c.writeInt(rawValue);
}
@@ -141,5 +123,33 @@
return IPv4Address.of(this.rawValue & mask.rawValue);
}
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + Arrays.hashCode(bytesCache);
+ result = prime * result + rawValue;
+ return result;
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ IPv4Address other = (IPv4Address) obj;
+ if (!Arrays.equals(bytesCache, other.bytesCache))
+ return false;
+ if (rawValue != other.rawValue)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int compareTo(IPv4Address o) {
+ return UnsignedInts.compare(rawValue, o.rawValue);
+ }
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java
index eb52f67..b58de1a 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6Address.java
@@ -5,6 +5,8 @@
import org.jboss.netty.buffer.ChannelBuffer;
import org.projectfloodlight.openflow.exceptions.OFParseError;
+import com.google.common.primitives.Longs;
+
/**
* IPv6 address object. Instance controlled, immutable. Internal representation:
* two 64 bit longs (not that you'd have to know).
@@ -297,4 +299,13 @@
public IPv6Address applyMask(IPv6Address mask) {
return IPv6Address.of(this.raw1 & mask.raw1, this.raw2 & mask.raw2);
}
+
+ @Override
+ public int compareTo(IPv6Address o) {
+ int res = Longs.compare(raw1, o.raw1);
+ if(res != 0)
+ return res;
+ else
+ return Longs.compare(raw2, o.raw2);
+ }
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6FlowLabel.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6FlowLabel.java
index 7dbf9bb..45bbf4b 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6FlowLabel.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IPv6FlowLabel.java
@@ -3,6 +3,8 @@
import org.jboss.netty.buffer.ChannelBuffer;
import org.projectfloodlight.openflow.exceptions.OFParseError;
+import com.google.common.primitives.UnsignedInts;
+
public class IPv6FlowLabel implements OFValueType<IPv6FlowLabel> {
static final int LENGTH = 4;
@@ -69,4 +71,9 @@
public int getIPv6FlowLabelValue() {
return label;
}
+
+ @Override
+ public int compareTo(IPv6FlowLabel o) {
+ return UnsignedInts.compare(label, o.label);
+ }
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IpProtocol.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IpProtocol.java
index 36a76a2..f0f79ec 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IpProtocol.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/IpProtocol.java
@@ -2,6 +2,8 @@
import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.primitives.Shorts;
+
/**
* IP-Protocol field representation
*
@@ -608,24 +610,6 @@
}
@Override
- public boolean equals(Object obj) {
- if (!(obj instanceof IpProtocol))
- return false;
- IpProtocol o = (IpProtocol)obj;
- if (o.proto != this.proto)
- return false;
- return true;
- }
-
- @Override
- public int hashCode() {
- final int prime = 37;
- int result = 1;
- result = prime * result + proto;
- return result;
- }
-
- @Override
public String toString() {
return Integer.toHexString(proto);
}
@@ -647,4 +631,28 @@
return proto;
}
-}
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof IpProtocol))
+ return false;
+ IpProtocol o = (IpProtocol)obj;
+ if (o.proto != this.proto)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 37;
+ int result = 1;
+ result = prime * result + proto;
+ return result;
+ }
+
+
+ @Override
+ public int compareTo(IpProtocol o) {
+ return Shorts.compare(proto, o.proto);
+ }
+
+}
\ No newline at end of file
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/LagId.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/LagId.java
index 713db9a..b7f7f67 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/LagId.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/LagId.java
@@ -1,10 +1,13 @@
package org.projectfloodlight.openflow.types;
-import org.jboss.netty.buffer.ChannelBuffer;
import javax.annotation.concurrent.Immutable;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+import com.google.common.primitives.UnsignedInts;
+
@Immutable
-public class LagId {
+public class LagId implements OFValueType<LagId> {
static final int LENGTH = 4;
private final int rawValue;
@@ -20,6 +23,7 @@
return rawValue;
}
+ @Override
public int getLength() {
return LENGTH;
}
@@ -58,4 +62,14 @@
public static LagId read4Bytes(ChannelBuffer c) {
return LagId.of(c.readInt());
}
+
+ @Override
+ public int compareTo(LagId o) {
+ return UnsignedInts.compare(rawValue, o.rawValue);
+ }
+
+ @Override
+ public LagId applyMask(LagId mask) {
+ return LagId.of(rawValue & mask.rawValue);
+ }
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/MacAddress.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/MacAddress.java
index cc047ca..87be7c2 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/MacAddress.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/MacAddress.java
@@ -4,6 +4,8 @@
import org.projectfloodlight.openflow.exceptions.OFParseError;
import org.projectfloodlight.openflow.util.HexString;
+import com.google.common.primitives.Longs;
+
/**
* Wrapper around a 6 byte mac address.
*
@@ -131,6 +133,11 @@
return MacAddress.of(this.rawValue & mask.rawValue);
}
+ @Override
+ public int compareTo(MacAddress o) {
+ return Longs.compare(rawValue, o.rawValue);
+ }
+
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/Masked.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/Masked.java
index ead7d62..4d88793 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/Masked.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/Masked.java
@@ -5,20 +5,20 @@
public class Masked<T extends OFValueType<T>> implements OFValueType<Masked<T>> {
protected T value;
protected T mask;
-
+
protected Masked(T value, T mask) {
this.value = value.applyMask(mask);
this.mask = mask;
}
-
+
public T getValue() {
return value;
}
-
+
public T getMask() {
return mask;
}
-
+
public static <T extends OFValueType<T>> Masked<T> of(T value, T mask) {
return new Masked<T>(value, mask);
}
@@ -27,7 +27,20 @@
public int getLength() {
return this.value.getLength() + this.mask.getLength();
}
-
+
+ @Override
+ public String toString() {
+ // General representation: value/mask
+ StringBuilder sb = new StringBuilder();
+ sb.append(value.toString()).append('/').append(mask.toString());
+ return sb.toString();
+ }
+
+ @Override
+ public Masked<T> applyMask(Masked<T> mask) {
+ return this;
+ }
+
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Masked<?>))
@@ -46,16 +59,11 @@
}
@Override
- public String toString() {
- // General representation: value/mask
- StringBuilder sb = new StringBuilder();
- sb.append(value.toString()).append('/').append(mask.toString());
- return sb.toString();
+ public int compareTo(Masked<T> o) {
+ int res = value.compareTo(o.value);
+ if(res != 0)
+ return res;
+ else
+ return mask.compareTo(o.mask);
}
-
- @Override
- public Masked<T> applyMask(Masked<T> mask) {
- return this;
- }
-
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/Metadata.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/Metadata.java
index e4eed77..4764747 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/Metadata.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/Metadata.java
@@ -2,8 +2,10 @@
import javax.annotation.concurrent.Immutable;
+import com.google.common.primitives.UnsignedInts;
+
@Immutable
-public class Metadata {
+public class Metadata implements OFValueType<Metadata> {
static final int LENGTH = 4;
private final static int NONE_VAL = 0;
@@ -26,11 +28,21 @@
return rawValue;
}
+ @Override
public int getLength() {
return LENGTH;
}
@Override
+ public String toString() {
+ return Integer.toString(rawValue);
+ }
+
+ @Override
+ public Metadata applyMask(Metadata mask) {
+ return Metadata.of(rawValue & mask.rawValue); }
+
+ @Override
public int hashCode() {
final int prime = 31;
int result = 1;
@@ -53,7 +65,7 @@
}
@Override
- public String toString() {
- return Integer.toString(rawValue);
+ public int compareTo(Metadata o) {
+ return UnsignedInts.compare(rawValue, rawValue);
}
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFBufferId.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFBufferId.java
index 99f3e7f..856eff0 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFBufferId.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFBufferId.java
@@ -4,14 +4,15 @@
import org.projectfloodlight.openflow.annotations.Immutable;
import org.projectfloodlight.openflow.exceptions.OFParseError;
+import com.google.common.primitives.UnsignedInts;
+
/**
* Abstraction of a buffer id in OpenFlow. Immutable.
*
* @author Rob Vaterlaus <rob.vaterlaus@bigswitch.com>
*/
@Immutable
-public class OFBufferId {
-
+public class OFBufferId implements Comparable<OFBufferId> {
public static final OFBufferId NO_BUFFER = new OFBufferId(0xFFFFFFFF);
private final int rawValue;
@@ -64,4 +65,9 @@
return false;
return true;
}
+
+ @Override
+ public int compareTo(OFBufferId o) {
+ return UnsignedInts.compare(rawValue, o.rawValue);
+ }
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFMetadata.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFMetadata.java
index 766ade1..0844d89 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFMetadata.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFMetadata.java
@@ -63,6 +63,8 @@
return "Metadata: " + u64.toString();
}
-
-
+ @Override
+ public int compareTo(OFMetadata o) {
+ return u64.compareTo(o.u64);
+ }
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFPort.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFPort.java
index 858eda6..cb36d0c 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFPort.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFPort.java
@@ -4,6 +4,8 @@
import org.projectfloodlight.openflow.annotations.Immutable;
import org.projectfloodlight.openflow.exceptions.OFParseError;
+import com.google.common.primitives.UnsignedInts;
+
/**
* Abstraction of an logical / OpenFlow switch port (ofp_port_no) in OpenFlow.
* Immutable. Note: Switch port numbers were changed in OpenFlow 1.1 from uint16
@@ -538,4 +540,9 @@
public OFPort applyMask(OFPort mask) {
return OFPort.of(this.portNumber & mask.portNumber);
}
+
+ @Override
+ public int compareTo(OFPort o) {
+ return UnsignedInts.compare(this.portNumber, o.portNumber);
+ }
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFValueType.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFValueType.java
index 5f41494..3d8d1cd 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFValueType.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/OFValueType.java
@@ -3,10 +3,8 @@
-public interface OFValueType<T extends OFValueType<T>> {
-
+public interface OFValueType<T extends OFValueType<T>> extends Comparable<T> {
public int getLength();
-
- public T applyMask(T mask);
+ public T applyMask(T mask);
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/TableId.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/TableId.java
index 6353698..ebb1966 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/TableId.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/TableId.java
@@ -3,7 +3,9 @@
import org.jboss.netty.buffer.ChannelBuffer;
import org.projectfloodlight.openflow.exceptions.OFParseError;
-public class TableId implements OFValueType<TableId> {
+import com.google.common.primitives.Shorts;
+
+public class TableId implements OFValueType<TableId>, Comparable<TableId> {
final static int LENGTH = 1;
@@ -40,22 +42,6 @@
}
@Override
- public boolean equals(Object obj) {
- if (!(obj instanceof TableId))
- return false;
- TableId other = (TableId)obj;
- if (other.id != this.id)
- return false;
- return true;
- }
-
- @Override
- public int hashCode() {
- int prime = 13873;
- return this.id * prime;
- }
-
- @Override
public String toString() {
return "0x" + Integer.toHexString(id);
}
@@ -82,5 +68,25 @@
return TableId.of((short)(this.id & mask.id));
}
+ @Override
+ public boolean equals(Object obj) {
+ if (!(obj instanceof TableId))
+ return false;
+ TableId other = (TableId)obj;
+ if (other.id != this.id)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int prime = 13873;
+ return this.id * prime;
+ }
+
+ @Override
+ public int compareTo(TableId other) {
+ return Shorts.compare(this.id, other.id);
+ }
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/TransportPort.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/TransportPort.java
index 6efd813..540ad1a 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/TransportPort.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/TransportPort.java
@@ -3,6 +3,8 @@
import org.jboss.netty.buffer.ChannelBuffer;
import org.projectfloodlight.openflow.exceptions.OFParseError;
+import com.google.common.primitives.Ints;
+
/**
* Represents L4 (Transport Layer) port (TCP, UDP, etc.)
*
@@ -80,4 +82,9 @@
return TransportPort.of(this.port & mask.port);
}
+ @Override
+ public int compareTo(TransportPort o) {
+ return Ints.compare(port, o.port);
+ }
+
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U16.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U16.java
index 43bec7a..c52a74a 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U16.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U16.java
@@ -60,7 +60,7 @@
@Override
public String toString() {
- return "" + f(raw);
+ return Integer.toString(f(raw));
}
@Override
@@ -110,4 +110,9 @@
public U16 applyMask(U16 mask) {
return ofRaw( (short) (raw & mask.raw));
}
+
+ @Override
+ public int compareTo(U16 o) {
+ return Integer.compare(f(raw), f(o.raw));
+ }
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U32.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U32.java
index f56a528..daf5fa6 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U32.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U32.java
@@ -22,6 +22,8 @@
import org.projectfloodlight.openflow.protocol.OFMessageReader;
import org.projectfloodlight.openflow.protocol.Writeable;
+import com.google.common.primitives.UnsignedInts;
+
public class U32 implements Writeable, OFValueType<U32> {
private final static int ZERO_VAL = 0;
public final static U32 ZERO = new U32(ZERO_VAL);
@@ -110,4 +112,9 @@
return ofRaw(raw & mask.raw);
}
+ @Override
+ public int compareTo(U32 o) {
+ return UnsignedInts.compare(raw, o.raw);
+ }
+
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U64.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U64.java
index 3b89e24..8cd577f 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U64.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U64.java
@@ -22,6 +22,8 @@
import org.jboss.netty.buffer.ChannelBuffer;
import org.projectfloodlight.openflow.protocol.Writeable;
+import com.google.common.primitives.UnsignedLongs;
+
public class U64 implements Writeable, OFValueType<U64> {
private static final long UNSIGNED_MASK = 0x7fffffffffffffffL;
private final static long ZERO_VAL = 0;
@@ -113,4 +115,9 @@
bb.writeLong(raw);
}
+ @Override
+ public int compareTo(U64 o) {
+ return UnsignedLongs.compare(raw, o.raw);
+ }
+
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U8.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U8.java
index f85bfae..b85627e 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U8.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/U8.java
@@ -22,6 +22,8 @@
import org.projectfloodlight.openflow.protocol.OFMessageReader;
import org.projectfloodlight.openflow.protocol.Writeable;
+import com.google.common.primitives.UnsignedBytes;
+
public class U8 implements Writeable, OFValueType<U8> {
private final static byte ZERO_VAL = 0;
public final static U8 ZERO = new U8(ZERO_VAL);
@@ -112,4 +114,9 @@
return ofRaw( (byte) (raw & mask.raw));
}
+ @Override
+ public int compareTo(U8 o) {
+ return UnsignedBytes.compare(raw, o.raw);
+ }
+
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/VRF.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/VRF.java
index cda5699..10e2ebc 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/VRF.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/VRF.java
@@ -1,8 +1,11 @@
package org.projectfloodlight.openflow.types;
-import org.jboss.netty.buffer.ChannelBuffer;
import javax.annotation.concurrent.Immutable;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+import com.google.common.primitives.UnsignedInts;
+
@Immutable
public class VRF implements OFValueType<VRF> {
static final int LENGTH = 4;
@@ -67,4 +70,9 @@
public VRF applyMask(VRF mask) {
return VRF.of(this.rawValue & mask.rawValue);
}
+
+ @Override
+ public int compareTo(VRF o) {
+ return UnsignedInts.compare(rawValue, o.rawValue);
+ }
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/VlanPcp.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/VlanPcp.java
index 7d15fb7..dcc7d60 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/VlanPcp.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/VlanPcp.java
@@ -3,6 +3,8 @@
import org.jboss.netty.buffer.ChannelBuffer;
import org.projectfloodlight.openflow.exceptions.OFParseError;
+import com.google.common.primitives.UnsignedBytes;
+
public class VlanPcp implements OFValueType<VlanPcp> {
private static final byte VALIDATION_MASK = 0x07;
@@ -68,4 +70,9 @@
return VlanPcp.of((byte)(this.pcp & mask.pcp));
}
+ @Override
+ public int compareTo(VlanPcp o) {
+ return UnsignedBytes.compare(pcp, o.pcp);
+ }
+
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/VlanVid.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/VlanVid.java
index 5c23779..d6f65d5 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/VlanVid.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/VlanVid.java
@@ -3,6 +3,8 @@
import org.jboss.netty.buffer.ChannelBuffer;
import org.projectfloodlight.openflow.exceptions.OFParseError;
+import com.google.common.primitives.Shorts;
+
public class VlanVid implements OFValueType<VlanVid> {
private static final short VALIDATION_MASK = 0x0FFF;
@@ -86,4 +88,9 @@
return VlanVid.of((short)(this.vid & mask.vid));
}
+ @Override
+ public int compareTo(VlanVid o) {
+ return Shorts.compare(vid, o.vid);
+ }
+
}