Class JavaLanguageFrontend

java.lang.Object
de.fraunhofer.aisec.cpg.frontends.LanguageFrontend
de.fraunhofer.aisec.cpg.frontends.java.JavaLanguageFrontend

public class JavaLanguageFrontend
extends LanguageFrontend
Main parser for ONE Java files.
  • Field Details

    • JAVA_EXTENSIONS

      public static final java.util.List<java.lang.String> JAVA_EXTENSIONS
    • THIS

      public static final java.lang.String THIS
      See Also:
      Constant Field Values
    • ANNOTATION_MEMBER_VALUE

      public static final java.lang.String ANNOTATION_MEMBER_VALUE
      See Also:
      Constant Field Values
  • Constructor Details

    • JavaLanguageFrontend

      public JavaLanguageFrontend​(@NonNull TranslationConfiguration config, de.fraunhofer.aisec.cpg.passes.scopes.ScopeManager scopeManager)
  • Method Details

    • parse

      public TranslationUnitDeclaration parse​(java.io.File file) throws TranslationException
      Specified by:
      parse in class LanguageFrontend
      Throws:
      TranslationException
    • parse

      protected com.github.javaparser.ast.CompilationUnit parse​(java.io.File file, com.github.javaparser.JavaParser parser) throws TranslationException, java.io.FileNotFoundException
      Throws:
      TranslationException
      java.io.FileNotFoundException
    • getCodeFromRawNode

      public <T> java.lang.String getCodeFromRawNode​(T astNode)
      Description copied from class: LanguageFrontend
      Returns the raw code of the ast node, generic for java or c++ ast nodes.
      Specified by:
      getCodeFromRawNode in class LanguageFrontend
      Type Parameters:
      T - the raw ast type
      Parameters:
      astNode - the ast node
      Returns:
      the source code
    • getLocationFromRawNode

      public <T> @Nullable PhysicalLocation getLocationFromRawNode​(T astNode)
      Description copied from class: LanguageFrontend
      Returns the Region of the code with line and column, index starting at 1, generic for java or c++ ast nodes.
      Specified by:
      getLocationFromRawNode in class LanguageFrontend
      Type Parameters:
      T - the raw ast type
      Parameters:
      astNode - the ast node
      Returns:
      the location
    • getTypeAsGoodAsPossible

      public <N extends com.github.javaparser.ast.Node,​ T extends com.github.javaparser.ast.type.Type> Type getTypeAsGoodAsPossible​(com.github.javaparser.ast.nodeTypes.NodeWithType<N,​T> nodeWithType, com.github.javaparser.resolution.declarations.ResolvedValueDeclaration resolved)
    • getTypeAsGoodAsPossible

      public Type getTypeAsGoodAsPossible​(com.github.javaparser.ast.type.Type type)
    • getQualifiedMethodNameAsGoodAsPossible

      public java.lang.String getQualifiedMethodNameAsGoodAsPossible​(com.github.javaparser.ast.expr.MethodCallExpr callExpr)
    • recoverTypeFromUnsolvedException

      public @Nullable java.lang.String recoverTypeFromUnsolvedException​(java.lang.Throwable ex)
    • getQualifiedNameFromImports

      public @Nullable java.lang.String getQualifiedNameFromImports​(java.lang.String className)
    • getReturnTypeAsGoodAsPossible

      public <N extends com.github.javaparser.ast.Node,​ T extends com.github.javaparser.ast.type.Type> Type getReturnTypeAsGoodAsPossible​(com.github.javaparser.ast.nodeTypes.NodeWithType<N,​T> nodeWithType, com.github.javaparser.resolution.declarations.ResolvedMethodDeclaration resolved)
    • cleanup

      public void cleanup()
      Overrides:
      cleanup in class LanguageFrontend
    • setComment

      public <S,​ T> void setComment​(S s, T ctx)
      Specified by:
      setComment in class LanguageFrontend
    • getExpressionHandler

      public ExpressionHandler getExpressionHandler()
    • getStatementHandler

      public StatementAnalyzer getStatementHandler()
    • getDeclarationHandler

      public DeclarationHandler getDeclarationHandler()
    • getContext

      public com.github.javaparser.ast.CompilationUnit getContext()
    • getNativeTypeResolver

      public com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver getNativeTypeResolver()
    • processAnnotations

      public void processAnnotations​(de.fraunhofer.aisec.cpg.graph.Node node, com.github.javaparser.ast.nodeTypes.NodeWithAnnotations<?> owner)
      Processes Java annotations.
      Parameters:
      node - the node
      owner - the AST owner node