blob: b6bb9f0f64e699fd14d160262124cd2080b3cb85 [file] [log] [blame]
Toshio Koide025a9152014-07-21 11:00:34 -07001package net.onrc.onos.api.flowmanager;
2
Toshio Koide515ba842014-08-20 11:53:37 -07003import java.util.Objects;
4
Toshio Koidefad1cd52014-08-07 17:10:07 -07005import net.onrc.onos.api.batchoperation.BatchOperationTarget;
Toshio Koide025a9152014-07-21 11:00:34 -07006
7/**
Toshio Koide7894ca02014-08-15 14:30:13 -07008 * Represents ID for Flow objects.
Toshio Koide025a9152014-07-21 11:00:34 -07009 */
Toshio Koidefad1cd52014-08-07 17:10:07 -070010public class FlowId implements BatchOperationTarget {
Toshio Koide515ba842014-08-20 11:53:37 -070011 private final long value;
Toshio Koide025a9152014-07-21 11:00:34 -070012
13 /**
Toshio Koide2c67a2d2014-08-27 11:30:56 -070014 * Default constructor for Kryo deserialization.
15 */
16 @Deprecated
17 protected FlowId() {
18 value = 0;
19 }
20
21 /**
Toshio Koide025a9152014-07-21 11:00:34 -070022 * Creates new instance with string ID.
Toshio Koide515ba842014-08-20 11:53:37 -070023 * <p>
24 * This FlowId instance should be generated with {@link FlowIdGenerator}.
Toshio Koide025a9152014-07-21 11:00:34 -070025 *
26 * @param id String representation of the ID.
27 */
Toshio Koide515ba842014-08-20 11:53:37 -070028 public FlowId(long id) {
Toshio Koide025a9152014-07-21 11:00:34 -070029 value = id;
30 }
31
32 @Override
33 public String toString() {
Toshio Koide515ba842014-08-20 11:53:37 -070034 return Long.toString(value);
Toshio Koide025a9152014-07-21 11:00:34 -070035 }
36
37 @Override
38 public int hashCode() {
Toshio Koide515ba842014-08-20 11:53:37 -070039 return Objects.hashCode(value);
Toshio Koide025a9152014-07-21 11:00:34 -070040 }
41
42 @Override
43 public boolean equals(Object obj) {
44 if (obj instanceof FlowId) {
Toshio Koide515ba842014-08-20 11:53:37 -070045 FlowId that = (FlowId) obj;
46 return Objects.equals(this.value, that.value);
Toshio Koide025a9152014-07-21 11:00:34 -070047 }
48 return false;
49 }
50}