...
To make use of the format option you must create a renderer that implements
interface AttributeRenderer and provides an implementation for the toString method
that takes a formatName String.
Java | Code Block |
---|
public class BasicFormatRenderer implements AttributeRenderer {
public String toString(Object o) {
return o.toString();
}
public String toString(Object o, String formatName) {
if (formatName.equals("toUpper")) {
return o.toString().toUpperCase();
} else if (formatName.equals("toLower")) {
return o.toString().toLowerCase();
} else {
throw new IllegalArgumentException("Unsupported format name");
}
}
}
|
|
---|
Python | Code Block |
---|
class BasicFormatRenderer(stringtemplate3.AttributeRenderer):
def toString(self, o, formatName=None):
if formatName is None:
# no formatting specified
return str(o)
if formatName == "toUpper":
return str(o).upper()
elif formatName == "toLower":
return str(o).lower()
else:
raise ValueError("Unsupported format name")
|
|
---|
The render renderer is registered with a group as previously shown. The renderer can do anything it likes to format the string. The toUpper and toLower cases are examples of what can be done. It is not required that an exception is thrown if the formatName
is not supported you could also simply return the result of o.toString()
.
...