blob: 3c4eebef0d546ceb172921ab64b457a8a712359e [file] [log] [blame]
Toshio Koidec9051db2014-10-20 15:18:37 -07001package org.onlab.onos.net.resource;
2
3import java.util.Objects;
4
5/**
6 * Representation of bandwidth resource.
7 */
8public final class Bandwidth extends LinkResource {
9
10 private final double bandwidth;
11
12 /**
13 * Creates a new instance with given bandwidth.
14 *
15 * @param bandwidth bandwidth value to be assigned
16 */
17 private Bandwidth(double bandwidth) {
18 this.bandwidth = bandwidth;
19 }
20
21 /**
22 * Creates a new instance with given bandwidth.
23 *
24 * @param bandwidth bandwidth value to be assigned
25 * @return {@link Bandwidth} instance with given bandwidth
26 */
27 public static Bandwidth valueOf(double bandwidth) {
28 return new Bandwidth(bandwidth);
29 }
30
31 /**
32 * Returns bandwidth as a double value.
33 *
34 * @return bandwidth as a double value
35 */
36 public double toDouble() {
37 return bandwidth;
38 }
39
40 @Override
41 public boolean equals(Object obj) {
42 if (obj instanceof Bandwidth) {
43 Bandwidth that = (Bandwidth) obj;
44 return Objects.equals(this.bandwidth, that.bandwidth);
45 }
46 return false;
47 }
48
49 @Override
50 public int hashCode() {
51 return Objects.hashCode(this.bandwidth);
52 }
53
54 @Override
55 public String toString() {
56 return String.valueOf(this.bandwidth);
57 }
58}