1 16 package org.apache.commons.jelly.tags.core; 17 18 import org.apache.commons.jelly.JellyTagException; 19 import org.apache.commons.jelly.TagSupport; 20 import org.apache.commons.jelly.XMLOutput; 21 import org.apache.commons.jelly.expression.Expression; 22 23 28 public class WhenTag extends TagSupport { 29 30 31 private Expression test; 32 33 public WhenTag() { 34 } 35 36 public void doTag(XMLOutput output) throws JellyTagException { 39 ChooseTag tag = (ChooseTag) findAncestorWithClass( ChooseTag.class ); 40 if ( tag == null ) { 41 throw new JellyTagException( "This tag must be enclosed inside a <choose> tag" ); 42 } 43 if ( ! tag.isBlockEvaluated() && test != null ) { 44 if ( test.evaluateAsBoolean( context ) ) { 45 tag.setBlockEvaluated(true); 46 invokeBody(output); 47 } 48 } 49 } 50 51 54 55 public void setTest(Expression test) { 56 this.test = test; 57 } 58 59 } 60 | Popular Tags |