11package liquidjava .api ;
22
3+ import static liquidjava .diagnostics .LJDiagnostics .diagnostics ;
4+
35import java .io .File ;
46import java .util .Arrays ;
57import java .util .List ;
68
7- import liquidjava .diagnostics .ErrorEmitter ;
9+ import liquidjava .diagnostics .errors . CustomError ;
810import liquidjava .processor .RefinementProcessor ;
911import spoon .Launcher ;
1012import spoon .processing .ProcessingManager ;
1416
1517public class CommandLineLauncher {
1618 public static void main (String [] args ) {
17- // String allPath = "C://Regen/test-projects/src/Main.java";
18- // In eclipse only needed this:"../liquidjava-example/src/main/java/"
19- // In VSCode needs:
20- // "../liquidjava/liquidjava-umbrella/liquidjava-example/src/main/java/liquidjava/test/project";
21-
2219 if (args .length == 0 ) {
23- System .out .println ("No input files or directories provided" );
20+ System .out .println ("No input paths provided" );
2421 System .out .println ("\n Usage: ./liquidjava <...paths>" );
25- System .out .println (" <...paths>: Paths to files or directories to be verified by LiquidJava" );
22+ System .out .println (" <...paths>: Paths to be verified by LiquidJava" );
2623 System .out .println (
27- "\n Example: ./liquidjava liquidjava-example/src/main/java/test/currentlyTesting liquidjava-example/src/main/java/testingInProgress/Account.java" );
24+ "\n Example: ./liquidjava liquidjava-example/src/main/java/test liquidjava-example/src/main/java/testingInProgress/Account.java" );
2825 return ;
2926 }
3027 List <String > paths = Arrays .asList (args );
31- ErrorEmitter ee = launch (paths .toArray (new String [0 ]));
32- System .out .println (ee .foundError () ? (ee .getFullMessage ()) : ("Correct! Passed Verification." ));
28+ launch (paths .toArray (new String [0 ]));
29+ if (diagnostics .foundError ()) {
30+ System .out .println (diagnostics .getErrorOutput ());
31+ } else {
32+ System .out .println (diagnostics .getWarningOutput ());
33+ System .out .println ("Correct! Passed Verification." );
34+ }
3335 }
3436
35- public static ErrorEmitter launch (String ... paths ) {
37+ public static void launch (String ... paths ) {
3638 System .out .println ("Running LiquidJava on: " + Arrays .toString (paths ).replaceAll ("[\\ [\\ ]]" , "" ));
3739
38- ErrorEmitter ee = new ErrorEmitter ();
3940 Launcher launcher = new Launcher ();
4041 for (String path : paths ) {
4142 if (!new File (path ).exists ()) {
42- ee . addError ( "Path not found" , " The path " + path + " does not exist" , 1 );
43- return ee ;
43+ diagnostics . add ( new CustomError ( " The path " + path + " was not found" ) );
44+ return ;
4445 }
4546 launcher .addInputResource (path );
4647 }
47- launcher .getEnvironment ().setNoClasspath (true );
48-
49- // Get the current classpath from the system
50- // String classpath = System.getProperty("java.class.path");
51- // launcher.getEnvironment().setSourceClasspath(classpath.split(File.pathSeparator));
5248
53- // optional
54- // launcher.getEnvironment().setSourceClasspath(
55- // "lib1.jar:lib2.jar".split(":"));
49+ launcher .getEnvironment ().setNoClasspath (true );
5650 launcher .getEnvironment ().setComplianceLevel (8 );
5751 launcher .run ();
52+ diagnostics .clear ();
5853
5954 final Factory factory = launcher .getFactory ();
6055 final ProcessingManager processingManager = new QueueProcessingManager (factory );
61- final RefinementProcessor processor = new RefinementProcessor (factory , ee );
56+ final RefinementProcessor processor = new RefinementProcessor (factory );
6257 processingManager .addProcessor (processor );
6358
6459 try {
@@ -71,6 +66,6 @@ public static ErrorEmitter launch(String... paths) {
7166 throw e ;
7267 }
7368
74- return ee ;
69+ return ;
7570 }
7671}
0 commit comments