BUG 2185 : Introduce the SwitchBehavior message
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / main / java / org / opendaylight / controller / cluster / raft / RaftState.java
1 package org.opendaylight.controller.cluster.raft;
2
3 import org.opendaylight.controller.cluster.raft.behaviors.Candidate;
4 import org.opendaylight.controller.cluster.raft.behaviors.Follower;
5 import org.opendaylight.controller.cluster.raft.behaviors.IsolatedLeader;
6 import org.opendaylight.controller.cluster.raft.behaviors.Leader;
7 import org.opendaylight.controller.cluster.raft.behaviors.RaftActorBehavior;
8
9 public enum RaftState {
10     Candidate {
11         @Override
12         public RaftActorBehavior createBehavior(RaftActorContext context) {
13             return new Candidate(context);
14         }
15     },
16     Follower {
17         @Override
18         public RaftActorBehavior createBehavior(RaftActorContext context) {
19             return new Follower(context);
20         }
21     },
22     Leader {
23         @Override
24         public RaftActorBehavior createBehavior(RaftActorContext context) {
25             return new Leader(context);
26         }
27     },
28     IsolatedLeader {
29         @Override
30         public RaftActorBehavior createBehavior(RaftActorContext context) {
31             return new IsolatedLeader(context);
32         }
33     };
34
35     public abstract RaftActorBehavior createBehavior(RaftActorContext context);
36 }