NOM.java
package codeanalyzer.metric;
import codeanalyzer.reader.SourceFileReader;
import java.util.List;
import java.util.function.Predicate;
import java.io.IOException;
public class NOM extends Metric {
public NOM(String label, SourceFileReader fileReader) {
super(label, fileReader);
}
public int calculateWithRegex(String filepath) throws IOException {
String sourceCode = fileReader.readFileIntoString(filepath);
return regexCalculator(
sourceCode,
".*(public |protected |private |static )?[\\w\\<\\>\\[\\]]+\\s+(\\w+) *\\([^\\)]*\\) *(\\{?|[^;]).*");
}
public int calculateWithStringComparison(String filepath) throws IOException {
List<String> sourceCodeList = fileReader.readFileIntoList(filepath);
Predicate<String> condition
= line -> ((line.contains("public") || line.contains("private")
|| line.contains("protected")) || line.contains("void")
|| line.contains("int") || line.contains("String"))
&& line.contains("(")
&& line.contains(")")
&& line.contains("{");
return strcompCalculator(sourceCodeList, condition);
}
}