Move adsal into its own subdirectory.
[controller.git] / opendaylight / adsal / sal / api / src / main / java / org / opendaylight / controller / sal / match / extensible / DlVlan.java
1 package org.opendaylight.controller.sal.match.extensible;
2
3 import javax.xml.bind.annotation.XmlAccessType;
4 import javax.xml.bind.annotation.XmlAccessorType;
5 import javax.xml.bind.annotation.XmlElement;
6 import javax.xml.bind.annotation.XmlRootElement;
7
8
9 @XmlRootElement
10 @XmlAccessorType(XmlAccessType.NONE)
11 public class DlVlan extends MatchField<Short> {
12     private static final long serialVersionUID = 1L;
13     public static final String TYPE = "DL_VLAN";
14     private static final short MAX = 4095;
15     private short vlan;
16
17     /**
18      * Creates a Match field for the data layer type
19      *
20      * @param address
21      *            the data layer type
22      */
23     public DlVlan(short vlan) {
24         super(TYPE);
25         this.vlan = vlan;
26     }
27
28     // To satisfy JAXB
29     private DlVlan() {
30         super(TYPE);
31     }
32
33     @Override
34     public Short getValue() {
35         return vlan;
36     }
37
38     @Override
39     @XmlElement(name = "value")
40     protected String getValueString() {
41         return String.valueOf(vlan);
42     }
43
44     @Override
45     public Short getMask() {
46         return null;
47     }
48
49     @Override
50     protected String getMaskString() {
51         return null;
52     }
53
54     @Override
55     public boolean isValid() {
56         return vlan >= 0 && vlan <= MAX;
57     }
58
59     @Override
60     public DlVlan getReverse() {
61         return this.clone();
62     }
63
64     @Override
65     public boolean hasReverse() {
66         return false;
67     }
68
69     @Override
70     public DlVlan clone() {
71         return new DlVlan(vlan);
72     }
73
74     @Override
75     public boolean isV6() {
76         return true;
77     }
78
79     @Override
80     public int hashCode() {
81         final int prime = 31;
82         int result = 1;
83         result = prime * result + vlan;
84         return result;
85     }
86
87     @Override
88     public boolean equals(Object obj) {
89         if (this == obj) {
90             return true;
91         }
92         if (obj == null) {
93             return false;
94         }
95         if (!(obj instanceof DlVlan)) {
96             return false;
97         }
98         DlVlan other = (DlVlan) obj;
99         if (vlan != other.vlan) {
100             return false;
101         }
102         return true;
103     }
104 }