class LazyContextVariable<T> implements ILazyContextVariable<T> {


    private volatile boolean initialized = false;
    private T value;

    protected LazyContextVariable() {
        super();
    }


    /**
     * <p>
     *   Lazily resolve the value.
     * </p>
     * <p>
     *   This will be transparently called by the Thymeleaf engine at template rendering time when an object
     *   of this class is resolved in a Thymeleaf expression.
     * </p>
     * <p>
     *   Note lazy variables will be resolved just once, and their resolved values will be reused as many times
     *   as they appear in the template.
     * </p>
     *
     * @return the resolved value.
     */
    public final T getValue() {<FILL_FUNCTION_BODY>}


    /**
     * <p>
     *   Perform the actual resolution of the variable's value.
     * </p>
     * <p>
     *   This method will be called only once, the first time this variable is resolved.
     * </p>
     *
     * @return the resolved value.
     */
    protected abstract T loadValue();

}

        if (!this.initialized) {
            synchronized (this) {
                if (!this.initialized) {
                    this.value = loadValue();
                    this.initialized = true;
                }
            }
        }
        return this.value;
    
<no_super_class>