package com.github.mustachejava;

import com.github.mustachejava.codes.ValueCode;
import com.github.mustachejava.reflect.SimpleObjectHandler;
import com.github.mustachejava.resolver.DefaultResolver;
import com.github.mustachejava.util.HtmlEscaper;
import java.io.File;
import java.io.Reader;
import java.io.Writer;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

/* JADX INFO: loaded from: classes.dex */
public class SafeMustacheFactory extends DefaultMustacheFactory {
    private static final Set<String> disallowedMethods = new HashSet(Arrays.asList("getClass", "hashCode", "clone", "toString", "notify", "notifyAll", "finalize", "wait"));
    public static final SimpleObjectHandler OBJECT_HANDLER = new SimpleObjectHandler() { // from class: com.github.mustachejava.SafeMustacheFactory.1
        @Override // com.github.mustachejava.reflect.BaseObjectHandler
        protected void checkMethod(Method method) throws NoSuchMethodException {
            if (SafeMustacheFactory.disallowedMethods.contains(method.getName())) {
                throw new MustacheException("Disallowed: method " + method.getName() + " cannot be accessed");
            }
            if ((method.getModifiers() & 1) != 1) {
                throw new NoSuchMethodException("Only public members allowed");
            }
        }

        @Override // com.github.mustachejava.reflect.BaseObjectHandler
        protected void checkField(Field field) throws NoSuchFieldException {
            if ((field.getModifiers() & 1) != 1) {
                throw new NoSuchFieldException("Only public members allowed");
            }
        }
    };

    public SafeMustacheFactory(final Set<String> set, String str) {
        super(new DefaultResolver(str) { // from class: com.github.mustachejava.SafeMustacheFactory.2
            @Override // com.github.mustachejava.resolver.DefaultResolver, com.github.mustachejava.MustacheResolver
            public Reader getReader(String str2) {
                if (set.contains(str2)) {
                    return super.getReader(str2);
                }
                throw new MustacheException("Disallowed: resource requested");
            }
        });
        setup();
    }

    public SafeMustacheFactory(final Set<String> set, File file) {
        super(new DefaultResolver(file) { // from class: com.github.mustachejava.SafeMustacheFactory.3
            @Override // com.github.mustachejava.resolver.DefaultResolver, com.github.mustachejava.MustacheResolver
            public Reader getReader(String str) {
                if (set.contains(str)) {
                    return super.getReader(str);
                }
                throw new MustacheException("Disallowed: resource requested");
            }
        });
        setup();
    }

    private void setup() {
        setObjectHandler(OBJECT_HANDLER);
        this.mc.setAllowChangingDelimeters(false);
    }

    @Override // com.github.mustachejava.DefaultMustacheFactory, com.github.mustachejava.MustacheFactory
    public MustacheVisitor createMustacheVisitor() {
        return new DefaultMustacheVisitor(this) { // from class: com.github.mustachejava.SafeMustacheFactory.4
            @Override // com.github.mustachejava.DefaultMustacheVisitor, com.github.mustachejava.MustacheVisitor
            public void pragma(TemplateContext templateContext, String str, String str2) {
                throw new MustacheException("Disallowed: pragmas in templates");
            }

            @Override // com.github.mustachejava.DefaultMustacheVisitor, com.github.mustachejava.MustacheVisitor
            public void value(TemplateContext templateContext, String str, boolean z) {
                if (!z) {
                    throw new MustacheException("Disallowed: non-encoded text in templates");
                }
                this.list.add(new ValueCode(templateContext, this.df, str, z));
            }
        };
    }

    @Override // com.github.mustachejava.DefaultMustacheFactory, com.github.mustachejava.MustacheFactory
    public void encode(String str, Writer writer) {
        HtmlEscaper.escape(str, writer);
    }
}
