Onur Karaman created KAFKA-5258:
-----------------------------------

             Summary: move all partition and replica state transition rules 
into a map
                 Key: KAFKA-5258
                 URL: https://issues.apache.org/jira/browse/KAFKA-5258
             Project: Kafka
          Issue Type: Sub-task
            Reporter: Onur Karaman
            Assignee: Onur Karaman
            Priority: Minor


Today the PartitionStateMachine and ReplicaStateMachine defines and asserts the 
valid state transitions inline for each state, looking something like:
{code}
private def handleStateChange(...) {
  targetState match {
    case stateA => {
      assertValidPreviousStates(topicAndPartition, List(stateX, stateY, 
stateZ), stateA)
      // actual work
    }
    case stateB => {
      assertValidPreviousStates(topicAndPartition, List(stateD, stateE), stateB)
      // actual work
    }
  }
}
{code}
It would be cleaner to move all partition and replica state transition rules 
into a map and simply do the assertion at the top of the handleStateChange 
method like so:
{code}
private val validPreviousStates: Map[State, Set[State]] = ...
private def handleStateChange(...) {
  assertValidTransition(targetState)
  targetState match {
    case stateA => {
      // actual work
    }
    case stateB => {
      // actual work
    }
  }
}
{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to