| Modifier and Type | Field and Description |
|---|---|
| public static final String | |
| public static final String | |
| public static final String | |
| public static final String | |
| public static final String | |
| public static final String | |
| public static final Map | |
| public static final String | EMPTY_OPTION
Using an expr option w/o value, makes options table hold EMPTY_OPTION value for that key. |
| pack-priv AST | |
| pack-priv String | formatString
A cached value of option format=expr |
| public static final StringTemplate | MAP_KEY_VALUE
Used to indicate "default:key" in maps within groups |
| public static final int | |
| pack-priv String | nullValue
For null values in iterated attributes and single attributes that are null, use this value instead of skipping. |
| pack-priv Map | options
store separator etc... |
| pack-priv String | separatorString
A cached value of separator=expr from the <...> expression. |
| public static final Set | supportedOptions
John Snyders gave me an example implementation for this checking |
| pack-priv String | wrapString
A cached value of wrap=expr from the <...> expression. |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| protected Object | |
| public Object | |
| public Object | applyListOfAlternatingTemplates(StringTemplate self, Object attributeValue, List<E> templatesToApply)
|
| public Object | applyTemplateToListOfAttributes(StringTemplate self, List<E> attributes, StringTemplate templateToApply)
For <names,phones:{n,p | ...}> treat the names, phones as lists to be walked in lock step as n=names[i], p=phones[i]. |
| protected static Object | |
| protected static Iterator | |
| public static Object | |
| protected void | evaluateArguments(StringTemplate self)
Evaluate an argument list within the context of the enclosing template but store the values in the context of self, the new embedded template. |
| public String | evaluateExpression(StringTemplate self, Object expr)
A expr is normally just a string literal, but is still an AST that we must evaluate. |
| public Object | |
| public AST | |
| protected Method | |
| public Object | getObjectProperty(StringTemplate self, final Object o, final Object propertyName)
Return o.getPropertyName() given o and propertyName. |
| public Object | |
| public StringTemplate | getTemplateInclude(StringTemplate enclosing, String templateName, StringTemplateAST argumentsAST)
Call a string template with args and return result. |
| protected void | |
| protected Object | |
| public Object | |
| public Object | |
| protected Object | |
| public Object | |
| protected void | setSoleFormalArgumentToIthValue(StringTemplate embedded, Map<K, V> argumentContext, Object ithValue)
|
| public Object | |
| public boolean | testAttributeTrue(Object a)
Normally StringTemplate tests presence or absence of attributes for adherence to my principles of separation, but some people disagree and want to change. |
| public String | |
| public Object | |
| public int | write(StringTemplate self, StringTemplateWriter out)
Implements abstract org. |
| protected int | |
| public int | |
| protected int | |
| protected int | |
| protected int |
| DEFAULT_ATTRIBUTE_NAME | back to summary |
|---|---|
| public static final String DEFAULT_ATTRIBUTE_NAME | |
| DEFAULT_ATTRIBUTE_NAME_DEPRECATED | back to summary |
|---|---|
| public static final String DEFAULT_ATTRIBUTE_NAME_DEPRECATED | |
| DEFAULT_INDEX0_VARIABLE_NAME | back to summary |
|---|---|
| public static final String DEFAULT_INDEX0_VARIABLE_NAME | |
| DEFAULT_INDEX_VARIABLE_NAME | back to summary |
|---|---|
| public static final String DEFAULT_INDEX_VARIABLE_NAME | |
| DEFAULT_MAP_KEY_NAME | back to summary |
|---|---|
| public static final String DEFAULT_MAP_KEY_NAME | |
| DEFAULT_MAP_VALUE_NAME | back to summary |
|---|---|
| public static final String DEFAULT_MAP_VALUE_NAME | |
| defaultOptionValues | back to summary |
|---|---|
| public static final Map<K, V> defaultOptionValues | |
| EMPTY_OPTION | back to summary |
|---|---|
| public static final String EMPTY_OPTION Using an expr option w/o value, makes options table hold EMPTY_OPTION value for that key. | |
| exprTree | back to summary |
|---|---|
| pack-priv AST exprTree | |
| formatString | back to summary |
|---|---|
| pack-priv String formatString A cached value of option format=expr | |
| MAP_KEY_VALUE | back to summary |
|---|---|
| public static final StringTemplate MAP_KEY_VALUE Used to indicate "default:key" in maps within groups | |
| MISSING | back to summary |
|---|---|
| public static final int MISSING | |
| nullValue | back to summary |
|---|---|
| pack-priv String nullValue For null values in iterated attributes and single attributes that
are null, use this value instead of skipping. For single valued
attributes like | |
| options | back to summary |
|---|---|
| pack-priv Map<K, V> options store separator etc... | |
| separatorString | back to summary |
|---|---|
| pack-priv String separatorString A cached value of separator=expr from the <...> expression. Computed in write(StringTemplate, StringTemplateWriter) and used in writeAttribute. | |
| supportedOptions | back to summary |
|---|---|
| public static final Set<E> supportedOptions John Snyders gave me an example implementation for this checking | |
| wrapString | back to summary |
|---|---|
| pack-priv String wrapString A cached value of wrap=expr from the <...> expression. Computed in write(StringTemplate, StringTemplateWriter) and used in writeAttribute. | |
| ASTExpr | back to summary |
|---|---|
| public ASTExpr(StringTemplate enclosingTemplate, AST exprTree, Map<K, V> options) | |
| accessField | back to summary |
|---|---|
| protected Object accessField(Field f, Object o, Object value) throws IllegalAccessException | |
| add | back to summary |
|---|---|
| public Object add(Object a, Object b) For now, we can only add two objects as strings; convert objects to Strings then cat. | |
| applyListOfAlternatingTemplates | back to summary |
|---|---|
| public Object applyListOfAlternatingTemplates(StringTemplate self, Object attributeValue, List<E> templatesToApply) | |
| applyTemplateToListOfAttributes | back to summary |
|---|---|
| public Object applyTemplateToListOfAttributes(StringTemplate self, List<E> attributes, StringTemplate templateToApply) For | |
| convertAnythingIteratableToIterator | back to summary |
|---|---|
| protected static Object convertAnythingIteratableToIterator(Object o) | |
| convertAnythingToIterator | back to summary |
|---|---|
| protected static Iterator | |
| convertArrayToList | back to summary |
|---|---|
| public static Object convertArrayToList(Object value) Do a standard conversion of array attributes to a List. Wrap the array instead of copying like old version. Make an ArrayWrappedInList that knows to create an ArrayIterator. | |
| evaluateArguments | back to summary |
|---|---|
| protected void evaluateArguments(StringTemplate self) Evaluate an argument list within the context of the enclosing template but store the values in the context of self, the new embedded template. For example, bold(item=item) means that bold.item should get the value of enclosing.item. | |
| evaluateExpression | back to summary |
|---|---|
| public String evaluateExpression(StringTemplate self, Object expr) A expr is normally just a string literal, but is still an AST that we must evaluate. The expr can be any expression such as a template include or string cat expression etc... Evaluate with its own writer so that we can convert to string and then reuse, don't want to compute all the time; must precompute w/o writing to output buffer. | |
| first | back to summary |
|---|---|
| public Object first(Object attribute) Return the first attribute if multiple valued or the attribute
itself if single-valued. Used in | |
| getAST | back to summary |
|---|---|
| public AST getAST() Return the tree interpreted when this template is written out. | |
| getMethod | back to summary |
|---|---|
| protected Method getMethod(Class<T> c, String methodName) | |
| getObjectProperty | back to summary |
|---|---|
| public Object getObjectProperty(StringTemplate self, final Object o, final Object propertyName) Return o.getPropertyName() given o and propertyName. If o is a stringtemplate then access it's attributes looking for propertyName instead (don't check any of the enclosing scopes; look directly into that object). Also try isXXX() for booleans. Allow Map as special case (grab value for key). Cache repeated requests for obj.prop within same group. | |
| getOption | back to summary |
|---|---|
| public Object getOption(String name) | |
| getTemplateInclude | back to summary |
|---|---|
| public StringTemplate getTemplateInclude(StringTemplate enclosing, String templateName, StringTemplateAST argumentsAST) Call a string template with args and return result. Do not convert to a string yet. It may need attributes that will be available after this is inserted into another template. | |
| handleExprOptions | back to summary |
|---|---|
| protected void handleExprOptions(StringTemplate self) Grab and cache options; verify options are valid | |
| invokeMethod | back to summary |
|---|---|
| protected Object invokeMethod(Method m, Object o, Object value) throws IllegalAccessException, InvocationTargetException | |
| last | back to summary |
|---|---|
| public Object last(Object attribute) Return the last attribute if multiple valued or the attribute
itself if single-valued. Used in | |
| length | back to summary |
|---|---|
| public Object length(Object attribute) Return the length of a multiple valued attribute or 1 if it is a single attribute. If attribute is null return 0. Special case several common collections and primitive arrays for speed. This method by Kay Roepke. | |
| rawGetObjectProperty | back to summary |
|---|---|
| protected Object rawGetObjectProperty(StringTemplate self, Object o, Object property) | |
| rest | back to summary |
|---|---|
| public Object rest(Object attribute) Return the everything but the first attribute if multiple valued
or null if single-valued. Used in | |
| setSoleFormalArgumentToIthValue | back to summary |
|---|---|
| protected void setSoleFormalArgumentToIthValue(StringTemplate embedded, Map<K, V> argumentContext, Object ithValue) | |
| strip | back to summary |
|---|---|
| public Object strip(Object attribute) Return a new list w/o null values. | |
| testAttributeTrue | back to summary |
|---|---|
| public boolean testAttributeTrue(Object a) Normally StringTemplate tests presence or absence of attributes for adherence to my principles of separation, but some people disagree and want to change. For 2.0, if the object is a boolean, do something special. $if(boolean)$ will actually test the value. Now, this breaks my rules of entanglement listed in my paper, but it truly surprises programmers to have booleans always true. Further, the key to isolating logic in the model is avoiding operators (for which you need attribute values). But, no operator is needed to use boolean values. Well, actually I guess "!" (not) is an operator. Regardless, for practical reasons, I'm going to technically violate my rules as I currently have them defined. Perhaps for a future version of the paper I will refine the rules. Post 2.1, I added a check for non-null Iterators, Collections, ... with size==0 to return false. TJP 5/1/2005 | |
| toString | back to summary |
|---|---|
| public String toString() Overrides java. Doc from java. Returns a string representation of the object.
| |
| trunc | back to summary |
|---|---|
| public Object trunc(Object attribute) Return all but the last element. trunc(x)=null if x is single-valued. | |
| write | back to summary |
|---|---|
| public int write(StringTemplate self, StringTemplateWriter out) throws IOException Implements abstract org. To write out the value of an ASTExpr, invoke the evaluator in eval.g to walk the tree writing out the values. For efficiency, don't compute a bunch of strings and then pack them together. Write out directly. Compute separator and wrap expressions, save as strings so we don't recompute for each value in a multi-valued attribute or expression. If they set anchor option, then inform the writer to push current char position. | |
| write | back to summary |
|---|---|
| protected int write(StringTemplate self, Object o, StringTemplateWriter out) | |
| writeAttribute | back to summary |
|---|---|
| public int writeAttribute(StringTemplate self, Object o, StringTemplateWriter out) How to spit out an object. If it's not a StringTemplate nor a List, just do o.toString(). If it's a StringTemplate, do o.write(out). If it's a Vector, do a write(out, o.elementAt(i)) for all elements. Note that if you do something weird like set the values of a multivalued tag to be vectors, it will effectively flatten it. If self is an embedded template, you might have specified a separator arg; used when is a vector. | |
| writeIterableValue | back to summary |
|---|---|
| protected int writeIterableValue(StringTemplate self, Object o, StringTemplateWriter out) throws IOException | |
| writePOJO | back to summary |
|---|---|
| protected int writePOJO(StringTemplate self, Object o, StringTemplateWriter out) throws IOException | |
| writeTemplate | back to summary |
|---|---|
| protected int writeTemplate(StringTemplate self, Object o, StringTemplateWriter out) throws IOException | |