package com.github.mustachejava;

import com.github.mustachejava.codes.PartialCode;
import com.github.mustachejava.codes.ValueCode;
import com.github.mustachejava.util.IndentWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.List;

/* JADX INFO: loaded from: classes.dex */
public class SpecMustacheVisitor extends DefaultMustacheVisitor {
    public SpecMustacheVisitor(DefaultMustacheFactory defaultMustacheFactory) {
        super(defaultMustacheFactory);
    }

    @Override // com.github.mustachejava.DefaultMustacheVisitor, com.github.mustachejava.MustacheVisitor
    public void partial(TemplateContext templateContext, String str, String str2) {
        this.list.add(new SpecPartialCode(new TemplateContext(MustacheParser.DEFAULT_SM, MustacheParser.DEFAULT_EM, templateContext.file(), templateContext.line(), templateContext.startOfLine()), this.df, str, str2));
    }

    @Override // com.github.mustachejava.DefaultMustacheVisitor, com.github.mustachejava.MustacheVisitor
    public void value(TemplateContext templateContext, String str, boolean z) {
        this.list.add(new SpecValueCode(templateContext, this.df, str, z));
    }

    static class SpecPartialCode extends PartialCode {
        private final String indent;

        public SpecPartialCode(TemplateContext templateContext, DefaultMustacheFactory defaultMustacheFactory, String str, String str2) {
            super(templateContext, defaultMustacheFactory, str);
            this.indent = str2;
        }

        @Override // com.github.mustachejava.codes.PartialCode
        protected Writer executePartial(Writer writer, List<Object> list) {
            this.partial.execute((Writer) new IndentWriter(writer, this.indent), list);
            return writer;
        }
    }

    static class SpecValueCode extends ValueCode {
        public SpecValueCode(TemplateContext templateContext, DefaultMustacheFactory defaultMustacheFactory, String str, boolean z) {
            super(templateContext, defaultMustacheFactory, str, z);
        }

        @Override // com.github.mustachejava.codes.ValueCode
        protected void execute(Writer writer, String str) throws IOException {
            if (writer instanceof IndentWriter) {
                IndentWriter indentWriter = (IndentWriter) writer;
                indentWriter.flushIndent();
                writer = indentWriter.inner;
                while (writer instanceof IndentWriter) {
                    writer = ((IndentWriter) writer).inner;
                }
            }
            super.execute(writer, str);
        }
    }
}
