16
16
import java .util .stream .Collectors ;
17
17
import java .util .stream .IntStream ;
18
18
19
+ import com .github .javaparser .*;
20
+ import com .github .javaparser .ast .*;
19
21
import com .github .javaparser .ast .body .*;
20
22
import com .github .javaparser .ast .comments .Comment ;
21
23
import com .github .javaparser .ast .comments .JavadocComment ;
24
+ import com .github .javaparser .ast .expr .*;
22
25
import com .github .javaparser .ast .nodeTypes .NodeWithJavadoc ;
23
26
import com .github .javaparser .ast .stmt .*;
27
+ import com .github .javaparser .printer .lexicalpreservation .LexicalPreservingPrinter ;
28
+ import com .ibm .cldk .entities .*;
24
29
import com .ibm .cldk .javaee .EntrypointsFinderFactory ;
25
30
import org .apache .commons .lang3 .tuple .Pair ;
26
31
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 ;
44
32
import com .github .javaparser .ast .nodeTypes .NodeWithName ;
45
- import com .github .javaparser .ast .type .ClassOrInterfaceType ;
46
33
import com .github .javaparser .ast .type .ReferenceType ;
47
34
import com .github .javaparser .ast .type .Type ;
48
- import com .github .javaparser .resolution .UnsolvedSymbolException ;
49
35
import com .github .javaparser .resolution .declarations .ResolvedMethodDeclaration ;
50
- import com .github .javaparser .resolution .declarations .ResolvedReferenceTypeDeclaration ;
51
36
import com .github .javaparser .resolution .types .ResolvedType ;
52
37
import com .github .javaparser .symbolsolver .JavaSymbolSolver ;
53
38
import com .github .javaparser .symbolsolver .resolution .typesolvers .CombinedTypeSolver ;
57
42
import com .github .javaparser .utils .SourceRoot ;
58
43
import com .google .common .collect .Table ;
59
44
import 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 ;
71
45
import com .ibm .cldk .javaee .CRUDFinderFactory ;
72
46
import com .ibm .cldk .javaee .utils .enums .CRUDOperationType ;
73
47
import com .ibm .cldk .javaee .utils .enums .CRUDQueryType ;
@@ -365,7 +339,7 @@ private static InitializationBlock createInitializationBlock(InitializerDeclarat
365
339
return throwStmt .asThrowStmt ().getExpression ().toString ();
366
340
}
367
341
}).collect (Collectors .toList ()));
368
- initializationBlock .setCode (initializerDeclaration .getBody (). toString ( ));
342
+ initializationBlock .setCode (LexicalPreservingPrinter . print ( initializerDeclaration .getBody ()));
369
343
initializationBlock .setStartLine (
370
344
initializerDeclaration .getRange ().isPresent () ? initializerDeclaration .getRange ().get ().begin .line
371
345
: -1 );
@@ -589,7 +563,8 @@ private static Pair<String, Callable> processCallableDeclaration(CallableDeclara
589
563
callableNode .setStartLine (callableDecl .getRange ().isPresent () ? callableDecl .getRange ().get ().begin .line : -1 );
590
564
callableNode .setEndLine (callableDecl .getRange ().isPresent () ? callableDecl .getRange ().get ().end .line : -1 );
591
565
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 );
593
568
594
569
callableNode .setAccessedFields (getAccessedFields (body , classFields , typeName ));
595
570
callableNode .setCallSites (getCallSites (body ));
@@ -1115,7 +1090,7 @@ public static Pair<Map<String, JavaCompilationUnit>, Map<String, List<Problem>>>
1115
1090
for (SourceRoot sourceRoot : projectRoot .getSourceRoots ()) {
1116
1091
for (ParseResult <CompilationUnit > parseResult : sourceRoot .tryToParse ()) {
1117
1092
if (parseResult .isSuccessful ()) {
1118
- CompilationUnit compilationUnit = parseResult .getResult ().get ();
1093
+ CompilationUnit compilationUnit = LexicalPreservingPrinter . setup ( parseResult .getResult ().get () );
1119
1094
symbolTable .put (compilationUnit .getStorage ().get ().getPath ().toString (),
1120
1095
processCompilationUnit (compilationUnit ));
1121
1096
} else {
@@ -1141,7 +1116,7 @@ public static Pair<Map<String, JavaCompilationUnit>, Map<String, List<Problem>>>
1141
1116
JavaParser javaParser = new JavaParser (parserConfiguration );
1142
1117
ParseResult <CompilationUnit > parseResult = javaParser .parse (code );
1143
1118
if (parseResult .isSuccessful ()) {
1144
- CompilationUnit compilationUnit = parseResult .getResult ().get ();
1119
+ CompilationUnit compilationUnit = LexicalPreservingPrinter . setup ( parseResult .getResult ().get () );
1145
1120
Log .debug ("Successfully parsed code. Now processing compilation unit" );
1146
1121
symbolTable .put ("<pseudo-path>" , processCompilationUnit (compilationUnit ));
1147
1122
} else {
@@ -1183,7 +1158,7 @@ public static Pair<Map<String, JavaCompilationUnit>, Map<String, List<Problem>>>
1183
1158
for (Path javaFilePath : javaFilePaths ) {
1184
1159
ParseResult <CompilationUnit > parseResult = javaParser .parse (javaFilePath );
1185
1160
if (parseResult .isSuccessful ()) {
1186
- CompilationUnit compilationUnit = parseResult .getResult ().get ();
1161
+ CompilationUnit compilationUnit = LexicalPreservingPrinter . setup ( parseResult .getResult ().get () );
1187
1162
System .out .println ("Successfully parsed file: " + javaFilePath .toString ());
1188
1163
symbolTable .put (compilationUnit .getStorage ().get ().getPath ().toString (),
1189
1164
processCompilationUnit (compilationUnit ));
0 commit comments