/**********************************************************************
* Copyright (c) 2005-2009 ant4eclipse project team.
*
* 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:
* Nils Hartmann, Daniel Kasmeroglu, Gerd Wuetherich
**********************************************************************/
package org.ant4eclipse.lib.pydt.model.pyre;
import org.ant4eclipse.lib.core.data.Version;
import org.ant4eclipse.lib.pydt.model.PythonInterpreter;
import java.io.File;
/**
* Each runtime is a combination of a predefined set of types as provided with a python release.
*
* @author Daniel Kasmeroglu (Daniel.Kasmeroglu@Kasisoft.net)
*/
public interface PythonRuntime {
/**
* Returns the id of the {@link PythonRuntime}.
*
* @return The id of the {@link PythonRuntime}. Neither <code>null</code> nor empty.
*/
String getId();
/**
* Returns the location of the {@link PythonRuntime} within the filesystem.
*
* @return The location of the {@link PythonRuntime}. Not <code>null</code>.
*/
File getLocation();
/**
* Returns the version of this runtime.
*
* @return The version of this runtime. Not <code>null</code>.
*/
Version getVersion();
/**
* Returns a list of all libraries used for this runtime. This might be an egg, a jar, a zip or a directory.
*
* @return A list of all libraries. Not <code>null</code>.
*/
File[] getLibraries();
/**
* Returns a datastructure representing the associated python interpreter.
*
* @return A datastructure representing the associated python interpreter. Not <code>null</code>.
*/
PythonInterpreter getInterpreter();
/**
* Returns the location of the executable responsible to launch the python scripts.
*
* @return The location of the executable responsible to launch the python scripts. Not <code>null</code>.
*/
File getExecutable();
} /* ENDINTERFACE */