Made LombokApp an abstract class and added isDebugTool.

This commit is contained in:
Roel Spilker committed 2012-01-30 21:47:23 +01:00
1 parent 55384884d3
commit 81f6149b08
6 files changed
+37 -32

No files matched your search

+10 -7
View File
@@ -44,7 +44,7 @@ import com.zwitserloot.cmdreader.Sequential;
import com.zwitserloot.cmdreader.Shorthand;
@ProviderFor(LombokApp.class)
public class PostCompilerApp implements LombokApp {
public class PostCompilerApp extends LombokApp {
@Override public List<String> getAppAliases() {
return Arrays.asList("post", "postcompile");
}
@@ -87,11 +87,8 @@ public class PostCompilerApp implements LombokApp {
return 1;
}
List<File> filesToProcess = new ArrayList<File>();
for (String f : args.classFiles) addFiles(filesToProcess, f);
int filesVisited = 0, filesTouched = 0;
for (File file : filesToProcess) {
for (File file : cmdArgsToFiles(args.classFiles)) {
if (!file.exists() || !file.isFile()) {
System.out.printf("Cannot find file '%s'\n", file);
continue;
@@ -115,7 +112,13 @@ public class PostCompilerApp implements LombokApp {
return filesVisited == 0 ? 1 : 0;
}
private void addFiles(List<File> filesToProcess, String f) {
static List<File> cmdArgsToFiles(List<String> fileNames) {
List<File> filesToProcess = new ArrayList<File>();
for (String f : fileNames) addFiles(filesToProcess, f);
return filesToProcess;
}
static void addFiles(List<File> filesToProcess, String f) {
File file = new File(f);
if (file.isDirectory()) {
addRecursively(filesToProcess, file);
@@ -124,7 +127,7 @@ public class PostCompilerApp implements LombokApp {
}
}
private void addRecursively(List<File> filesToProcess, File file) {
static void addRecursively(List<File> filesToProcess, File file) {
for (File f : file.listFiles()) {
if (f.isDirectory()) addRecursively(filesToProcess, f);
else if (f.getName().endsWith(".class")) filesToProcess.add(f);
+15 -5
View File
@@ -21,6 +21,7 @@
*/
package lombok.core;
import java.util.Collections;
import java.util.List;
/**
@@ -28,25 +29,34 @@ import java.util.List;
*
* @see lombok.core.Main.VersionApp
*/
public interface LombokApp {
public abstract class LombokApp {
/**
* @param args The arguments; analogous to what's passed to {@code public static void main(String[] args)} methods.
* @return The return value. Don't call {@code System.exit} yourself.
*/
public int runApp(List<String> args) throws Exception;
public abstract int runApp(List<String> args) throws Exception;
/**
* @return Your app name. For example {@code delombok}.
*/
public String getAppName();
public abstract String getAppName();
/**
* @return Description of this app, for the command line.
*/
public String getAppDescription();
public abstract String getAppDescription();
/**
* @return When lombok.jar is executed with any of these strings as first argument, your app will be started.
*/
public List<String> getAppAliases();
public List<String> getAppAliases() {
return Collections.emptyList();
}
/**
* @return {@code true} if this app is an internal debugging tool and won't be listed by the default help message.
*/
public boolean isDebugTool() {
return false;
}
}
+4 -4
View File
@@ -44,7 +44,7 @@ public class Main {
}
@ProviderFor(LombokApp.class)
public static class VersionApp implements LombokApp {
public static class VersionApp extends LombokApp {
@Override public String getAppName() {
return "version";
}
@@ -54,7 +54,7 @@ public class Main {
}
@Override public List<String> getAppAliases() {
return Arrays.asList("version", "-version", "--version");
return Arrays.asList("-version", "--version");
}
@Override public int runApp(List<String> args) {
@@ -64,7 +64,7 @@ public class Main {
}
@ProviderFor(LombokApp.class)
public static class LicenseApp implements LombokApp {
public static class LicenseApp extends LombokApp {
@Override public String getAppName() {
return "license";
}
@@ -74,7 +74,7 @@ public class Main {
}
@Override public List<String> getAppAliases() {
return Arrays.asList("license", "licence", "copyright", "copyleft", "gpl");
return Arrays.asList("licence", "copyright", "copyleft", "gpl");
}
@Override public int runApp(List<String> args) {
@@ -49,7 +49,7 @@ import com.zwitserloot.cmdreader.Requires;
import com.zwitserloot.cmdreader.Shorthand;
@ProviderFor(LombokApp.class)
public class CreateLombokRuntimeApp implements LombokApp {
public class CreateLombokRuntimeApp extends LombokApp {
private List<RuntimeDependencyInfo> infoObjects;
@Override public String getAppName() {
@@ -64,7 +64,7 @@ public class CreateLombokRuntimeApp implements LombokApp {
}
@Override public List<String> getAppAliases() {
return Arrays.asList("createRuntime", "runtime");
return Arrays.asList("runtime");
}
private static class CmdArgs {
@@ -40,7 +40,7 @@ import lombok.core.LombokApp;
import org.mangosdk.spi.ProviderFor;
@ProviderFor(LombokApp.class)
public class DelombokApp implements LombokApp {
public class DelombokApp extends LombokApp {
@Override public int runApp(List<String> args) throws Exception {
try {
Class.forName("com.sun.tools.javac.main.JavaCompiler");
@@ -245,7 +245,7 @@ public class DelombokApp implements LombokApp {
}
@Override public List<String> getAppAliases() {
return Arrays.asList("unlombok", "delombok");
return Arrays.asList("unlombok");
}
@Override public String getAppDescription() {
+4 -12
View File
@@ -111,7 +111,7 @@ public class Installer {
}
@ProviderFor(LombokApp.class)
public static class GraphicalInstallerApp implements LombokApp {
public static class GraphicalInstallerApp extends LombokApp {
@Override public String getAppName() {
return "installer";
}
@@ -121,7 +121,7 @@ public class Installer {
}
@Override public List<String> getAppAliases() {
return Arrays.asList("installer", "");
return Arrays.asList("");
}
@Override public int runApp(List<String> args) throws Exception {
@@ -130,7 +130,7 @@ public class Installer {
}
@ProviderFor(LombokApp.class)
public static class CommandLineInstallerApp implements LombokApp {
public static class CommandLineInstallerApp extends LombokApp {
@Override public String getAppName() {
return "install";
}
@@ -139,17 +139,13 @@ public class Installer {
return "Runs the 'handsfree' command line scriptable installer.";
}
@Override public List<String> getAppAliases() {
return Arrays.asList("install");
}
@Override public int runApp(List<String> args) throws Exception {
return cliInstaller(false, args);
}
}
@ProviderFor(LombokApp.class)
public static class CommandLineUninstallerApp implements LombokApp {
public static class CommandLineUninstallerApp extends LombokApp {
@Override public String getAppName() {
return "uninstall";
}
@@ -158,10 +154,6 @@ public class Installer {
return "Runs the 'handsfree' command line scriptable uninstaller.";
}
@Override public List<String> getAppAliases() {
return Arrays.asList("uninstall");
}
@Override public int runApp(List<String> args) throws Exception {
return cliInstaller(true, args);
}