Facade.java
package codeanalyzer;
import codeanalyzer.analyzer.AnalyzingMethod;
import codeanalyzer.analyzer.SourceCodeAnalyzer;
import codeanalyzer.analyzer.SourceCodeAnalyzerFactory;
import codeanalyzer.exporter.FileType;
import codeanalyzer.exporter.MetricsExporter;
import codeanalyzer.exporter.MetricsExporterFactory;
import codeanalyzer.reader.SourceFileReader;
import codeanalyzer.reader.SourceFileReaderFactory;
import codeanalyzer.reader.SourceFileLocation;
import java.util.Map;
import java.io.IOException;
public class Facade {
public void exportSourceCodeMetrics(
String filepath,
String sourceCodeAnalyzerType,
String sourceFileLocation,
String outputFilePath,
String outputFileType
) throws IOException {
SourceFileReaderFactory fileReaderFactory = new SourceFileReaderFactory();
SourceFileReader fileReader = fileReaderFactory.createSourceFileReader(
SourceFileLocation.valueOf(sourceFileLocation.toUpperCase()));
SourceCodeAnalyzerFactory analyzerFactory = new SourceCodeAnalyzerFactory();
SourceCodeAnalyzer analyzer = analyzerFactory.createSourceCodeAnalyzer(
AnalyzingMethod.valueOf(sourceCodeAnalyzerType.toUpperCase()),
fileReader,
filepath);
Map<String, Integer> metrics = analyzer.calculateMetrics();
MetricsExporterFactory exporterFactory = new MetricsExporterFactory();
MetricsExporter exporter = exporterFactory.createMetricsExporter(
FileType.valueOf(outputFileType.toUpperCase()));
exporter.writeFile(metrics, outputFilePath);
}
}