Package jason.stdlib
Class if_then_else
java.lang.Object
jason.asSemantics.DefaultInternalAction
jason.stdlib.if_then_else
- All Implemented Interfaces:
InternalAction
,java.io.Serializable
@Manual(literal="if (formula) { plan_body1 } else { plan_body2 }", hint="implementation of \"if then, elif then, and else\"", argsHint="the formula that when true makes the plan_body1 be executed, otherwise plan_body2 will be executed", argsType="logical formula", examples={"if (vl(X) & X > 10) { .print(\"value > 10\"); }: where vl(X) is a belief","if (e(1)) { .print(a); } elif (e(2)) { .print(b); } elif (e(3)) { .print(c); } else { .print(d); }"}, seeAlso="") public class if_then_else extends DefaultInternalAction
Implementation of if.
Syntax:
if ( logical formula ) { plan_body1 [ } else { plan_body2 ] [ } elif ( logical formula ) { plan_body3 ] }
if logical formula holds, plan_body1 is executed; otherwise, plan_body2/3 is executed.
Example:
+event : context <- ... if (vl(X) & X > 10) { // where vl(X) is a belief .print("value > 10"); } ... if (e(1)) { .print(a); } elif (e(2)) { .print(b); } elif (e(3)) { .print(c); } else { .print(d); } ...The unification is changed by the evaluation of the logical formula, i.e., X might have a value after if.
- See Also:
- Serialized Form
-
Field Summary
Fields Modifier and Type Field Description private static InternalAction
singleton
-
Constructor Summary
Constructors Constructor Description if_then_else()
-
Method Summary
Modifier and Type Method Description protected void
checkArguments(Term[] args)
static InternalAction
create()
java.lang.Object
execute(TransitionSystem ts, Unifier un, Term[] args)
Executes the internal action.int
getMaxArgs()
int
getMinArgs()
Term[]
prepareArguments(Literal body, Unifier un)
Prepare body's terms to be used in 'execute', normally it consist of cloning and applying each termMethods inherited from class jason.asSemantics.DefaultInternalAction
canBeUsedInContext, destroy, suspendIntention
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
singleton
-
-
Constructor Details
-
if_then_else
public if_then_else()
-
-
Method Details
-
create
-
prepareArguments
Description copied from interface:InternalAction
Prepare body's terms to be used in 'execute', normally it consist of cloning and applying each term- Specified by:
prepareArguments
in interfaceInternalAction
- Overrides:
prepareArguments
in classDefaultInternalAction
-
getMinArgs
public int getMinArgs()- Overrides:
getMinArgs
in classDefaultInternalAction
-
getMaxArgs
public int getMaxArgs()- Overrides:
getMaxArgs
in classDefaultInternalAction
-
checkArguments
- Overrides:
checkArguments
in classDefaultInternalAction
- Throws:
JasonException
-
execute
public java.lang.Object execute(TransitionSystem ts, Unifier un, Term[] args) throws java.lang.ExceptionDescription copied from interface:InternalAction
Executes the internal action. It should return a Boolean or an Iterator. A true boolean return means that the IA was successfully executed. An Iterator result means that there is more than one answer for this IA (e.g. see member internal action). - Specified by:
execute
in interfaceInternalAction
- Overrides:
execute
in classDefaultInternalAction
- Throws:
java.lang.Exception
-