/*---------------------------------------------------------------------------------------------------------------- * CupCarbon: A Smart City & IoT Wireless Sensor Network Simulator * www.cupcarbon.com * ---------------------------------------------------------------------------------------------------------------- * Copyright (C) 2013-2017 CupCarbon * ---------------------------------------------------------------------------------------------------------------- * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. *---------------------------------------------------------------------------------------------------------------- * CupCarbon U-One is part of the research project PERSEPTEUR supported by the * French Agence Nationale de la Recherche ANR * under the reference ANR-14-CE24-0017-01. * ---------------------------------------------------------------------------------------------------------------- **/ package cupcarbon_script; /** * @author Ahcene Bounceur * @author Molham Darwish * @version 1.0 */ public class CupCommand_ENDWHILE extends CupCommand { protected boolean resultOfCondition = true ; protected int index ; public CupCommand_ENDWHILE(CupScript script) { this.script = script ; } @Override public String execute() { String condition = getCurrentWhile().getArg().replaceFirst("while", ""); CupEvalCondition evalCondtion = new CupEvalCondition(script); CupConditionElement conditionElement = evalCondtion.initCondition(condition); resultOfCondition = conditionElement.evaluate(); CupCommand_WHILE cmdWhile = this.getCurrentWhile(); if (resultOfCondition) script.setIndex(cmdWhile.getIndex()-1); return "000 ENDWHILE"; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } @Override public String toString() { return "ENDWHILE"; } }