In the process instance, there is ContextInstance to manage token and variable.contextinstance is managed by a map. This map of Key is the full name of Token, Value is an object of tokenvariablemap.
TokenvariableMap itself is not a Map, but an ordinary object, I personally think that JBPM takes the name of this class as ... Map is a wrong way of use.
TokenVariableMap has three properties, one is the full name of Token, one is the token object itself, and one is a map, used to place the Variable's Name and Value, this MAP name is VariableInstances.
VariableInstances is a map, its key is the name of the Variable, if Value is a VariableInstance object, the VariableInstance object put three properties, one is the token object itself, one is the name of the Variable, the other is Variable Value Such as New Integer (3).
My personal analysis believes that JBPM is not very appropriate to name the attribute, it is ninted by the property of MAP ... Map, and the property name is named ... s; however, JBPM is token and variable The treatment method is also worth learning, it puts token and other information directly in the VariableInstance object, which is convenient for the process of the program.