[stringtemplate-interest] Issue with Multi-Valued attributes where the attribute is a Map Key/Value pair.

Robert Paterson robert.paterson at optusnet.com.au
Sun Oct 2 02:34:10 PDT 2005


Hi,

I have a problem with a template that uses a Multi-Valued attribute where
the attribute instances are HashMap Key/Value pairs. If I have two or more
HashMap instances the template works fine, but if I only have a single
HashMap instance it tries to iterate through the values of the HashMap. Is
there anyway around this short of creating a proper aggregate object that
has the properties I'm trying to set in the HashMap? (I imagine
StringTemplate is seeing the individual HashMap as a collection).

I have a main template "document.st" as follows:

DOCUMENT {

   CONTENT {

     $Paragraphs:paragraph(); separator="\n\n"$

   }
 
}


And "paragraph.st" as follows:

PARAGRAPH {
  BULLET        "$it.Bullet$"
  INDENT        "$it.Indent$"
  TEXT          "$it.ParagraphText$"
}


And if I use the following code:

    StringTemplateGroup group = new StringTemplateGroup("MyGroup",".");

    // If I set the "Paragraphs" attribute with two HashMap instances it
works.
    StringTemplate docOut = group.getInstanceOf("document");

    HashMap para = new HashMap();
    para.put("Bullet","N");
    para.put("Indent","N");
    para.put("ParagraphText","Now is the time for all good men...");

    docOut.setAttribute("Paragraphs", para);

    para = new HashMap();

    para.put("Bullet","N");
    para.put("Indent","N");
    para.put("ParagraphText","... to come to the aid of their party.");

    docOut.setAttribute("Paragraphs", para);

    System.out.println(docOut.toString());


I get:

DOCUMENT {

   CONTENT {

     PARAGRAPH {
       BULLET        "N"
       INDENT        "N"
       TEXT          "Now is the time for all good men..."
     }

     PARAGRAPH {
       BULLET        "N"
       INDENT        "N"
       TEXT          "... to come to the aid of their party."
     }

   }
 
}

But if I try:


    // But if I only set it with one HashMap instance it fails, and instead
tries to iterate through the values of the HashMap.
    docOut = group.getInstanceOf("document");

    para = new HashMap();
    para.put("Bullet","N");
    para.put("Indent","N");
    para.put("ParagraphText","Now is the time for all good men...");

    docOut.setAttribute("Paragraphs", para);

    System.out.println(docOut.toString());

I get:

Class java.lang.String has no such attribute: Bullet in template context
[document paragraph]
java.lang.NoSuchFieldException: Bullet
	at java.lang.Class.getField(Class.java:1507)
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:323
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Can't get property Bullet using method get/isBullet from java.lang.String
instance
java.lang.NullPointerException
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:340
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Class java.lang.String has no such attribute: Indent in template context
[document paragraph]
java.lang.NoSuchFieldException: Indent
	at java.lang.Class.getField(Class.java:1507)
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:323
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Can't get property Indent using method get/isIndent from java.lang.String
instance
java.lang.NullPointerException
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:340
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Class java.lang.String has no such attribute: ParagraphText in template
context [document paragraph]
java.lang.NoSuchFieldException: ParagraphText
	at java.lang.Class.getField(Class.java:1507)
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:323
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Can't get property ParagraphText using method get/isParagraphText from
java.lang.String instance
java.lang.NullPointerException
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:340
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Class java.lang.String has no such attribute: Bullet in template context
[document paragraph]
java.lang.NoSuchFieldException: Bullet
	at java.lang.Class.getField(Class.java:1507)
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:323
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Can't get property Bullet using method get/isBullet from java.lang.String
instance
java.lang.NullPointerException
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:340
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Class java.lang.String has no such attribute: Indent in template context
[document paragraph]
java.lang.NoSuchFieldException: Indent
	at java.lang.Class.getField(Class.java:1507)
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:323
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Can't get property Indent using method get/isIndent from java.lang.String
instance
java.lang.NullPointerException
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:340
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Class java.lang.String has no such attribute: ParagraphText in template
context [document paragraph]
java.lang.NoSuchFieldException: ParagraphText
	at java.lang.Class.getField(Class.java:1507)
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:323
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Can't get property ParagraphText using method get/isParagraphText from
java.lang.String instance
java.lang.NullPointerException
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:340
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Class java.lang.String has no such attribute: Bullet in template context
[document paragraph]
java.lang.NoSuchFieldException: Bullet
	at java.lang.Class.getField(Class.java:1507)
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:323
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Can't get property Bullet using method get/isBullet from java.lang.String
instance
java.lang.NullPointerException
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:340
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Class java.lang.String has no such attribute: Indent in template context
[document paragraph]
java.lang.NoSuchFieldException: Indent
	at java.lang.Class.getField(Class.java:1507)
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:323
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Can't get property Indent using method get/isIndent from java.lang.String
instance
java.lang.NullPointerException
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:340
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Class java.lang.String has no such attribute: ParagraphText in template
context [document paragraph]
java.lang.NoSuchFieldException: ParagraphText
	at java.lang.Class.getField(Class.java:1507)
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:323
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
Can't get property ParagraphText using method get/isParagraphText from
java.lang.String instance
java.lang.NullPointerException
	at
org.antlr.stringtemplate.language.ASTExpr.getObjectProperty(ASTExpr.java:340
)
	at
org.antlr.stringtemplate.language.ActionEvaluator.attribute(ActionEvaluator.
java:348)
	at
org.antlr.stringtemplate.language.ActionEvaluator.expr(ActionEvaluator.java:
135)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:84)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:480)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:494)
	at
org.antlr.stringtemplate.language.ASTExpr.writeAttribute(ASTExpr.java:445)
	at
org.antlr.stringtemplate.language.ActionEvaluator.action(ActionEvaluator.jav
a:86)
	at org.antlr.stringtemplate.language.ASTExpr.write(ASTExpr.java:93)
	at
org.antlr.stringtemplate.StringTemplate.write(StringTemplate.java:702)
	at
org.antlr.stringtemplate.StringTemplate.toString(StringTemplate.java:1432)
	at StringTemplateExample.main(StringTemplateExample.java:49)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at
com.intellij.rt.execution.application.AppMain.main(AppMain.java:78)
DOCUMENT {

   CONTENT {

     PARAGRAPH {
       BULLET        ""
       INDENT        ""
       TEXT          ""
     }

     PARAGRAPH {
       BULLET        ""
       INDENT        ""
       TEXT          ""
     }

     PARAGRAPH {
       BULLET        ""
       INDENT        ""
       TEXT          ""
     }

   }
 
}



Any help appreciated, but I'll happily write my own proper aggregate object
to get around this issue.

Regards,

Rob Paterson
-------------- next part --------------
A non-text attachment was scrubbed...
Name: StringTemplateExample.java
Type: text/java
Size: 1472 bytes
Desc: not available
Url : http://www.antlr.org:8080/pipermail/stringtemplate-interest/attachments/20051002/2e82dfee/StringTemplateExample-0001.bin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: document.st
Type: application/octet-stream
Size: 83 bytes
Desc: not available
Url : http://www.antlr.org:8080/pipermail/stringtemplate-interest/attachments/20051002/2e82dfee/document-0001.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: paragraph.st
Type: application/octet-stream
Size: 111 bytes
Desc: not available
Url : http://www.antlr.org:8080/pipermail/stringtemplate-interest/attachments/20051002/2e82dfee/paragraph-0001.obj


More information about the stringtemplate-interest mailing list