+ @Override
+ public String getMemberName() {
+ return memberName;
+ }
+
+ @Override
+ public void switchAllLocalShardsState(String newState, long term) {
+ LOG.info("switchAllLocalShardsState called newState = {}, term = {}", newState, term);
+
+ for(String shardName : localShards){
+ switchShardState(shardName, newState, term);
+ }
+ }
+
+ @Override
+ public void switchShardState(String shardName, String newState, long term) {
+ LOG.info("switchShardState called shardName = {}, newState = {}, term = {}", shardName, newState, term);
+
+ Preconditions.checkArgument(localShards.contains(shardName), shardName + " is not local");
+ Preconditions.checkArgument(ACCEPTABLE_STATES.contains(newState));
+
+ shardManager.getSelf().tell(new SwitchShardBehavior(shardName, newState, term), ActorRef.noSender());
+ }
+