/****************************************************************************** * Copyright (C) 2013 Jonah Graham * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Jonah Graham <jonah@kichwacoders.com> - initial API and implementation ******************************************************************************/ package org.python.pydev.ui.pythonpathconf; /** * Abstract IInterpreterProvider that represents an already installed * InterpreterProvider. * * This is a convenience abstract class to simplify implementations of * IInterpreterProvider that are not installable. */ public abstract class AlreadyInstalledInterpreterProvider implements IInterpreterProvider { @Override public boolean isInstalled() { return true; } @Override public void runInstall() { // Nothing to do } /** * Create a new array of already installed providers. * * Convenience method that creates an array that can be returned from * {@link IInterpreterProviderFactory#getInterpreterProviders(org.python.pydev.ui.pythonpathconf.IInterpreterProviderFactory.InterpreterType)} * * @param name * Name of the Interpreter, see * {@link IInterpreterProvider#getName()} * @param executableOrJar * The Executable name, or Jar name, see * {@link IInterpreterProvider#getExecutableOrJar()} * @return An array length 1 for the provided executableOrJar */ static public IInterpreterProvider[] create(String name, String executableOrJar) { return create(name, new String[] { executableOrJar }); } /** * Create a new array of already installed providers. * * Convenience method that creates an array that can be returned from * {@link IInterpreterProviderFactory#getInterpreterProviders(org.python.pydev.ui.pythonpathconf.IInterpreterProviderFactory.InterpreterType)} * * @param name * Name of the Interpreter, see * {@link IInterpreterProvider#getName()} * @param executableOrJars * An array of the Executable name, or Jar name, see * {@link IInterpreterProvider#getExecutableOrJar()} * @return An array the same length as executableOrJars */ static public IInterpreterProvider[] create(final String name, final String[] executableOrJars) { IInterpreterProvider[] providers = new IInterpreterProvider[executableOrJars.length]; for (int i = 0; i < executableOrJars.length; i++) { final String executableOrJar = executableOrJars[i]; providers[i] = new AlreadyInstalledInterpreterProvider() { @Override public String getExecutableOrJar() { return executableOrJar; } @Override public String getName() { return name; } }; } return providers; } }