package org.opendaylight.controller.cluster.datastore.shardstrategy;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
/**
- * The role of ShardStrategy is to figure out which Shards a given piece of data belongs to
+ * The role of ShardStrategy is to figure out which shards a given piece of data belongs to.
*/
public interface ShardStrategy {
- /**
- * Find the name of the shard in which the data pointed to by the specified path belongs in
- *
- * @param path The location of the data in the logical tree
- * @return
- */
- String findShard(InstanceIdentifier path);
+ /**
+ * Find the name of the shard in which the data pointed to by the specified path belongs in.
+ *
+ * <p>
+ * Should return the name of the default shard DefaultShardStrategy.DEFAULT_SHARD
+ * if no matching shard was found
+ *
+ * @param path the location of the data in the logical tree
+ * @return the corresponding shard name.
+ */
+ String findShard(YangInstanceIdentifier path);
+
+ /**
+ * Get the prefix of the shard that contains the data pointed to by the specified path.
+ * @param path the location of the data in the logical tree.
+ * @return the corresponding shards prefix.
+ */
+ YangInstanceIdentifier getPrefixForPath(YangInstanceIdentifier path);
}