b5105a8a5ec5faca7ae2ab2b1426420954315d12
[genius.git] / mdsalutil / mdsalutil-api / src / main / java / org / opendaylight / genius / mdsalutil / matches / MatchVlanVid.java
1 /*
2  * Copyright © 2017 Red Hat, Inc. and others.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.genius.mdsalutil.matches;
9
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.VlanMatch;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.VlanMatchBuilder;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.vlan.match.fields.VlanIdBuilder;
15
16 /**
17  * VLAN identifier match.
18  */
19 public class MatchVlanVid extends MatchInfoHelper<VlanMatch, VlanMatchBuilder> {
20     private final int vlanId;
21
22     public MatchVlanVid(int vlanId) {
23         this.vlanId = vlanId;
24     }
25
26     @Override
27     protected void applyValue(MatchBuilder matchBuilder, VlanMatch value) {
28         matchBuilder.setVlanMatch(value);
29     }
30
31     @Override
32     protected void populateBuilder(VlanMatchBuilder builder) {
33         builder.setVlanId(new VlanIdBuilder()
34                 .setVlanId(new VlanId(vlanId))
35                 .setVlanIdPresent(vlanId != 0)
36                 .build());
37     }
38
39     public int getVlanId() {
40         return vlanId;
41     }
42
43     @Override
44     public boolean equals(Object o) {
45         if (this == o) return true;
46         if (o == null || getClass() != o.getClass()) return false;
47         if (!super.equals(o)) return false;
48
49         MatchVlanVid that = (MatchVlanVid) o;
50
51         return vlanId == that.vlanId;
52     }
53
54     @Override
55     public int hashCode() {
56         int result = super.hashCode();
57         result = 31 * result + vlanId;
58         return result;
59     }
60 }