BUG-5280: use MemberName instead of String
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / shardmanager / ShardPeerAddressResolver.java
index 4a9f144ef11159410de192bbe218d276519d5901..d7bd3fa1f60904eaec37abab5a306b7737210a41 100644 (file)
@@ -8,11 +8,13 @@
 package org.opendaylight.controller.cluster.datastore.shardmanager;
 
 import akka.actor.Address;
+import com.google.common.base.Preconditions;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
+import org.opendaylight.controller.cluster.access.concepts.MemberName;
 import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier;
 import org.opendaylight.controller.cluster.datastore.identifiers.ShardManagerIdentifier;
 import org.opendaylight.controller.cluster.raft.PeerAddressResolver;
@@ -26,32 +28,32 @@ import org.opendaylight.controller.cluster.raft.PeerAddressResolver;
 class ShardPeerAddressResolver implements PeerAddressResolver {
     // Stores a mapping between a member name and the address of the member. The map is concurrent as it
     // will be accessed by multiple threads via the public resolve method.
-    private final ConcurrentMap<String, Address> memberNameToAddress = new ConcurrentHashMap<>();
+    private final ConcurrentMap<MemberName, Address> memberNameToAddress = new ConcurrentHashMap<>();
     private final String shardManagerIdentifier;
     private final String shardManagerType;
-    private final String localMemberName;
+    private final MemberName localMemberName;
 
-    public ShardPeerAddressResolver(String shardManagerType, String localMemberName) {
+    public ShardPeerAddressResolver(String shardManagerType, MemberName localMemberName) {
         this.shardManagerIdentifier = ShardManagerIdentifier.builder().type(shardManagerType).build().toString();
         this.shardManagerType = shardManagerType;
-        this.localMemberName = localMemberName;
+        this.localMemberName = Preconditions.checkNotNull(localMemberName);
     }
 
-    void addPeerAddress(String memberName, Address address) {
+    void addPeerAddress(MemberName memberName, Address address) {
         memberNameToAddress.put(memberName, address);
     }
 
-    void removePeerAddress(String memberName) {
+    void removePeerAddress(MemberName memberName) {
         memberNameToAddress.remove(memberName);
     }
 
-    Address getPeerAddress(String memberName) {
+    Address getPeerAddress(MemberName memberName) {
         return memberNameToAddress.get(memberName);
     }
 
     Collection<String> getShardManagerPeerActorAddresses() {
         Collection<String> peerAddresses = new ArrayList<>();
-        for(Map.Entry<String, Address> entry: memberNameToAddress.entrySet()) {
+        for(Map.Entry<MemberName, Address> entry: memberNameToAddress.entrySet()) {
             if(!localMemberName.equals(entry.getKey())) {
                 peerAddresses.add(getShardManagerActorPathBuilder(entry.getValue()).toString());
             }
@@ -60,11 +62,11 @@ class ShardPeerAddressResolver implements PeerAddressResolver {
         return peerAddresses;
     }
 
-    ShardIdentifier getShardIdentifier(String memberName, String shardName){
+    ShardIdentifier getShardIdentifier(MemberName memberName, String shardName){
         return ShardIdentifier.builder().memberName(memberName).shardName(shardName).type(shardManagerType).build();
     }
 
-    String getShardActorAddress(String shardName, String memberName) {
+    String getShardActorAddress(String shardName, MemberName memberName) {
         Address memberAddress = memberNameToAddress.get(memberName);
         if(memberAddress != null) {
             return getShardManagerActorPathBuilder(memberAddress).append("/").append(