Ignore flaky ITM test
[genius.git] / itm / itm-impl / src / main / java / org / opendaylight / genius / itm / cli / SubnetObject.java
1 /*
2  * Copyright (c) 2016, 2017 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
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.itm.cli;
9
10 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
11 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.SubnetsKey;
13 import org.slf4j.Logger;
14 import org.slf4j.LoggerFactory;
15
16 public class SubnetObject {
17     private IpAddress gatewayIp;
18     private SubnetsKey key;
19     private IpPrefix prefix;
20     private java.lang.Integer vlanId;
21     private static final Logger LOG = LoggerFactory.getLogger(SubnetObject.class);
22
23     public SubnetObject(IpAddress gwIP, SubnetsKey key, IpPrefix mask, Integer vlanId) {
24         gatewayIp = gwIP;
25         this.key = key;
26         this.prefix = mask;
27         try {
28             if (vlanId != null) {
29                 checkVlanIdRange(vlanId);
30             }
31         } catch (IllegalArgumentException e) {
32             LOG.error("Invalid VlanID. expected: 0 to 4095");
33         }
34         this.vlanId = vlanId;
35     }
36
37     public IpAddress get_gatewayIp() {
38         return gatewayIp;
39     }
40
41     public SubnetsKey get_key() {
42         return key;
43     }
44
45     public IpPrefix get_prefix() {
46         return prefix;
47     }
48
49     public java.lang.Integer get_vlanId() {
50         return vlanId;
51     }
52
53     private int hash = 0;
54     private volatile boolean hashValid = false;
55
56     @Override
57     public int hashCode() {
58         if (hashValid) {
59             return hash;
60         }
61
62         final int prime = 31;
63         int result = 1;
64         result = prime * result + ((gatewayIp == null) ? 0 : gatewayIp.hashCode());
65         result = prime * result + ((key == null) ? 0 : key.hashCode());
66         result = prime * result + ((prefix == null) ? 0 : prefix.hashCode());
67         result = prime * result + ((vlanId == null) ? 0 : vlanId.hashCode());
68         hash = result;
69         hashValid = true;
70         return result;
71     }
72
73     @Override
74     public boolean equals(java.lang.Object obj) {
75         if (this == obj) {
76             return true;
77         }
78         if (!(obj instanceof SubnetObject)) {
79             return false;
80         }
81         SubnetObject other = (SubnetObject) obj;
82         if (gatewayIp == null) {
83             if (other.get_gatewayIp() != null) {
84                 return false;
85             }
86         } else if (!gatewayIp.equals(other.get_gatewayIp())) {
87             return false;
88         }
89         if (key == null) {
90             if (other.get_key() != null) {
91                 return false;
92             }
93         } else if (!key.equals(other.get_key())) {
94             return false;
95         }
96         if (prefix == null) {
97             if (other.get_prefix() != null) {
98                 return false;
99             }
100         } else if (!prefix.equals(other.get_prefix())) {
101             return false;
102         }
103         if (vlanId == null) {
104             if (other.get_vlanId() != null) {
105                 return false;
106             }
107         } else if (!vlanId.equals(other.get_vlanId())) {
108             return false;
109         }
110         return true;
111     }
112
113     @Override
114     public java.lang.String toString() {
115         java.lang.StringBuilder builder = new java.lang.StringBuilder("Subnets [");
116         boolean first = true;
117
118         if (gatewayIp != null) {
119             if (first) {
120                 first = false;
121             } else {
122                 builder.append(", ");
123             }
124             builder.append("gatewayIp=");
125             builder.append(gatewayIp);
126         }
127         if (key != null) {
128             if (first) {
129                 first = false;
130             } else {
131                 builder.append(", ");
132             }
133             builder.append("key=");
134             builder.append(key);
135         }
136         if (prefix != null) {
137             if (first) {
138                 first = false;
139             } else {
140                 builder.append(", ");
141             }
142             builder.append("prefix=");
143             builder.append(prefix);
144         }
145         if (vlanId != null) {
146             if (first) {
147                 first = false;
148             } else {
149                 builder.append(", ");
150             }
151             builder.append("vlanId=");
152             builder.append(vlanId);
153         }
154         return builder.append(']').toString();
155     }
156
157     private static void checkVlanIdRange(final int value) {
158         if (value >= 0 && value <= 4095) {
159             return;
160         }
161         throw new IllegalArgumentException(String.format("Invalid range: %s, expected: [[0?4095]].", value));
162     }
163 }