Yuta HIGUCHI

minor changes to RoleValue

Change-Id: Id870843c53549439e88ada40e8b2ef5513b8e4b7
1 package org.onlab.onos.store.mastership.impl; 1 package org.onlab.onos.store.mastership.impl;
2 2
3 import java.util.Collections; 3 import java.util.Collections;
4 -import java.util.HashMap; 4 +import java.util.EnumMap;
5 import java.util.LinkedList; 5 import java.util.LinkedList;
6 import java.util.List; 6 import java.util.List;
7 import java.util.Map; 7 import java.util.Map;
...@@ -17,9 +17,9 @@ import com.google.common.base.MoreObjects.ToStringHelper; ...@@ -17,9 +17,9 @@ import com.google.common.base.MoreObjects.ToStringHelper;
17 * A structure that holds node mastership roles associated with a 17 * A structure that holds node mastership roles associated with a
18 * {@link DeviceId}. This structure needs to be locked through IMap. 18 * {@link DeviceId}. This structure needs to be locked through IMap.
19 */ 19 */
20 -public class RoleValue { 20 +final class RoleValue {
21 21
22 - protected Map<MastershipRole, List<NodeId>> value = new HashMap<>(); 22 + protected final Map<MastershipRole, List<NodeId>> value = new EnumMap<>(MastershipRole.class);
23 23
24 public RoleValue() { 24 public RoleValue() {
25 value.put(MastershipRole.MASTER, new LinkedList<NodeId>()); 25 value.put(MastershipRole.MASTER, new LinkedList<NodeId>());
...@@ -27,7 +27,8 @@ public class RoleValue { ...@@ -27,7 +27,8 @@ public class RoleValue {
27 value.put(MastershipRole.NONE, new LinkedList<NodeId>()); 27 value.put(MastershipRole.NONE, new LinkedList<NodeId>());
28 } 28 }
29 29
30 - public Map<MastershipRole, List<NodeId>> value() { 30 + // exposing internals for serialization purpose only
31 + Map<MastershipRole, List<NodeId>> value() {
31 return Collections.unmodifiableMap(value); 32 return Collections.unmodifiableMap(value);
32 } 33 }
33 34
......
...@@ -35,10 +35,10 @@ public class RoleValueSerializer extends Serializer<RoleValue> { ...@@ -35,10 +35,10 @@ public class RoleValueSerializer extends Serializer<RoleValue> {
35 35
36 @Override 36 @Override
37 public void write(Kryo kryo, Output output, RoleValue type) { 37 public void write(Kryo kryo, Output output, RoleValue type) {
38 - output.writeInt(type.value().size()); 38 + final Map<MastershipRole, List<NodeId>> map = type.value();
39 + output.writeInt(map.size());
39 40
40 - for (Map.Entry<MastershipRole, List<NodeId>> el : 41 + for (Map.Entry<MastershipRole, List<NodeId>> el : map.entrySet()) {
41 - type.value().entrySet()) {
42 output.writeInt(el.getKey().ordinal()); 42 output.writeInt(el.getKey().ordinal());
43 43
44 List<NodeId> nodes = el.getValue(); 44 List<NodeId> nodes = el.getValue();
......