/* * Copyright 2015 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.rf.ide.core.executor; import java.util.ArrayList; import java.util.EnumSet; import java.util.List; public enum SuiteExecutor { Python { @Override public String executableName() { return "python" + getExtension(); } }, Jython { @Override public String executableName() { return "jython" + getExtension(); } }, IronPython { @Override public String executableName() { return "ipy" + getExtension(); } }, IronPython64 { @Override public String executableName() { return "ipy64" + getExtension(); } }, PyPy { @Override public String executableName() { return "pypy" + getExtension(); } }; public static SuiteExecutor fromName(final String name) { return SuiteExecutor.valueOf(name); } public static List<String> allExecutorNames() { final List<String> names = new ArrayList<>(); for (final SuiteExecutor executor : EnumSet.allOf(SuiteExecutor.class)) { names.add(executor.name()); } return names; } public abstract String executableName(); private static String getExtension() { return RedSystemProperties.isWindowsPlatform() ? ".exe" : ""; } }