1616import java .util .stream .Collectors ;
1717import java .util .stream .IntStream ;
1818
19+ import com .github .javaparser .*;
20+ import com .github .javaparser .ast .*;
1921import com .github .javaparser .ast .body .*;
2022import com .github .javaparser .ast .comments .Comment ;
2123import com .github .javaparser .ast .comments .JavadocComment ;
24+ import com .github .javaparser .ast .expr .*;
2225import com .github .javaparser .ast .nodeTypes .NodeWithJavadoc ;
2326import com .github .javaparser .ast .stmt .*;
27+ import com .github .javaparser .printer .lexicalpreservation .LexicalPreservingPrinter ;
28+ import com .ibm .cldk .entities .*;
2429import com .ibm .cldk .javaee .EntrypointsFinderFactory ;
2530import org .apache .commons .lang3 .tuple .Pair ;
2631
27- import com .github .javaparser .JavaParser ;
28- import com .github .javaparser .ParseResult ;
29- import com .github .javaparser .ParserConfiguration ;
30- import com .github .javaparser .Problem ;
31- import com .github .javaparser .ast .AccessSpecifier ;
32- import com .github .javaparser .ast .CompilationUnit ;
33- import com .github .javaparser .ast .Node ;
34- import com .github .javaparser .ast .NodeList ;
35- import com .github .javaparser .ast .expr .AnnotationExpr ;
36- import com .github .javaparser .ast .expr .AssignExpr ;
37- import com .github .javaparser .ast .expr .CastExpr ;
38- import com .github .javaparser .ast .expr .ConditionalExpr ;
39- import com .github .javaparser .ast .expr .Expression ;
40- import com .github .javaparser .ast .expr .FieldAccessExpr ;
41- import com .github .javaparser .ast .expr .MethodCallExpr ;
42- import com .github .javaparser .ast .expr .NameExpr ;
43- import com .github .javaparser .ast .expr .ObjectCreationExpr ;
4432import com .github .javaparser .ast .nodeTypes .NodeWithName ;
45- import com .github .javaparser .ast .type .ClassOrInterfaceType ;
4633import com .github .javaparser .ast .type .ReferenceType ;
4734import com .github .javaparser .ast .type .Type ;
48- import com .github .javaparser .resolution .UnsolvedSymbolException ;
4935import com .github .javaparser .resolution .declarations .ResolvedMethodDeclaration ;
50- import com .github .javaparser .resolution .declarations .ResolvedReferenceTypeDeclaration ;
5136import com .github .javaparser .resolution .types .ResolvedType ;
5237import com .github .javaparser .symbolsolver .JavaSymbolSolver ;
5338import com .github .javaparser .symbolsolver .resolution .typesolvers .CombinedTypeSolver ;
5742import com .github .javaparser .utils .SourceRoot ;
5843import com .google .common .collect .Table ;
5944import com .google .common .collect .Tables ;
60- import com .ibm .cldk .entities .CRUDOperation ;
61- import com .ibm .cldk .entities .CRUDQuery ;
62- import com .ibm .cldk .entities .CallSite ;
63- import com .ibm .cldk .entities .Callable ;
64- import com .ibm .cldk .entities .EnumConstant ;
65- import com .ibm .cldk .entities .Field ;
66- import com .ibm .cldk .entities .InitializationBlock ;
67- import com .ibm .cldk .entities .JavaCompilationUnit ;
68- import com .ibm .cldk .entities .ParameterInCallable ;
69- import com .ibm .cldk .entities .RecordComponent ;
70- import com .ibm .cldk .entities .VariableDeclaration ;
7145import com .ibm .cldk .javaee .CRUDFinderFactory ;
7246import com .ibm .cldk .javaee .utils .enums .CRUDOperationType ;
7347import com .ibm .cldk .javaee .utils .enums .CRUDQueryType ;
@@ -365,7 +339,7 @@ private static InitializationBlock createInitializationBlock(InitializerDeclarat
365339 return throwStmt .asThrowStmt ().getExpression ().toString ();
366340 }
367341 }).collect (Collectors .toList ()));
368- initializationBlock .setCode (initializerDeclaration .getBody (). toString ( ));
342+ initializationBlock .setCode (LexicalPreservingPrinter . print ( initializerDeclaration .getBody ()));
369343 initializationBlock .setStartLine (
370344 initializerDeclaration .getRange ().isPresent () ? initializerDeclaration .getRange ().get ().begin .line
371345 : -1 );
@@ -589,7 +563,8 @@ private static Pair<String, Callable> processCallableDeclaration(CallableDeclara
589563 callableNode .setStartLine (callableDecl .getRange ().isPresent () ? callableDecl .getRange ().get ().begin .line : -1 );
590564 callableNode .setEndLine (callableDecl .getRange ().isPresent () ? callableDecl .getRange ().get ().end .line : -1 );
591565 callableNode .setReferencedTypes (getReferencedTypes (body ));
592- callableNode .setCode (body .isPresent () ? body .get ().toString () : "" );
566+ callableNode .setCode (body .isPresent () ? LexicalPreservingPrinter .print (body .get ()) : "" );
567+ callableNode .setCodeStartLine (body .isPresent ()? body .get ().getBegin ().get ().line : -1 );
593568
594569 callableNode .setAccessedFields (getAccessedFields (body , classFields , typeName ));
595570 callableNode .setCallSites (getCallSites (body ));
@@ -1115,7 +1090,7 @@ public static Pair<Map<String, JavaCompilationUnit>, Map<String, List<Problem>>>
11151090 for (SourceRoot sourceRoot : projectRoot .getSourceRoots ()) {
11161091 for (ParseResult <CompilationUnit > parseResult : sourceRoot .tryToParse ()) {
11171092 if (parseResult .isSuccessful ()) {
1118- CompilationUnit compilationUnit = parseResult .getResult ().get ();
1093+ CompilationUnit compilationUnit = LexicalPreservingPrinter . setup ( parseResult .getResult ().get () );
11191094 symbolTable .put (compilationUnit .getStorage ().get ().getPath ().toString (),
11201095 processCompilationUnit (compilationUnit ));
11211096 } else {
@@ -1141,7 +1116,7 @@ public static Pair<Map<String, JavaCompilationUnit>, Map<String, List<Problem>>>
11411116 JavaParser javaParser = new JavaParser (parserConfiguration );
11421117 ParseResult <CompilationUnit > parseResult = javaParser .parse (code );
11431118 if (parseResult .isSuccessful ()) {
1144- CompilationUnit compilationUnit = parseResult .getResult ().get ();
1119+ CompilationUnit compilationUnit = LexicalPreservingPrinter . setup ( parseResult .getResult ().get () );
11451120 Log .debug ("Successfully parsed code. Now processing compilation unit" );
11461121 symbolTable .put ("<pseudo-path>" , processCompilationUnit (compilationUnit ));
11471122 } else {
@@ -1183,7 +1158,7 @@ public static Pair<Map<String, JavaCompilationUnit>, Map<String, List<Problem>>>
11831158 for (Path javaFilePath : javaFilePaths ) {
11841159 ParseResult <CompilationUnit > parseResult = javaParser .parse (javaFilePath );
11851160 if (parseResult .isSuccessful ()) {
1186- CompilationUnit compilationUnit = parseResult .getResult ().get ();
1161+ CompilationUnit compilationUnit = LexicalPreservingPrinter . setup ( parseResult .getResult ().get () );
11871162 System .out .println ("Successfully parsed file: " + javaFilePath .toString ());
11881163 symbolTable .put (compilationUnit .getStorage ().get ().getPath ().toString (),
11891164 processCompilationUnit (compilationUnit ));
0 commit comments