1
1
package kg .ash .javavi .actions ;
2
2
3
+ import com .github .javaparser .Range ;
3
4
import com .github .javaparser .ast .CompilationUnit ;
4
- import kg .ash .javavi .readers .source .ClassNamesFetcher ;
5
- import kg .ash .javavi .readers .source .CompilationUnitCreator ;
6
- import kg .ash .javavi .readers .source .CompilationUnitResult ;
7
5
8
6
import java .io .UnsupportedEncodingException ;
9
7
import java .util .Base64 ;
8
+ import java .util .HashSet ;
9
+ import java .util .Optional ;
10
10
import java .util .Set ;
11
11
12
+ import kg .ash .javavi .readers .source .ClassNamesFetcher ;
13
+ import kg .ash .javavi .readers .source .CompilationUnitCreator ;
14
+ import kg .ash .javavi .readers .source .CompilationUnitResult ;
15
+
12
16
public abstract class ImportsAction implements Action {
13
17
14
18
protected Set <String > classnames ;
@@ -29,10 +33,18 @@ public String perform(String[] args) {
29
33
} else if (compilationUnitResult .getProblems () != null ) {
30
34
StringBuilder result =
31
35
new StringBuilder ("{'parse-problems':[" );
36
+ Set <Range > ranges = new HashSet <>();
32
37
compilationUnitResult .getProblems ().stream ().forEach (p -> {
33
- result .append ("{'message':'" ).append (p .getMessage ()).append ("'" );
34
- result .append (",'lnum':'" ).append (p .getLocation ().get ().getBegin ().getRange ().get ().begin .line ).append ("'" );
35
- result .append (",'col':'" ).append (p .getLocation ().get ().getBegin ().getRange ().get ().begin .column ).append ("'}," );
38
+ p .getLocation ().get ().getBegin ().getRange ()
39
+ .filter (range -> !ranges .contains (range ))
40
+ .ifPresent (range -> {
41
+ result .append ("{'message':'" ).append (p .getMessage ()).append ("'" );
42
+ result .append (",'lnum':'" )
43
+ .append (range .begin .line ).append ("'" );
44
+ result .append (",'col':'" )
45
+ .append (range .begin .column ).append ("'}," );
46
+ ranges .add (range );
47
+ });
36
48
});
37
49
return result .append ("]}" ).toString ();
38
50
} else {
0 commit comments