class SpringStandardExpressionObjectFactory extends StandardExpressionObjectFactory {

    /*
     * Any new objects added here should also be added to the "ALL_EXPRESSION_OBJECT_NAMES" See below.
     */
    public static final String FIELDS_EXPRESSION_OBJECT_NAME = "fields";
    public static final String THEMES_EXPRESSION_OBJECT_NAME = "themes";
    public static final String MVC_EXPRESSION_OBJECT_NAME = "mvc";
    public static final String REQUESTDATAVALUES_EXPRESSION_OBJECT_NAME = "requestdatavalues";


    public static final Set<String> ALL_EXPRESSION_OBJECT_NAMES;

    private static final Mvc MVC_EXPRESSION_OBJECT = new Mvc();




    static {

        final Set<String> allExpressionObjectNames = new LinkedHashSet<String>();
        allExpressionObjectNames.addAll(StandardExpressionObjectFactory.ALL_EXPRESSION_OBJECT_NAMES);
        allExpressionObjectNames.add(FIELDS_EXPRESSION_OBJECT_NAME);
        allExpressionObjectNames.add(THEMES_EXPRESSION_OBJECT_NAME);
        allExpressionObjectNames.add(MVC_EXPRESSION_OBJECT_NAME);
        allExpressionObjectNames.add(REQUESTDATAVALUES_EXPRESSION_OBJECT_NAME);

        ALL_EXPRESSION_OBJECT_NAMES = Collections.unmodifiableSet(allExpressionObjectNames);

    }




    public SpringStandardExpressionObjectFactory() {
        super();
    }





    public Set<String> getAllExpressionObjectNames() {
        return ALL_EXPRESSION_OBJECT_NAMES;
    }



    public Object buildObject(final IExpressionContext context, final String expressionObjectName) {<FILL_FUNCTION_BODY>}


}



        if (MVC_EXPRESSION_OBJECT_NAME.equals(expressionObjectName)) {
            return MVC_EXPRESSION_OBJECT;
        }
        if (THEMES_EXPRESSION_OBJECT_NAME.equals(expressionObjectName)) {
            return new Themes(context);
        }
        if (FIELDS_EXPRESSION_OBJECT_NAME.equals(expressionObjectName)) {
            return new Fields(context);
        }
        if (REQUESTDATAVALUES_EXPRESSION_OBJECT_NAME.equals(expressionObjectName)) {
            if (context instanceof ITemplateContext) {
                return new RequestDataValues((ITemplateContext)context);
            }
            return null;
        }

        return super.buildObject(context, expressionObjectName);

    
<methods>public void <init>() ,public java.lang.Object buildObject(org.thymeleaf.context.IExpressionContext, java.lang.String) ,public Set<java.lang.String> getAllExpressionObjectNames() ,public boolean isCacheable(java.lang.String) <variables>private static final org.thymeleaf.expression.Aggregates AGGREGATES_EXPRESSION_OBJECT,public static final java.lang.String AGGREGATES_EXPRESSION_OBJECT_NAME,protected static final Set<java.lang.String> ALL_EXPRESSION_OBJECT_NAMES,private static final org.thymeleaf.expression.Arrays ARRAYS_EXPRESSION_OBJECT,public static final java.lang.String ARRAYS_EXPRESSION_OBJECT_NAME,private static final org.thymeleaf.expression.Bools BOOLS_EXPRESSION_OBJECT,public static final java.lang.String BOOLS_EXPRESSION_OBJECT_NAME,public static final java.lang.String CALENDARS_EXPRESSION_OBJECT_NAME,public static final java.lang.String CONTEXT_EXPRESSION_OBJECT_NAME,public static final java.lang.String CONVERSIONS_EXPRESSION_OBJECT_NAME,public static final java.lang.String DATES_EXPRESSION_OBJECT_NAME,public static final java.lang.String EXECUTION_INFO_OBJECT_NAME,public static final java.lang.String IDS_EXPRESSION_OBJECT_NAME,private static final org.thymeleaf.expression.Lists LISTS_EXPRESSION_OBJECT,public static final java.lang.String LISTS_EXPRESSION_OBJECT_NAME,public static final java.lang.String LOCALE_EXPRESSION_OBJECT_NAME,private static final org.thymeleaf.expression.Maps MAPS_EXPRESSION_OBJECT,public static final java.lang.String MAPS_EXPRESSION_OBJECT_NAME,public static final java.lang.String MESSAGES_EXPRESSION_OBJECT_NAME,public static final java.lang.String NUMBERS_EXPRESSION_OBJECT_NAME,private static final org.thymeleaf.expression.Objects OBJECTS_EXPRESSION_OBJECT,public static final java.lang.String OBJECTS_EXPRESSION_OBJECT_NAME,public static final java.lang.String REQUEST_EXPRESSION_OBJECT_NAME,public static final java.lang.String RESPONSE_EXPRESSION_OBJECT_NAME,public static final java.lang.String ROOT_EXPRESSION_OBJECT_NAME,public static final java.lang.String SELECTION_TARGET_EXPRESSION_OBJECT_NAME,public static final java.lang.String SERVLET_CONTEXT_EXPRESSION_OBJECT_NAME,public static final java.lang.String SESSION_EXPRESSION_OBJECT_NAME,private static final org.thymeleaf.expression.Sets SETS_EXPRESSION_OBJECT,public static final java.lang.String SETS_EXPRESSION_OBJECT_NAME,public static final java.lang.String STRINGS_EXPRESSION_OBJECT_NAME,public static final java.lang.String TEMPORALS_EXPRESSION_OBJECT_NAME,private static final org.thymeleaf.expression.Uris URIS_EXPRESSION_OBJECT,public static final java.lang.String URIS_EXPRESSION_OBJECT_NAME,public static final java.lang.String VARIABLES_EXPRESSION_OBJECT_NAME