Class FieldReferenceConverter


  • public class FieldReferenceConverter
    extends java.lang.Object
    Deals with field references, e.g. the bits in braces here: <div class="{style.enabled} fancy {style.impressive}" />, by converting them to java expressions (with the help of a Delegate).

    A field reference is one or more segments separated by dots. The first segment is considered to be a reference to a ui field, and succeeding segments are method calls. So, "{able.baker.charlie}" becomes "able.baker().charlie()".

    A field reference starts with '{' and is followed immediately by a character that can legally start a java identifier—that is a letter, $, or underscore. Braces not followed by such a character are left in place.

    For convenience when dealing with generated CssResources, field segments with dashes are converted to camel case. That is, {able.baker-charlie} is the same as {able.bakerCharlie}

    Double mustaches (i.e. "{{..}}") are not matched as references to play well with modern templating systems.

    Opening braces may be escape by slash. That is, "\{foo}" will converted to "{foo}", with no field reference detected.