Add copy constructor
Change-Id: If9b50a8e5db29e4bae2c93b51f34c5e043563094
Showing
1 changed file
with
15 additions
and
0 deletions
| ... | @@ -31,6 +31,7 @@ import org.onlab.onos.net.MastershipRole; | ... | @@ -31,6 +31,7 @@ import org.onlab.onos.net.MastershipRole; |
| 31 | 31 | ||
| 32 | import com.google.common.base.MoreObjects; | 32 | import com.google.common.base.MoreObjects; |
| 33 | import com.google.common.base.MoreObjects.ToStringHelper; | 33 | import com.google.common.base.MoreObjects.ToStringHelper; |
| 34 | +import com.google.common.collect.Lists; | ||
| 34 | 35 | ||
| 35 | /** | 36 | /** |
| 36 | * A structure that holds node mastership roles associated with a | 37 | * A structure that holds node mastership roles associated with a |
| ... | @@ -40,12 +41,26 @@ final class RoleValue { | ... | @@ -40,12 +41,26 @@ final class RoleValue { |
| 40 | 41 | ||
| 41 | protected final Map<MastershipRole, List<NodeId>> value = new EnumMap<>(MastershipRole.class); | 42 | protected final Map<MastershipRole, List<NodeId>> value = new EnumMap<>(MastershipRole.class); |
| 42 | 43 | ||
| 44 | + /** | ||
| 45 | + * Constructs empty RoleValue. | ||
| 46 | + */ | ||
| 43 | public RoleValue() { | 47 | public RoleValue() { |
| 44 | value.put(MastershipRole.MASTER, new LinkedList<NodeId>()); | 48 | value.put(MastershipRole.MASTER, new LinkedList<NodeId>()); |
| 45 | value.put(MastershipRole.STANDBY, new LinkedList<NodeId>()); | 49 | value.put(MastershipRole.STANDBY, new LinkedList<NodeId>()); |
| 46 | value.put(MastershipRole.NONE, new LinkedList<NodeId>()); | 50 | value.put(MastershipRole.NONE, new LinkedList<NodeId>()); |
| 47 | } | 51 | } |
| 48 | 52 | ||
| 53 | + /** | ||
| 54 | + * Constructs copy of specified RoleValue. | ||
| 55 | + * | ||
| 56 | + * @param original original to create copy from | ||
| 57 | + */ | ||
| 58 | + public RoleValue(final RoleValue original) { | ||
| 59 | + value.put(MASTER, Lists.newLinkedList(original.value.get(MASTER))); | ||
| 60 | + value.put(STANDBY, Lists.newLinkedList(original.value.get(STANDBY))); | ||
| 61 | + value.put(NONE, Lists.newLinkedList(original.value.get(NONE))); | ||
| 62 | + } | ||
| 63 | + | ||
| 49 | // exposing internals for serialization purpose only | 64 | // exposing internals for serialization purpose only |
| 50 | Map<MastershipRole, List<NodeId>> value() { | 65 | Map<MastershipRole, List<NodeId>> value() { |
| 51 | return Collections.unmodifiableMap(value); | 66 | return Collections.unmodifiableMap(value); | ... | ... |
-
Please register or login to post a comment