package com.sebastian_daschner.jaxrs_analyzer.analysis.bytecode;
import com.sebastian_daschner.jaxrs_analyzer.model.results.ClassResult;
import com.sebastian_daschner.jaxrs_analyzer.model.results.MethodResult;
/**
* @author Sebastian Daschner
*/
public class BytecodeAnalyzer {
private final ResourceMethodContentAnalyzer methodContentAnalyzer = new ResourceMethodContentAnalyzer();
private final SubResourceLocatorMethodContentAnalyzer subResourceLocatorAnalyzer = new SubResourceLocatorMethodContentAnalyzer();
/**
* Analyzes the bytecode instructions of the method results and interprets JAX-RS relevant information.
*/
public void analyzeBytecode(final ClassResult classResult) {
classResult.getMethods().forEach(this::analyzeBytecode);
}
private void analyzeBytecode(final MethodResult methodResult) {
if (methodResult.getHttpMethod() == null) {
// sub-resource
subResourceLocatorAnalyzer.analyze(methodResult);
} else {
methodContentAnalyzer.analyze(methodResult);
}
}
}