[stringtemplate-interest] StringTemplate 3.1 - elseif expression evaluation bug
Zenaan Harkness
zen at freedbms.net
Mon Apr 14 08:45:48 PDT 2008
This bug also exists at least in 09 November 2007 ST Java release.
I have the following Java classes/ beans:
public class Description {
private String brief;
private String full;
public Description(String b, String f) {brief = b; full = f;}
public String getBrief () {return brief;}
public String getFull () {return full;}
}
public class Entity {
private Description description = new Description(null,"my full descr.");
public Description getDescription () {return description;}
}
And I have a StringTemplateGroup, java.stg:
returnsJavadoc(entity) ::= <<
@return <if(entity.description.brief)><entity.description.brief>
<elseif(entity.description.full)><entity.description.full>
<else>No javadoc found.
<endif>
>
Connecting these, passing in an entity attribute to the returnsJavadoc
template, I am getting the following error:
java.lang.IllegalArgumentException: Can't find template elseif.st
at
org.antlr.stringtemplate.StringTemplateGroup.lookupTemplate(StringTemplateGroup.java:485)
at
org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGroup.java:372)
at
org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGroup.java:384)
at
org.antlr.stringtemplate.StringTemplateGroup.lookupTemplate(StringTemplateGroup.java:464)
at
org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGroup.java:372)
at
org.antlr.stringtemplate.StringTemplateGroup.getEmbeddedInstanceOf(StringTemplateGroup.java:416)
at
org.antlr.stringtemplate.language.ASTExpr.getTemplateInclude(ASTExpr.java:637)
at
org.antlr.stringtemplate.language.ActionEvaluator.templateInclude(ActionEvaluator.java:470)
at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:142)
at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.java:84)
at
org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:152)
at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:714)
at
org.antlr.stringtemplate.language.ConditionalExpr.write(ConditionalExpr.java:93)
at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:714)
Is there something simple I'm missing, or is this simply a bug ??
TIA
Zen
--
Homepage: www.SoulSound.net -- Free Australia: www.UPMART.org
Please respect the confidentiality of this email as sensibly warranted.
More information about the stringtemplate-interest
mailing list