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    }