{
  "name" : "click.kamil.multi.core.OrderStateMachineConfig",
  "states" : [ {
    "rawName" : "\"COMPLETED\"",
    "fullIdentifier" : "String.COMPLETED"
  }, {
    "rawName" : "\"NEW\"",
    "fullIdentifier" : "String.NEW"
  }, {
    "rawName" : "\"PROCESSING\"",
    "fullIdentifier" : "String.PROCESSING"
  } ],
  "transitions" : [ {
    "type" : "EXTERNAL",
    "sourceStates" : [ {
      "rawName" : "\"NEW\"",
      "fullIdentifier" : "String.NEW"
    } ],
    "targetStates" : [ {
      "rawName" : "\"PROCESSING\"",
      "fullIdentifier" : "String.PROCESSING"
    } ],
    "event" : {
      "rawName" : "\"SUBMIT\"",
      "fullIdentifier" : "String.SUBMIT"
    },
    "guards" : [ ],
    "actions" : [ {
      "expression" : "processAction()",
      "isLambda" : false,
      "internalLogic" : "@Override default void execute(StateContext<String,String> context){\n  System.out.println(\"Processing order: \" + context.getMessageHeader(\"orderId\"));\n}\n",
      "lineNumber" : 31,
      "className" : "click.kamil.multi.core.OrderStateMachineConfig",
      "sourceFile" : "core-module/src/main/java/click/kamil/multi/core/OrderStateMachineConfig.java"
    } ],
    "order" : null
  }, {
    "type" : "EXTERNAL",
    "sourceStates" : [ {
      "rawName" : "\"PROCESSING\"",
      "fullIdentifier" : "String.PROCESSING"
    } ],
    "targetStates" : [ {
      "rawName" : "\"COMPLETED\"",
      "fullIdentifier" : "String.COMPLETED"
    } ],
    "event" : {
      "rawName" : "\"FINISH\"",
      "fullIdentifier" : "String.FINISH"
    },
    "guards" : [ ],
    "actions" : [ ],
    "order" : null
  } ],
  "startStates" : [ "String.NEW" ],
  "endStates" : [ "String.COMPLETED" ],
  "renderChoicesAsDiamonds" : true,
  "flows" : [ ],
  "stateTypeFqn" : "String",
  "eventTypeFqn" : "String",
  "metadata" : {
    "triggers" : [ {
      "event" : "java.lang.String.SUBMIT",
      "className" : "click.kamil.multi.core.OrderController",
      "methodName" : "submitOrder",
      "sourceFile" : "core-module/src/main/java/click/kamil/multi/core/OrderController.java",
      "sourceModule" : null,
      "stateMachineId" : null,
      "sourceState" : null,
      "lineNumber" : 18,
      "polymorphicEvents" : null,
      "external" : false,
      "constraint" : null,
      "ambiguous" : false
    } ],
    "entryPoints" : [ {
      "type" : "REST",
      "name" : "POST /orders/submit",
      "className" : "click.kamil.multi.core.OrderController",
      "methodName" : "submitOrder",
      "sourceFile" : "core-module/src/main/java/click/kamil/multi/core/OrderController.java",
      "metadata" : {
        "path" : "/orders/submit",
        "verb" : "POST"
      },
      "parameters" : [ {
        "name" : "orderId",
        "type" : "String",
        "annotations" : [ "RequestBody" ]
      } ]
    } ],
    "callChains" : [ {
      "entryPoint" : {
        "type" : "REST",
        "name" : "POST /orders/submit",
        "className" : "click.kamil.multi.core.OrderController",
        "methodName" : "submitOrder",
        "sourceFile" : "core-module/src/main/java/click/kamil/multi/core/OrderController.java",
        "metadata" : {
          "path" : "/orders/submit",
          "verb" : "POST"
        },
        "parameters" : [ {
          "name" : "orderId",
          "type" : "String",
          "annotations" : [ "RequestBody" ]
        } ]
      },
      "methodChain" : [ "click.kamil.multi.core.OrderController.submitOrder" ],
      "triggerPoint" : {
        "event" : "java.lang.String.SUBMIT",
        "className" : "click.kamil.multi.core.OrderController",
        "methodName" : "submitOrder",
        "sourceFile" : "core-module/src/main/java/click/kamil/multi/core/OrderController.java",
        "sourceModule" : null,
        "stateMachineId" : null,
        "sourceState" : "java.lang.String.NEW",
        "lineNumber" : 18,
        "polymorphicEvents" : null,
        "external" : false,
        "constraint" : null,
        "ambiguous" : false
      },
      "contextMachineId" : null,
      "matchedTransitions" : [ {
        "sourceState" : "String.NEW",
        "targetState" : "String.PROCESSING",
        "event" : "String.SUBMIT"
      } ],
      "linkResolution" : "RESOLVED"
    } ],
    "properties" : {
      "default" : { }
    }
  }
}
