package com.github.mustachejava;

import com.github.mustachejava.DefaultMustacheVisitor;
import com.github.mustachejava.codes.CommentCode;
import com.github.mustachejava.codes.DefaultCode;
import com.github.mustachejava.codes.DefaultMustache;
import com.github.mustachejava.codes.ExtendCheckNameCode;
import com.github.mustachejava.codes.ExtendCode;
import com.github.mustachejava.codes.ExtendNameCode;
import com.github.mustachejava.codes.IterableCode;
import com.github.mustachejava.codes.NotIterableCode;
import com.github.mustachejava.codes.PartialCode;
import com.github.mustachejava.codes.ValueCode;
import com.github.mustachejava.codes.WriteCode;
import com.github.mustachejava.util.Node;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.logging.Logger;

/* JADX INFO: loaded from: classes.dex */
public class DefaultMustacheVisitor implements MustacheVisitor {
    protected DefaultMustacheFactory df;
    private static final Code[] EMPTY_CODES = new Code[0];
    protected static Logger logger = Logger.getLogger("DefaultMustacheVisitor");
    private static final Code EOF = new DefaultCode() { // from class: com.github.mustachejava.DefaultMustacheVisitor.1
        @Override // com.github.mustachejava.codes.DefaultCode, com.github.mustachejava.Code
        public Node invert(Node node, String str, AtomicInteger atomicInteger) {
            if (str.length() == atomicInteger.get()) {
                return node;
            }
            return null;
        }
    };
    protected final List<Code> list = new LinkedList();
    private final Map<String, PragmaHandler> handlers = new AnonymousClass2();

    /* JADX INFO: renamed from: com.github.mustachejava.DefaultMustacheVisitor$2, reason: invalid class name */
    class AnonymousClass2 extends HashMap<String, PragmaHandler> {
        AnonymousClass2() {
            put("implicit-iterator", new PragmaHandler() { // from class: com.github.mustachejava.DefaultMustacheVisitor$2$$ExternalSyntheticLambda0
                @Override // com.github.mustachejava.PragmaHandler
                public final Code handle(TemplateContext templateContext, String str, String str2) {
                    return DefaultMustacheVisitor.AnonymousClass2.lambda$new$0(templateContext, str, str2);
                }
            });
        }

        static /* synthetic */ Code lambda$new$0(TemplateContext templateContext, String str, String str2) {
            return new DefaultCode();
        }
    }

    public DefaultMustacheVisitor(DefaultMustacheFactory defaultMustacheFactory) {
        this.df = defaultMustacheFactory;
    }

    public void addPragmaHandler(String str, PragmaHandler pragmaHandler) {
        this.handlers.put(str.toLowerCase(), pragmaHandler);
    }

    @Override // com.github.mustachejava.MustacheVisitor
    public Mustache mustache(TemplateContext templateContext) {
        return new DefaultMustache(templateContext, this.df, (Code[]) this.list.toArray(EMPTY_CODES), templateContext.file());
    }

    @Override // com.github.mustachejava.MustacheVisitor
    public void iterable(TemplateContext templateContext, String str, Mustache mustache) {
        this.list.add(new IterableCode(templateContext, this.df, mustache, str));
    }

    @Override // com.github.mustachejava.MustacheVisitor
    public void notIterable(TemplateContext templateContext, String str, Mustache mustache) {
        this.list.add(new NotIterableCode(templateContext, this.df, mustache, str));
    }

    @Override // com.github.mustachejava.MustacheVisitor
    public void name(TemplateContext templateContext, String str, Mustache mustache) {
        this.list.add(new ExtendNameCode(templateContext, this.df, mustache, str));
    }

    @Override // com.github.mustachejava.MustacheVisitor
    public void checkName(TemplateContext templateContext, String str, Mustache mustache) {
        this.list.add(new ExtendCheckNameCode(templateContext, this.df, mustache, str));
    }

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

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

    @Override // com.github.mustachejava.MustacheVisitor
    public void write(TemplateContext templateContext, String str) {
        if (str.length() > 0) {
            int size = this.list.size();
            if (size > 0) {
                this.list.get(size - 1).append(str);
            } else {
                this.list.add(new WriteCode(templateContext, this.df, str));
            }
        }
    }

    @Override // com.github.mustachejava.MustacheVisitor
    public void pragma(TemplateContext templateContext, String str, String str2) {
        PragmaHandler pragmaHandler = this.handlers.get(str.toLowerCase());
        if (pragmaHandler == null) {
            logger.warning("Unimplemented pragma: " + str);
            return;
        }
        Code codeHandle = pragmaHandler.handle(templateContext, str, str2);
        if (codeHandle != null) {
            this.list.add(codeHandle);
        }
    }

    @Override // com.github.mustachejava.MustacheVisitor
    public void eof(TemplateContext templateContext) {
        this.list.add(EOF);
    }

    @Override // com.github.mustachejava.MustacheVisitor
    public void extend(TemplateContext templateContext, String str, Mustache mustache) {
        this.list.add(new ExtendCode(templateContext, this.df, mustache, str));
    }

    @Override // com.github.mustachejava.MustacheVisitor
    public void comment(TemplateContext templateContext, String str) {
        this.list.add(new CommentCode(templateContext, this.df, str));
    }
}
