X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fidentifiers%2FShardIdentifier.java;fp=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fidentifiers%2FShardIdentifier.java;h=fc3aa592f97ce44063149d449e320073d330c8ed;hp=037bafda67b125909cfdcf3a80378ab65b9a72a0;hb=dc6370feeb5fc47be3e267bf85d6354013d0409b;hpb=4e3f49788c05730b29468deebc2aaa4ed0d94eef 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 037bafda67..fc3aa592f9 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 @@ -23,18 +23,23 @@ public class ShardIdentifier { private final String type; private final String fullName; - public ShardIdentifier(String shardName, MemberName memberName, String type) { + private ShardIdentifier(String shardName, MemberName memberName, String type) { + this.shardName = Preconditions.checkNotNull(shardName, "shardName should not be null"); + this.memberName = Preconditions.checkNotNull(memberName, "memberName should not be null"); + this.type = Preconditions.checkNotNull(type, "type should not be null"); - Preconditions.checkNotNull(shardName, "shardName should not be null"); - Preconditions.checkNotNull(memberName, "memberName should not be null"); - Preconditions.checkNotNull(type, "type should not be null"); + fullName = memberName.getName() + "-shard-" + shardName + "-" + type; + } + + public static ShardIdentifier create(final String shardName, final MemberName memberName, final String type) { + return new ShardIdentifier(shardName, memberName, type); + } - this.shardName = shardName; - this.memberName = memberName; - this.type = type; + public static ShardIdentifier fromShardIdString(final String shardIdString) { + final Matcher matcher = PATTERN.matcher(shardIdString); + Preconditions.checkArgument(matcher.matches(), "Invalid shard id \"%s\"", shardIdString); - fullName = new StringBuilder(memberName.getName()).append("-shard-").append(shardName).append("-") - .append(type).toString(); + return new ShardIdentifier(matcher.group(2), MemberName.forName(matcher.group(1)), matcher.group(3)); } @Override @@ -71,14 +76,10 @@ public class ShardIdentifier { @Override public String toString() { - //ensure the output of toString matches the pattern above + // ensure the output of toString matches the pattern above return fullName; } - public static Builder builder(){ - return new Builder(); - } - public String getShardName() { return shardName; }