cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan/*
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan * CDDL HEADER START
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan *
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan * The contents of this file are subject to the terms of the
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan * Common Development and Distribution License (the "License").
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan * You may not use this file except in compliance with the License.
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan *
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan * See LICENSE.txt included in this distribution for the specific
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan * language governing permissions and limitations under the License.
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan *
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan * When distributing Covered Code, include this CDDL HEADER in each
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan * file and include the License file at LICENSE.txt.
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan * If applicable, add the following below this CDDL HEADER, with the
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan * fields enclosed by brackets "[]" replaced with your own identifying
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan * information: Portions Copyright [yyyy] [name of copyright owner]
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan *
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan * CDDL HEADER END
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan */
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan/*
fb96d0f1ab431db23ef75c52867d8261acda9b0aLubos Kosco * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan */
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukanpackage org.opensolaris.opengrok.analysis.clojure;
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukanimport java.io.IOException;
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukanimport java.io.Reader;
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukanimport java.io.Writer;
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukanimport org.opensolaris.opengrok.analysis.Definitions;
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukanimport org.opensolaris.opengrok.analysis.FileAnalyzer;
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukanimport org.opensolaris.opengrok.analysis.FileAnalyzer.Genre;
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukanimport org.opensolaris.opengrok.analysis.FileAnalyzerFactory;
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukanimport org.opensolaris.opengrok.configuration.Project;
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukanimport org.opensolaris.opengrok.history.Annotation;
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukanpublic class ClojureAnalyzerFactory extends FileAnalyzerFactory {
fb96d0f1ab431db23ef75c52867d8261acda9b0aLubos Kosco
fb96d0f1ab431db23ef75c52867d8261acda9b0aLubos Kosco private static final String name = "Clojure";
fb96d0f1ab431db23ef75c52867d8261acda9b0aLubos Kosco
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan private static final String[] SUFFIXES = {
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan "CLJ",
fb96d0f1ab431db23ef75c52867d8261acda9b0aLubos Kosco "CLJS",
fb96d0f1ab431db23ef75c52867d8261acda9b0aLubos Kosco "CLJX"
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan };
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan public ClojureAnalyzerFactory() {
fb96d0f1ab431db23ef75c52867d8261acda9b0aLubos Kosco super(null, null, SUFFIXES, null, null, "text/plain", Genre.PLAIN, name);
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan }
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan @Override
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan protected FileAnalyzer newAnalyzer() {
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan return new ClojureAnalyzer(this);
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan }
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan @Override
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan public void writeXref(Reader in, Writer out, Definitions defs, Annotation annotation, Project project)
fb96d0f1ab431db23ef75c52867d8261acda9b0aLubos Kosco throws IOException {
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan ClojureAnalyzer.writeXref(in, out, defs, annotation, project);
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan }
cb47e1981ede157dd442125daca1d1b1e31b4521Sanel Zukan}