001 package railo.transformer.cfml.evaluator.impl; 002 003 import railo.commons.lang.StringUtil; 004 import railo.transformer.bytecode.cast.CastString; 005 import railo.transformer.bytecode.literal.LitString; 006 import railo.transformer.bytecode.statement.tag.Tag; 007 import railo.transformer.bytecode.statement.tag.TagWhile; 008 import railo.transformer.bytecode.util.ASMUtil; 009 import railo.transformer.cfml.evaluator.EvaluatorException; 010 import railo.transformer.cfml.evaluator.EvaluatorSupport; 011 import railo.transformer.library.function.FunctionLib; 012 import railo.transformer.library.tag.TagLibTag; 013 014 015 016 public final class While extends EvaluatorSupport { 017 @Override 018 public void evaluate(Tag tag,TagLibTag tagLibTag,FunctionLib[] flibs) throws EvaluatorException { 019 TagWhile whil=(TagWhile) tag; 020 021 // label 022 if(ASMUtil.isLiteralAttribute(tag, "label", ASMUtil.TYPE_STRING, false, true)) { 023 LitString ls=(LitString) CastString.toExprString(tag.getAttribute("label").getValue()); 024 String l = ls.getString(); 025 if(!StringUtil.isEmpty(l,true)) { 026 whil.setLabel(l.trim()); 027 tag.removeAttribute("label"); 028 } 029 } 030 } 031 }