/********************************************************************** * 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.testframework; import java.io.File; import java.net.URL; /** * Simple interface allowing to use the different varieties of python project natures to be tested using the same * testcode. * * @author Daniel Kasmeroglu (Daniel.Kasmeroglu@Kasisoft.net) */ public interface PythonProjectBuilder { /** * Returns the name of the associated project. * * @return The name of the associated project. Neither <code>null</code> nor empty. */ String getProjectName(); /** * Establishs a project dependency to another project referred using the supplied name. * * @param projectname * The name of the project that has to be used. Neither <code>null</code> nor empty. * @param export * <code>true</code> <=> This dependency shall be exported. */ void useProject(String projectname, boolean export); /** * Changes the default source folder name. * * @param sourcename * The new name of the default source folder. Neither <code>null</code> nor empty. */ void setSourceFolder(String sourcename); /** * Adds another source folder to this project. * * @param additionalfolder * An additional source folder. Neither <code>null</code> nor empty. */ void addSourceFolder(String additionalfolder); /** * Populates the supplied workspace builder with the content of this project. * * @param workspacebuilder * The workspace builder which should be made aware of this project. Not <code>null</code>. * * @return The location of the project directory. Not <code>null</code>. */ File populate(WorkspaceBuilder workspacebuilder); /** * Stores a build script to the projects folder. * * @param location * The location of the build script. Not <code>null</code>. */ void setBuildScript(URL location); /** * Adds an internal library to the project. * * @param location * The location of the internal library. Not <code>null</code>. * * @return The relative location within the project (project relative). Neither <code>null</code> nor empty. */ String importInternalLibrary(URL location); } /* ENDINTERFACE */