public void handleVariableTransition(String variableName, String transition) {
    Map<String, List<CmmnSentryPart>> sentries = collectAllSentries();

    List<CmmnSentryPart> sentryParts = collectSentryParts(sentries);

    List<String> affectedSentries =
        collectAffectedSentriesWithVariableOnParts(variableName, transition, sentryParts);

    List<CmmnSentryPart> affectedSentryParts = getAffectedSentryParts(sentries, affectedSentries);
    forceUpdateOnCaseSentryParts(affectedSentryParts);

    List<String> allSentries = new ArrayList<String>(sentries.keySet());

    List<String> satisfiedSentries = getSatisfiedSentriesInExecutionTree(allSentries, sentries);

    List<CmmnSentryPart> satisfiedSentryParts = getAffectedSentryParts(sentries, satisfiedSentries);
    resetSentryParts(satisfiedSentryParts);

    fireSentries(satisfiedSentries);
  }