Slice out LinkKey
Change-Id: Ibfcafd07858c5357a2321220e01ddab44f347923
Showing
2 changed files
with
74 additions
and
31 deletions
1 | +package org.onlab.onos.net; | ||
2 | + | ||
3 | +import java.util.Objects; | ||
4 | + | ||
5 | +import com.google.common.base.MoreObjects; | ||
6 | + | ||
7 | +// TODO Consider renaming. | ||
8 | +// it's an identifier for a Link, but it's not ElementId, so not using LinkId. | ||
9 | +/** | ||
10 | + * Immutable representation of a link identity. | ||
11 | + */ | ||
12 | +public class LinkKey { | ||
13 | + | ||
14 | + private final ConnectPoint src; | ||
15 | + private final ConnectPoint dst; | ||
16 | + | ||
17 | + /** | ||
18 | + * Returns source connection point. | ||
19 | + * | ||
20 | + * @return source connection point | ||
21 | + */ | ||
22 | + public ConnectPoint src() { | ||
23 | + return src; | ||
24 | + } | ||
25 | + | ||
26 | + /** | ||
27 | + * Returns destination connection point. | ||
28 | + * | ||
29 | + * @return destination connection point | ||
30 | + */ | ||
31 | + public ConnectPoint dst() { | ||
32 | + return dst; | ||
33 | + } | ||
34 | + | ||
35 | + /** | ||
36 | + * Creates a link identifier with source and destination connection point. | ||
37 | + * | ||
38 | + * @param src source connection point | ||
39 | + * @param dst destination connection point | ||
40 | + */ | ||
41 | + public LinkKey(ConnectPoint src, ConnectPoint dst) { | ||
42 | + this.src = src; | ||
43 | + this.dst = dst; | ||
44 | + } | ||
45 | + | ||
46 | + @Override | ||
47 | + public int hashCode() { | ||
48 | + return Objects.hash(src(), dst); | ||
49 | + } | ||
50 | + | ||
51 | + @Override | ||
52 | + public boolean equals(Object obj) { | ||
53 | + if (this == obj) { | ||
54 | + return true; | ||
55 | + } | ||
56 | + if (obj instanceof LinkKey) { | ||
57 | + final LinkKey other = (LinkKey) obj; | ||
58 | + return Objects.equals(this.src(), other.src()) && | ||
59 | + Objects.equals(this.dst, other.dst); | ||
60 | + } | ||
61 | + return false; | ||
62 | + } | ||
63 | + | ||
64 | + @Override | ||
65 | + public String toString() { | ||
66 | + return MoreObjects.toStringHelper(getClass()) | ||
67 | + .add("src", src()) | ||
68 | + .add("dst", dst) | ||
69 | + .toString(); | ||
70 | + } | ||
71 | +} |
... | @@ -3,6 +3,7 @@ package org.onlab.onos.net.trivial.impl; | ... | @@ -3,6 +3,7 @@ package org.onlab.onos.net.trivial.impl; |
3 | import com.google.common.collect.HashMultimap; | 3 | import com.google.common.collect.HashMultimap; |
4 | import com.google.common.collect.ImmutableSet; | 4 | import com.google.common.collect.ImmutableSet; |
5 | import com.google.common.collect.Multimap; | 5 | import com.google.common.collect.Multimap; |
6 | + | ||
6 | import org.apache.felix.scr.annotations.Activate; | 7 | import org.apache.felix.scr.annotations.Activate; |
7 | import org.apache.felix.scr.annotations.Component; | 8 | import org.apache.felix.scr.annotations.Component; |
8 | import org.apache.felix.scr.annotations.Deactivate; | 9 | import org.apache.felix.scr.annotations.Deactivate; |
... | @@ -11,6 +12,7 @@ import org.onlab.onos.net.ConnectPoint; | ... | @@ -11,6 +12,7 @@ import org.onlab.onos.net.ConnectPoint; |
11 | import org.onlab.onos.net.DefaultLink; | 12 | import org.onlab.onos.net.DefaultLink; |
12 | import org.onlab.onos.net.DeviceId; | 13 | import org.onlab.onos.net.DeviceId; |
13 | import org.onlab.onos.net.Link; | 14 | import org.onlab.onos.net.Link; |
15 | +import org.onlab.onos.net.LinkKey; | ||
14 | import org.onlab.onos.net.link.LinkDescription; | 16 | import org.onlab.onos.net.link.LinkDescription; |
15 | import org.onlab.onos.net.link.LinkEvent; | 17 | import org.onlab.onos.net.link.LinkEvent; |
16 | import org.onlab.onos.net.link.LinkStore; | 18 | import org.onlab.onos.net.link.LinkStore; |
... | @@ -22,7 +24,6 @@ import org.slf4j.Logger; | ... | @@ -22,7 +24,6 @@ import org.slf4j.Logger; |
22 | import java.util.Collections; | 24 | import java.util.Collections; |
23 | import java.util.HashSet; | 25 | import java.util.HashSet; |
24 | import java.util.Map; | 26 | import java.util.Map; |
25 | -import java.util.Objects; | ||
26 | import java.util.Set; | 27 | import java.util.Set; |
27 | import java.util.concurrent.ConcurrentHashMap; | 28 | import java.util.concurrent.ConcurrentHashMap; |
28 | 29 | ||
... | @@ -123,7 +124,7 @@ public class SimpleLinkStore | ... | @@ -123,7 +124,7 @@ public class SimpleLinkStore |
123 | // Creates and stores the link and returns the appropriate event. | 124 | // Creates and stores the link and returns the appropriate event. |
124 | private LinkEvent createLink(ProviderId providerId, LinkKey key, | 125 | private LinkEvent createLink(ProviderId providerId, LinkKey key, |
125 | LinkDescription linkDescription) { | 126 | LinkDescription linkDescription) { |
126 | - DefaultLink link = new DefaultLink(providerId, key.src, key.dst, | 127 | + DefaultLink link = new DefaultLink(providerId, key.src(), key.dst(), |
127 | linkDescription.type()); | 128 | linkDescription.type()); |
128 | synchronized (this) { | 129 | synchronized (this) { |
129 | links.put(key, link); | 130 | links.put(key, link); |
... | @@ -165,33 +166,4 @@ public class SimpleLinkStore | ... | @@ -165,33 +166,4 @@ public class SimpleLinkStore |
165 | return null; | 166 | return null; |
166 | } | 167 | } |
167 | } | 168 | } |
168 | - | ||
169 | - // Auxiliary key to track links. | ||
170 | - private class LinkKey { | ||
171 | - final ConnectPoint src; | ||
172 | - final ConnectPoint dst; | ||
173 | - | ||
174 | - LinkKey(ConnectPoint src, ConnectPoint dst) { | ||
175 | - this.src = src; | ||
176 | - this.dst = dst; | ||
177 | - } | ||
178 | - | ||
179 | - @Override | ||
180 | - public int hashCode() { | ||
181 | - return Objects.hash(src, dst); | ||
182 | - } | ||
183 | - | ||
184 | - @Override | ||
185 | - public boolean equals(Object obj) { | ||
186 | - if (this == obj) { | ||
187 | - return true; | ||
188 | - } | ||
189 | - if (obj instanceof LinkKey) { | ||
190 | - final LinkKey other = (LinkKey) obj; | ||
191 | - return Objects.equals(this.src, other.src) && | ||
192 | - Objects.equals(this.dst, other.dst); | ||
193 | - } | ||
194 | - return false; | ||
195 | - } | ||
196 | - } | ||
197 | } | 169 | } | ... | ... |
-
Please register or login to post a comment