X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fidentifiers%2FShardIdentifier.java;h=037bafda67b125909cfdcf3a80378ab65b9a72a0;hb=4e3f49788c05730b29468deebc2aaa4ed0d94eef;hp=d65af61ba3f8a957b6f67bdc355035fa93297431;hpb=b06d2c5bbffa48b1e219ac92cf0be60528aff34a;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/identifiers/ShardIdentifier.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/identifiers/ShardIdentifier.java index d65af61ba3..037bafda67 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/identifiers/ShardIdentifier.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/identifiers/ShardIdentifier.java @@ -9,20 +9,21 @@ package org.opendaylight.controller.cluster.datastore.identifiers; import com.google.common.base.Preconditions; - import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.opendaylight.controller.cluster.access.concepts.MemberName; public class ShardIdentifier { + // This pattern needs to remain in sync with toString(), which produces + // strings with corresponding to "%s-shard-%s-%s" + private static final Pattern PATTERN = Pattern.compile("(\\S+)-shard-(\\S+)-(\\S+)"); + private final String shardName; - private final String memberName; + private final MemberName memberName; private final String type; + private final String fullName; - //format and pattern should be in sync - private final String format = "%s-shard-%s-%s"; - private static final Pattern pattern = Pattern.compile("(\\S+)-shard-(\\S+)-(\\S+)"); - - public ShardIdentifier(String shardName, String memberName, String type) { + public ShardIdentifier(String shardName, MemberName memberName, String type) { Preconditions.checkNotNull(shardName, "shardName should not be null"); Preconditions.checkNotNull(memberName, "memberName should not be null"); @@ -31,6 +32,9 @@ public class ShardIdentifier { this.shardName = shardName; this.memberName = memberName; this.type = type; + + fullName = new StringBuilder(memberName.getName()).append("-shard-").append(shardName).append("-") + .append(type).toString(); } @Override @@ -65,14 +69,10 @@ public class ShardIdentifier { return result; } - @Override public String toString() { + @Override + public String toString() { //ensure the output of toString matches the pattern above - return new StringBuilder(memberName) - .append("-shard-") - .append(shardName) - .append("-") - .append(type) - .toString(); + return fullName; } public static Builder builder(){ @@ -83,7 +83,7 @@ public class ShardIdentifier { return shardName; } - public String getMemberName() { + public MemberName getMemberName() { return memberName; } @@ -93,7 +93,7 @@ public class ShardIdentifier { public static class Builder { private String shardName; - private String memberName; + private MemberName memberName; private String type; public ShardIdentifier build(){ @@ -105,7 +105,7 @@ public class ShardIdentifier { return this; } - public Builder memberName(String memberName){ + public Builder memberName(MemberName memberName){ this.memberName = memberName; return this; } @@ -116,10 +116,10 @@ public class ShardIdentifier { } public Builder fromShardIdString(String shardId){ - Matcher matcher = pattern.matcher(shardId); + Matcher matcher = PATTERN.matcher(shardId); if (matcher.matches()) { - memberName = matcher.group(1); + memberName = MemberName.forName(matcher.group(1)); shardName = matcher.group(2); type = matcher.group(3); }