Package jason.stdlib
Class if_then_else
java.lang.Object
jason.asSemantics.DefaultInternalAction
jason.stdlib.if_then_else
- All Implemented Interfaces:
InternalAction
,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 invalid input: '<'- ... if (vl(X) invalid input: '&' 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:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
checkArguments
(Term[] args) static InternalAction
create()
execute
(TransitionSystem ts, Unifier un, Term[] args) Executes the internal action.int
int
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
-
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
Description 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:
Exception
-