renamed VLAN, IP, and MACAddress classes
Change-Id: Ib4df413db1f3d9ee96213fc487519536d7993c5b
diff --git a/utils/misc/src/main/java/org/onlab/packet/VlanId.java b/utils/misc/src/main/java/org/onlab/packet/VlanId.java
new file mode 100644
index 0000000..60daec7
--- /dev/null
+++ b/utils/misc/src/main/java/org/onlab/packet/VlanId.java
@@ -0,0 +1,71 @@
+package org.onlab.packet;
+
+/**
+ * Representation of a VLAN ID.
+ */
+// FIXME: This will end-up looking like a constant; we should name it 'VlanId', 'IpAddress', 'MacAddress'.
+public class VlanId {
+
+ private final short value;
+ // Based on convention used elsewhere? Check and change if needed
+ public static final short UNTAGGED = (short) 0xffff;
+ // A VLAN ID is actually 12 bits of a VLAN tag.
+ public static final short MAX_VLAN = 4095;
+
+ protected VlanId() {
+ this.value = UNTAGGED;
+ }
+
+ protected VlanId(short value) {
+ this.value = value;
+ }
+
+ public static VlanId vlanId() {
+ return new VlanId(UNTAGGED);
+ }
+
+ public static VlanId vlanId(short value) {
+ if (value == UNTAGGED) {
+ return new VlanId();
+ }
+
+ if (value > MAX_VLAN) {
+ throw new IllegalArgumentException(
+ "value exceeds allowed maximum VLAN ID value (4095)");
+ }
+ return new VlanId(value);
+ }
+
+ public short toShort() {
+ return this.value;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+
+ if (obj instanceof VlanId) {
+
+ VlanId other = (VlanId) obj;
+
+ if (this.value == other.value) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return this.value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(this.value);
+ }
+}
+