//
// ============LICENSE_START=======================================================
//  Copyright (C) 2016-2018 Ericsson. All rights reserved.
// ================================================================================
// This file is licensed under the CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE
// Full license text at https://creativecommons.org/licenses/by/4.0/legalcode
// 
// SPDX-License-Identifier: CC-BY-4.0
// ============LICENSE_END=========================================================
//
// @author Sven van der Meer (sven.van.der.meer@ericsson.com)
//

== Concept: Logic

The __Logic__ concept instance holds the actual programmed task logic for a task defined in a __Task__ concept or the programmed task selection logic for a state defined in a __State__ concept.
It is keyed with a `ReferenceKey` key, which references the task or state that owns the logic.
The __LocalName__ field of the Logic concept is the name of the logic.

The __LogicCode__ field of a Logic concept definition is a string that holds the program code that is to be executed at run time.
The __LogicType__ field defines the language of the code.
The standard values are the logic languages supported by APEX:
  link:https://en.wikipedia.org/wiki/JavaScript[JAVASCRIPT],
  link:https://java.com/en/[JAVA],
  link:http://www.jython.org/[JYTHON],
  link:http://jruby.org/[JRUBY], or
  link:https://en.wikibooks.org/wiki/Transwiki:MVEL_Language_Guide[MVEL].

The APEX engine uses the __LogicType__ field value to decide which language interpreter to use for a task and then sends the logic defined in the __LogicCode__ field to that interpreter.

