// this does nothing. but for primitive types, it will unwrap
// the wrapper type back to a primitive. We pass the desired type name
// to readParameter(), since its easier to convert it properly to
// a type on that end than in the generated code.
builder.addln("%s result = ($r) ((%s) %s.readParameter(\"%s\", \"%2$s\"));", fieldType, cast,
resourcesFieldName, parameterName);
// If the binding is invariant, then it's ok to cache. Othewise, its only
// ok to cache if a) the @Parameter says to cache and b) the component
// is rendering at the point when field is accessed.