Search in sources :

Example 46 with CombinedTypeSolver

use of com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver in project structr by structr.

the class JavaParserModule method analyzeSourceTree.

/**
 * Analyze the source tree under the given root folder.
 *
 * @param rootFolder
 */
public void analyzeSourceTree(final Folder rootFolder) {
    logger.info("Starting analysis of source tree " + rootFolder.getPath());
    final SecurityContext securityContext = rootFolder.getSecurityContext();
    app = StructrApp.getInstance(securityContext);
    final CombinedTypeSolver typeSolver = new CombinedTypeSolver();
    typeSolver.add(new ReflectionTypeSolver());
    typeSolver.add(structrTypeSolver);
    facade = JavaParserFacade.get(typeSolver);
    analyzeFolder(rootFolder, 0, null);
    logger.info("Done with analysis of source tree " + rootFolder.getPath());
}
Also used : SecurityContext(org.structr.common.SecurityContext) ReflectionTypeSolver(com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver) CombinedTypeSolver(com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver)

Example 47 with CombinedTypeSolver

use of com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver in project structr by structr.

the class JavaParserModule method indexSourceTree.

/**
 * Create an index containing all compilation units of Java files from
 * the source tree under the given root folder.
 *
 * @param rootFolder
 */
public void indexSourceTree(final Folder rootFolder) {
    logger.info("Starting indexing of source tree " + rootFolder.getPath());
    final SecurityContext securityContext = rootFolder.getSecurityContext();
    app = StructrApp.getInstance(securityContext);
    structrTypeSolver.parseRoot(rootFolder);
    final CombinedTypeSolver typeSolver = new CombinedTypeSolver();
    typeSolver.add(new ReflectionTypeSolver());
    typeSolver.add(structrTypeSolver);
    facade = JavaParserFacade.get(typeSolver);
    logger.info("Done with indexing of source tree " + rootFolder.getPath());
}
Also used : SecurityContext(org.structr.common.SecurityContext) ReflectionTypeSolver(com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver) CombinedTypeSolver(com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver)

Example 48 with CombinedTypeSolver

use of com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver in project structr by structr.

the class JavaParserModule method analyzeMethodsInJavaFile.

public void analyzeMethodsInJavaFile(final String code, String clsName) {
    try {
        final CompilationUnit cu = JavaParser.parse(code);
        final Map<String, Object> params = new HashMap<>();
        if (facade == null) {
            final CombinedTypeSolver typeSolver = new CombinedTypeSolver();
            typeSolver.add(new ReflectionTypeSolver());
            typeSolver.add(structrTypeSolver);
            facade = JavaParserFacade.get(typeSolver);
        }
        if (clsName == null) {
            try {
                clsName = cu.getType(0).getNameAsString();
            } catch (final Exception ignore) {
            }
        }
        params.put("clsName", clsName);
        params.put("facade", facade);
        params.put("app", app);
        final MethodVisitorAdapter adapter = new MethodVisitorAdapter();
        adapter.visit(cu, params);
    } catch (Throwable ignore) {
    }
}
Also used : CompilationUnit(com.github.javaparser.ast.CompilationUnit) HashMap(java.util.HashMap) JsonObject(com.google.gson.JsonObject) GraphObject(org.structr.core.GraphObject) ReflectionTypeSolver(com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver) CombinedTypeSolver(com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver) XPathExpressionException(javax.xml.xpath.XPathExpressionException) UnsolvedSymbolException(com.github.javaparser.symbolsolver.javaparsermodel.UnsolvedSymbolException) FrameworkException(org.structr.common.error.FrameworkException) SAXException(org.xml.sax.SAXException) IOException(java.io.IOException) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException)

Example 49 with CombinedTypeSolver

use of com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver in project structr by structr.

the class JavaParserModule method parseSourceTree.

/**
 * Parse the source tree under the given root folder.
 *
 * @param rootFolder
 */
public void parseSourceTree(final Folder rootFolder) {
    logger.info("Starting parsing of source tree " + rootFolder.getPath());
    final SecurityContext securityContext = rootFolder.getSecurityContext();
    app = StructrApp.getInstance(securityContext);
    final CombinedTypeSolver typeSolver = new CombinedTypeSolver();
    typeSolver.add(new ReflectionTypeSolver());
    typeSolver.add(structrTypeSolver);
    facade = JavaParserFacade.get(typeSolver);
    parseFolder(rootFolder, 0, null);
    logger.info("Done with parsing of source tree " + rootFolder.getPath());
}
Also used : SecurityContext(org.structr.common.SecurityContext) ReflectionTypeSolver(com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver) CombinedTypeSolver(com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver)

Aggregations

CombinedTypeSolver (com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver)49 ReflectionTypeSolver (com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver)46 CompilationUnit (com.github.javaparser.ast.CompilationUnit)23 JavaParserTypeSolver (com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver)22 Test (org.junit.Test)21 File (java.io.File)20 AbstractResolutionTest (com.github.javaparser.symbolsolver.resolution.AbstractResolutionTest)19 JarTypeSolver (com.github.javaparser.symbolsolver.resolution.typesolvers.JarTypeSolver)15 Before (org.junit.Before)15 MethodCallExpr (com.github.javaparser.ast.expr.MethodCallExpr)12 MethodDeclaration (com.github.javaparser.ast.body.MethodDeclaration)11 ClassOrInterfaceDeclaration (com.github.javaparser.ast.body.ClassOrInterfaceDeclaration)9 MethodUsage (com.github.javaparser.resolution.MethodUsage)9 Context (com.github.javaparser.symbolsolver.core.resolution.Context)9 JavaParserFacade (com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade)6 CompilationUnitContext (com.github.javaparser.symbolsolver.javaparsermodel.contexts.CompilationUnitContext)6 TypeSolver (com.github.javaparser.symbolsolver.model.resolution.TypeSolver)6 Value (com.github.javaparser.symbolsolver.model.resolution.Value)4 VariableDeclarator (com.github.javaparser.ast.body.VariableDeclarator)3 SourceFileInfoExtractor (com.github.javaparser.symbolsolver.SourceFileInfoExtractor)3