protected ACLMessage prepareResultNotification(ACLMessage msg, ACLMessage response) throws FailureException { boolean performed = false; ContentElement content; Concept action = null; System.out.println("pRN"); try { content = myAgent.getContentManager().extractContent(msg); action = ((Action) content).getAction(); if (action instanceof AssignPowerRequest) { AssignPowerRequest apr = (AssignPowerRequest) action; System.out.println("Performing AssignPowerRequest"); System.out.println("Requester assigned power: " + apr.getAssignedPower()); if (windTurbine.setAssignedPower(apr.getAssignedPower())) { System.out.println("Check passed, power assigned"); performed = true; } else { System.out.println("Out of bounds, power not assigned"); performed = false; } } if (action instanceof BeginPowerTransitionRequest) { BeginPowerTransitionRequest bptr = (BeginPowerTransitionRequest) action; boolean isOk = true; System.out.println("Performing BeginPowerTransitionRequest"); if (bptr.getAssignedPowerIsValid()) { System.out.println("Requester assigned power: " + bptr.getAssignedPower()); if (windTurbine.setAssignedPower(bptr.getAssignedPower())) { System.out.println("Check passed, power assigned"); } else { System.out.println("Out of bounds, power not assigned"); isOk = false; } } else { System.out.println("Requester did not assigned new power"); } if (isOk) { windTurbine.change_power(); } performed = isOk; } } catch (Exception e) { e.printStackTrace(); } if (performed) { ACLMessage inform = msg.createReply(); Message sm = new Message(); TimeDelay td = new TimeDelay(); td.setTime(windTurbine.time_delay()); System.out.println( "Agent " + myAgent.getLocalName() + ": Action successfully performed, time delay is " + windTurbine.time_delay()); sm.setMsg(td); try { myAgent.getContentManager().fillContent(inform, new Action(msg.getSender(), sm)); } catch (CodecException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (OntologyException e) { // TODO Auto-generated catch block e.printStackTrace(); } inform.setPerformative(ACLMessage.INFORM); return inform; } else { throw new FailureException("out of bounds"); } }