code: public void act(ActionExec action, List<ActionExec> feedback) {
          if (!isRunning())
              return;
          if (this.getSimulation() == null)
              return;
  
          boolean result = false;
  
          Structure actionStructure = action.getActionTerm();
          String actionID = actionStructure.getFunctor();
  
          try {
              if (this.actions.containsKey(actionID)) {
  
                  Constructor<? extends JasonShanksAgentAction> c = this.actions
                          .get(actionID).getConstructor(
                                  new Class[] { String.class, Steppable.class });
  
                  JasonShanksAgentAction shanksAction = c.newInstance(
                          this.getID(), this, this.getLogger());
  
                  result = shanksAction.executeAction(this.getSimulation(), this,
                          actionStructure.getTerms());
              } else {
                  throw new UnknownShanksAgentActionException(actionID,
                          this.getID());
              }
  
          } catch (UnknownShanksAgentActionException e) {
              logger.severe("Action was not executed -> " + e.getMessage());
              e.printStackTrace();
          } catch (InstantiationException e) {
              logger.severe("InstantiationException" + e.getMessage());
              e.printStackTrace();
          } catch (IllegalAccessException e) {
              logger.severe("IllegalAccessException" + e.getMessage());
              e.printStackTrace();
          } catch (SecurityException e) {
              logger.severe("SecurityException" + e.getMessage());
              e.printStackTrace();
          } catch (NoSuchMethodException e) {
              logger.severe("NoSuchMethodException" + e.getMessage());
              e.printStackTrace();
          } catch (IllegalArgumentException e) {
              logger.severe("IllegalArgumentException" + e.getMessage());
              e.printStackTrace();
          } catch (InvocationTargetException e) {
              logger.severe("InvocationTargetException" + e.getMessage());
              e.printStackTrace();
          }
  
          action.setResult(result);
          this.getTS().getC().addFeedbackAction(action);
      }
docs: /*
  (non-Javadoc)
  
  @see jason.architecture.AgArch#act(jason.asSemantics.ActionExec,
  java.util.List)