AnalyzingMethod.java

package codeanalyzer.analyzer;

import codeanalyzer.metric.LOC;
import codeanalyzer.metric.NOC;
import codeanalyzer.metric.NOM;
import codeanalyzer.reader.SourceFileReader;

import codeanalyzer.calculator.RegexCalculator;
import codeanalyzer.calculator.StringComparisonCalculator;


public enum AnalyzingMethod {
    REGEX {
        @Override
        public SourceCodeAnalyzer createSourceCodeAnalyzer(
                SourceFileReader fileReader, String filepath) {
            SourceCodeAnalyzer analyzer = new SourceCodeAnalyzer(filepath);
            analyzer.addCalculator(new RegexCalculator(new LOC("LOC", fileReader)));
            analyzer.addCalculator(new RegexCalculator(new NOM("NOM", fileReader)));
            analyzer.addCalculator(new RegexCalculator(new NOC("NOC", fileReader)));
            return analyzer;
        }
    },
    STRCOMP {
        @Override
        public SourceCodeAnalyzer createSourceCodeAnalyzer(
                SourceFileReader fileReader, String filepath) {
            SourceCodeAnalyzer analyzer = new SourceCodeAnalyzer(filepath);
            analyzer.addCalculator(
                new StringComparisonCalculator(new LOC("LOC", fileReader)));
            analyzer.addCalculator(
                new StringComparisonCalculator(new NOM("NOM", fileReader)));
            analyzer.addCalculator(
                new StringComparisonCalculator(new NOC("NOC", fileReader)));
            return analyzer;
        }
    };

    public abstract SourceCodeAnalyzer createSourceCodeAnalyzer(
        SourceFileReader fileReader, String filepath);
}