Toshio Koide | 025a915 | 2014-07-21 11:00:34 -0700 | [diff] [blame] | 1 | package net.onrc.onos.api.flowmanager; |
2 | |||||
Toshio Koide | 515ba84 | 2014-08-20 11:53:37 -0700 | [diff] [blame] | 3 | import java.util.Objects; |
4 | |||||
Toshio Koide | 778c4d6 | 2014-08-29 11:18:31 -0700 | [diff] [blame^] | 5 | import javax.annotation.concurrent.Immutable; |
6 | |||||
Toshio Koide | fad1cd5 | 2014-08-07 17:10:07 -0700 | [diff] [blame] | 7 | import net.onrc.onos.api.batchoperation.BatchOperationTarget; |
Toshio Koide | 025a915 | 2014-07-21 11:00:34 -0700 | [diff] [blame] | 8 | |
9 | /** | ||||
Toshio Koide | 7894ca0 | 2014-08-15 14:30:13 -0700 | [diff] [blame] | 10 | * Represents ID for Flow objects. |
Toshio Koide | 778c4d6 | 2014-08-29 11:18:31 -0700 | [diff] [blame^] | 11 | * <p> |
12 | * This class is immutable. | ||||
Toshio Koide | 025a915 | 2014-07-21 11:00:34 -0700 | [diff] [blame] | 13 | */ |
Toshio Koide | 778c4d6 | 2014-08-29 11:18:31 -0700 | [diff] [blame^] | 14 | @Immutable |
15 | public final class FlowId implements BatchOperationTarget { | ||||
16 | private final long id; | ||||
Toshio Koide | 025a915 | 2014-07-21 11:00:34 -0700 | [diff] [blame] | 17 | |
18 | /** | ||||
Toshio Koide | 2c67a2d | 2014-08-27 11:30:56 -0700 | [diff] [blame] | 19 | * Default constructor for Kryo deserialization. |
20 | */ | ||||
21 | @Deprecated | ||||
22 | protected FlowId() { | ||||
Toshio Koide | 778c4d6 | 2014-08-29 11:18:31 -0700 | [diff] [blame^] | 23 | id = 0; |
Toshio Koide | 2c67a2d | 2014-08-27 11:30:56 -0700 | [diff] [blame] | 24 | } |
25 | |||||
26 | /** | ||||
Toshio Koide | 025a915 | 2014-07-21 11:00:34 -0700 | [diff] [blame] | 27 | * Creates new instance with string ID. |
Toshio Koide | 515ba84 | 2014-08-20 11:53:37 -0700 | [diff] [blame] | 28 | * <p> |
29 | * This FlowId instance should be generated with {@link FlowIdGenerator}. | ||||
Toshio Koide | 025a915 | 2014-07-21 11:00:34 -0700 | [diff] [blame] | 30 | * |
31 | * @param id String representation of the ID. | ||||
32 | */ | ||||
Toshio Koide | 515ba84 | 2014-08-20 11:53:37 -0700 | [diff] [blame] | 33 | public FlowId(long id) { |
Toshio Koide | 778c4d6 | 2014-08-29 11:18:31 -0700 | [diff] [blame^] | 34 | this.id = id; |
Toshio Koide | 025a915 | 2014-07-21 11:00:34 -0700 | [diff] [blame] | 35 | } |
36 | |||||
37 | @Override | ||||
38 | public String toString() { | ||||
Toshio Koide | 778c4d6 | 2014-08-29 11:18:31 -0700 | [diff] [blame^] | 39 | return "0x" + Long.toHexString(id); |
Toshio Koide | 025a915 | 2014-07-21 11:00:34 -0700 | [diff] [blame] | 40 | } |
41 | |||||
42 | @Override | ||||
43 | public int hashCode() { | ||||
Toshio Koide | 778c4d6 | 2014-08-29 11:18:31 -0700 | [diff] [blame^] | 44 | return Objects.hashCode(id); |
Toshio Koide | 025a915 | 2014-07-21 11:00:34 -0700 | [diff] [blame] | 45 | } |
46 | |||||
47 | @Override | ||||
48 | public boolean equals(Object obj) { | ||||
49 | if (obj instanceof FlowId) { | ||||
Toshio Koide | 515ba84 | 2014-08-20 11:53:37 -0700 | [diff] [blame] | 50 | FlowId that = (FlowId) obj; |
Toshio Koide | 778c4d6 | 2014-08-29 11:18:31 -0700 | [diff] [blame^] | 51 | return Objects.equals(this.id, that.id); |
Toshio Koide | 025a915 | 2014-07-21 11:00:34 -0700 | [diff] [blame] | 52 | } |
53 | return false; | ||||
54 | } | ||||
55 | } |