diff options
Diffstat (limited to 'src/installer/lombok/installer/eclipse/STSLocationProvider.java')
-rw-r--r-- | src/installer/lombok/installer/eclipse/STSLocationProvider.java | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/installer/lombok/installer/eclipse/STSLocationProvider.java b/src/installer/lombok/installer/eclipse/STSLocationProvider.java new file mode 100644 index 00000000..220eb184 --- /dev/null +++ b/src/installer/lombok/installer/eclipse/STSLocationProvider.java @@ -0,0 +1,48 @@ +package lombok.installer.eclipse; + +import java.io.File; +import java.util.Arrays; +import java.util.List; +import java.util.regex.Pattern; + +import lombok.installer.CorruptedIdeLocationException; +import lombok.installer.IdeLocation; +import lombok.installer.IdeLocationProvider; +import lombok.installer.IdeFinder.OS; + +import org.mangosdk.spi.ProviderFor; + +@ProviderFor(IdeLocationProvider.class) +public class STSLocationProvider extends EclipseLocationProvider { + @Override protected List<String> getEclipseExecutableNames() { + return Arrays.asList("sts.app", "sts.exe", "stsc.exe", "sts"); + } + + @Override protected String getIniName() { + return "STS.ini"; + } + + @Override protected IdeLocation makeLocation(String name, File ini) throws CorruptedIdeLocationException { + return new STSLocation(name, ini); + } + + @Override protected String getMacAppName() { + return "STS.app"; + } + + @Override protected String getUnixAppName() { + return "STS"; + } + + @Override public Pattern getLocationSelectors(OS os) { + switch (os) { + case MAC_OS_X: + return Pattern.compile("^(sts|sts\\.ini|sts\\.app)$", Pattern.CASE_INSENSITIVE); + case WINDOWS: + return Pattern.compile("^(stsc?\\.exe|sts\\.ini)$", Pattern.CASE_INSENSITIVE); + default: + case UNIX: + return Pattern.compile("^(sts|sts\\.ini)$", Pattern.CASE_INSENSITIVE); + } + } +} |