class JarAnalyzerFactory extends FileAnalyzerFactory {

    private static final String NAME = "Jar";

    private static final String[] SUFFIXES = {
        "JAR", "WAR", "EAR"
    };

    private static final Matcher MATCHER = new ZipMatcherBase() {

        @Override
        public String description() {<FILL_FUNCTION_BODY>}

        @Override
        public AnalyzerFactory forFactory() {
            return JarAnalyzerFactory.DEFAULT_INSTANCE;
        }

        @Override
        protected boolean doesCheckExtraFieldID() {
            return true;
        }

        @Override
        protected Integer strictExtraFieldID() {
            return 0xCAFE;
        }
    };

    public static final JarAnalyzerFactory DEFAULT_INSTANCE =
            new JarAnalyzerFactory();

    private JarAnalyzerFactory() {
        super(null, null, SUFFIXES, null, MATCHER, null,
                AbstractAnalyzer.Genre.XREFABLE, NAME, false);
    }

    @Override
    protected AbstractAnalyzer newAnalyzer() {
        return new JarAnalyzer(this);
    }
}

            return "PK\\{3}\\{4} magic signature with 0xCAFE Extra Field ID";
        
<methods>public final org.opengrok.indexer.analysis.AbstractAnalyzer getAnalyzer() ,public java.lang.String getName() ,public void returnAnalyzer() <variables>private final non-sealed java.lang.String name