001    package railo.transformer.cfml.evaluator.impl;
002    
003    import railo.transformer.bytecode.statement.tag.Tag;
004    import railo.transformer.bytecode.util.ASMUtil;
005    import railo.transformer.cfml.evaluator.EvaluatorException;
006    import railo.transformer.cfml.evaluator.EvaluatorSupport;
007    import railo.transformer.library.tag.TagLibTag;
008    
009    
010    
011    /**
012     * TODO remove
013     * Pr�ft den Kontext des Tag queryparam.
014     * Das Tag <code>queryParam</code> darf nur innerhalb des Tag <code>loop, while, foreach</code> liegen.
015     */
016    public final class QueryParam extends EvaluatorSupport {
017    
018    
019            /**
020             * @see railo.transformer.cfml.evaluator.EvaluatorSupport#evaluate(org.w3c.dom.Element, railo.transformer.library.tag.TagLibTag)
021             */
022            public void evaluate(Tag tag,TagLibTag libTag) throws EvaluatorException { 
023                    String ns=libTag.getTagLib().getNameSpaceAndSeparator();
024                    String queryName=ns+"query";
025                    
026                    if(!ASMUtil.hasAncestorTag(tag,queryName))
027                            throw new EvaluatorException("Wrong Context, tag "+libTag.getFullName()+" must be inside a "+queryName+" tag");
028            }
029    
030    }