package railo.transformer.cfml.evaluator.impl;
import railo.commons.lang.StringUtil;
import railo.transformer.bytecode.cast.CastString;
import railo.transformer.bytecode.literal.LitString;
import railo.transformer.bytecode.statement.tag.Tag;
import railo.transformer.bytecode.statement.tag.TagWhile;
import railo.transformer.bytecode.util.ASMUtil;
import railo.transformer.cfml.evaluator.EvaluatorException;
import railo.transformer.cfml.evaluator.EvaluatorSupport;
import railo.transformer.library.function.FunctionLib;
import railo.transformer.library.tag.TagLibTag;
public final class While extends EvaluatorSupport {
@Override
public void evaluate(Tag tag,TagLibTag tagLibTag,FunctionLib[] flibs) throws EvaluatorException {
TagWhile whil=(TagWhile) tag;
// label
if(ASMUtil.isLiteralAttribute(tag, "label", ASMUtil.TYPE_STRING, false, true)) {
LitString ls=(LitString) CastString.toExprString(tag.getAttribute("label").getValue());
String l = ls.getString();
if(!StringUtil.isEmpty(l,true)) {
whil.setLabel(l.trim());
tag.removeAttribute("label");
}
}
}
}