[stringtemplate-interest] listing attributes of elements in collection
Rabea Gransberger
rgransberger at gmx.de
Mon Jul 14 14:06:41 PDT 2008
Dieter Frej schrieb:
> Hi,
>
> I have the following structure of data in Java:
>
> class u
> - List<inputColumns> inputColumns
>
> class inputColumns
> - String identifier
>
> What I now actually want to do is to list the identifiers of the inputColumns separated by ", ". How can I do that? The most obvious version
>
> $u.inputColumns.identifier; separator=", "$
I don't know if you could use it like that. But what works is something
like:
listColumns(u) ::= <<
<first(u.inputColumns):{col |
<col.identifier>}><rest(u.inputColumns):{col | , <col.identifier>}>
>>
public class AccessAttributes {
public static final class U {
public List<InputColumn> inputColumns = new ArrayList<InputColumn>();
}
public static final class InputColumn {
public String identifier;
InputColumn(String name) {
this.identifier = name;
}
}
public static void main(String[] args) throws IOException {
U u = new U();
u.inputColumns.add(new InputColumn("col1"));
u.inputColumns.add(new InputColumn("col2"));
final FileReader reader = new FileReader("templates/group.stg");
StringTemplateGroup groupFile = new StringTemplateGroup(reader);
reader.close();
final StringTemplate listColumnsTemplate = groupFile
.getInstanceOf("listColumns");
listColumnsTemplate.setAttribute("u", u);
System.out.println(listColumnsTemplate.toString());
}
}
Have a look at the Cheat Sheet to find some examples for the functions
Stringtemplate offers:
http://www.antlr.org/wiki/display/ST/StringTemplate+cheat+sheet
Rabea
More information about the stringtemplate-interest
mailing list