172434b7e41154b5625d4228097c402659500529
[genius.git] / mdsalutil / mdsalutil-api / src / main / java / org / opendaylight / genius / mdsalutil / matches / MatchArpOp.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.genius.mdsalutil.NwConstants;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.ArpMatch;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.ArpMatchBuilder;
14
15 /**
16  * ARP OP match.
17  */
18 public class MatchArpOp extends MatchInfoHelper<ArpMatch, ArpMatchBuilder> {
19     public static final MatchArpOp REQUEST = new MatchArpOp(NwConstants.ARP_REQUEST);
20     public static final MatchArpOp REPLY = new MatchArpOp(NwConstants.ARP_REPLY);
21
22     private final int op;
23
24     public MatchArpOp(int op) {
25         this.op = op;
26     }
27
28     @Override
29     protected void applyValue(MatchBuilder matchBuilder, ArpMatch value) {
30         matchBuilder.setLayer3Match(value);
31     }
32
33     @Override
34     protected void populateBuilder(ArpMatchBuilder builder) {
35         builder.setArpOp(op);
36     }
37
38     public int getOp() {
39         return op;
40     }
41
42     @Override
43     public boolean equals(Object o) {
44         if (this == o) return true;
45         if (o == null || getClass() != o.getClass()) return false;
46         if (!super.equals(o)) return false;
47
48         MatchArpOp that = (MatchArpOp) o;
49
50         return op == that.op;
51     }
52
53     @Override
54     public int hashCode() {
55         int result = super.hashCode();
56         result = 31 * result + op;
57         return result;
58     }
59 }