package org.opendaylight.controller.cluster.datastore.messages;
import com.google.common.base.Preconditions;
-import java.util.Collection;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.opendaylight.controller.cluster.datastore.DatastoreContext;
-import org.opendaylight.controller.cluster.datastore.ShardPropsCreator;
+import org.opendaylight.controller.cluster.datastore.Shard;
+import org.opendaylight.controller.cluster.datastore.config.ModuleShardConfiguration;
/**
* A message sent to the ShardManager to dynamically create a new shard.
* @author Thomas Pantelis
*/
public class CreateShard {
- private final String shardName;
- private final Collection<String> memberNames;
- private final ShardPropsCreator shardPropsCreator;
+ private final ModuleShardConfiguration moduleShardConfig;
+ private final Shard.AbstractBuilder<?, ?> shardBuilder;
private final DatastoreContext datastoreContext;
/**
* Constructor.
*
- * @param shardName the name of the new shard.
- * @param memberNames the names of all the member replicas.
+ * @param moduleShardConfig the configuration of the new shard.
* @param shardPropsCreator used to obtain the Props for creating the shard actor instance.
* @param datastoreContext the DatastoreContext for the new shard. If null, the default is used.
*/
- public CreateShard(@Nonnull String shardName, @Nonnull Collection<String> memberNames,
- @Nonnull ShardPropsCreator shardPropsCreator, @Nullable DatastoreContext datastoreContext) {
- this.shardName = Preconditions.checkNotNull(shardName);
- this.memberNames = Preconditions.checkNotNull(memberNames);
- this.shardPropsCreator = Preconditions.checkNotNull(shardPropsCreator);
+ public CreateShard(@Nonnull ModuleShardConfiguration moduleShardConfig,
+ @Nonnull Shard.AbstractBuilder<?, ?> shardBuilder, @Nullable DatastoreContext datastoreContext) {
+ this.moduleShardConfig = Preconditions.checkNotNull(moduleShardConfig);
+ this.shardBuilder = Preconditions.checkNotNull(shardBuilder);
this.datastoreContext = datastoreContext;
}
- @Nonnull public String getShardName() {
- return shardName;
+ @Nonnull
+ public ModuleShardConfiguration getModuleShardConfig() {
+ return moduleShardConfig;
}
- @Nonnull public Collection<String> getMemberNames() {
- return memberNames;
+ @Nonnull
+ public Shard.AbstractBuilder<?, ?> getShardBuilder() {
+ return shardBuilder;
}
- @Nonnull public ShardPropsCreator getShardPropsCreator() {
- return shardPropsCreator;
- }
-
- @Nullable public DatastoreContext getDatastoreContext() {
+ @Nullable
+ public DatastoreContext getDatastoreContext() {
return datastoreContext;
}
@Override
public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("CreateShard [shardName=").append(shardName).append(", memberNames=").append(memberNames)
- .append("]");
- return builder.toString();
+ return "CreateShard [moduleShardConfig=" + moduleShardConfig + ", shardPropsCreator=" + shardBuilder + "]";
}
}