class LazyProcessingCharSequence extends AbstractLazyCharSequence {

    private final ITemplateContext context;
    private final TemplateModel templateModel;


    public LazyProcessingCharSequence(final ITemplateContext context, final TemplateModel templateModel) {

        super();

        if (context == null) {
            throw new IllegalArgumentException("Template Context is null, which is forbidden");
        }
        if (templateModel == null) {
            throw new IllegalArgumentException("Template Model is null, which is forbidden");
        }

        this.context = context;
        this.templateModel = templateModel;

    }




    @Override
    protected String resolveText() {<FILL_FUNCTION_BODY>}


    @Override
    protected void writeUnresolved(final Writer writer) throws IOException {
        this.context.getConfiguration().getTemplateManager().process(this.templateModel, this.context, writer);
    }



}

        final Writer stringWriter = new FastStringWriter();
        this.context.getConfiguration().getTemplateManager().process(this.templateModel, this.context, stringWriter);
        return stringWriter.toString();
    
<methods>public final char charAt(int) ,public final boolean equals(java.lang.Object) ,public final int hashCode() ,public final int length() ,public final java.lang.CharSequence subSequence(int, int) ,public final java.lang.String toString() ,public final void write(java.io.Writer) throws java.io.IOException<variables>private java.lang.String resolvedText