jason.stdlib
Class if_then_else

Package class diagram package if_then_else
java.lang.Object
  extended by jason.asSemantics.DefaultInternalAction
      extended by jason.stdlib.if_then_else
All Implemented Interfaces:
InternalAction, java.io.Serializable

public class if_then_else
extends DefaultInternalAction

Implementation of if.

Syntax:

  if ( logical formula ) {
     plan_body1
  [ } else { plan_body2 ]
  }

if logical formula holds, plan_body1 is executed; otherwise, plan_body2 is executed.

Example:

+event : context
  <- ....
     if (vl(X) & X > 10) { // where vl(X) is a belief
       .print("value > 10");
     }
     ....
The unification is changed by the evaluation of the logical formula, i.e., X might have a value after if.

See Also:
Serialized Form

Constructor Summary
if_then_else()
           
 
Method Summary
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 term
 
Methods inherited from class jason.asSemantics.DefaultInternalAction
canBeUsedInContext, suspendIntention
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

if_then_else

public if_then_else()
Method Detail

create

public static InternalAction create()

prepareArguments

public Term[] prepareArguments(Literal body,
                               Unifier un)
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 interface InternalAction
Overrides:
prepareArguments in class DefaultInternalAction

getMinArgs

public int getMinArgs()
Overrides:
getMinArgs in class DefaultInternalAction

getMaxArgs

public int getMaxArgs()
Overrides:
getMaxArgs in class DefaultInternalAction

checkArguments

protected void checkArguments(Term[] args)
                       throws JasonException
Overrides:
checkArguments in class DefaultInternalAction
Throws:
JasonException

execute

public java.lang.Object execute(TransitionSystem ts,
                                Unifier un,
                                Term[] args)
                         throws java.lang.Exception
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 interface InternalAction
Overrides:
execute in class DefaultInternalAction
Throws:
java.lang.Exception