/**********************************************************************
* 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.ant.platform.core.delegate;
import org.ant4eclipse.ant.platform.core.ProjectSetComponent;
import org.ant4eclipse.ant.platform.core.WorkspaceComponent;
import org.ant4eclipse.ant.platform.core.WorkspaceProjectSetComponent;
import org.ant4eclipse.lib.platform.model.resource.EclipseProject;
import org.ant4eclipse.lib.platform.model.resource.Workspace;
import org.ant4eclipse.lib.platform.model.team.projectset.TeamProjectSet;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.ProjectComponent;
import java.io.File;
/**
* <p>
* Default implementation of the interface {@link WorkspaceProjectSetComponent}.
* </p>
*
* @author Gerd Wütherich (gerd@gerd-wuetherich.de)
*/
public class WorkspaceProjectSetDelegate implements WorkspaceProjectSetComponent {
/** - */
private ProjectSetComponent _projectSetComponent;
/** - */
private WorkspaceComponent _workspaceComponent;
/** - */
private boolean _allWorkspaceProjects;
/**
* <p>
* Creates a new instance of type {@link WorkspaceProjectSetDelegate}.
* </p>
*
* @param component
*/
public WorkspaceProjectSetDelegate(ProjectComponent component) {
this._projectSetComponent = new ProjectSetDelegate(component);
this._workspaceComponent = new WorkspaceDelegate(component);
}
/**
* {@inheritDoc}
*/
public boolean isAllWorkspaceProjects() {
return this._allWorkspaceProjects;
}
/**
* {@inheritDoc}
*/
public void requireAllWorkspaceProjectsOrProjectSetOrProjectNamesSet() {
if (!this._allWorkspaceProjects && !isProjectNamesSet() && !isTeamProjectSetSet()) {
// TODO
throw new BuildException("allWorkspaceProjects or projectNames or teamProjectSet has to be set!");
}
}
/**
* {@inheritDoc}
*/
public void setAllWorkspaceProjects(boolean allprojects) {
this._allWorkspaceProjects = allprojects;
}
/**
* {@inheritDoc}
*/
public String[] getProjectNames() {
// if 'allProjects' return all workspace projects
if (this._allWorkspaceProjects) {
// get workspace projects
EclipseProject[] projects = getWorkspace().getAllProjects();
// create project names array
String[] projectNames = new String[projects.length];
// set project names
for (int i = 0; i < projects.length; i++) {
EclipseProject project = projects[i];
projectNames[i] = project.getSpecifiedName();
}
return projectNames;
}
// return project set projects
else {
return this._projectSetComponent.getProjectNames();
}
}
/**
* {@inheritDoc}
*/
public TeamProjectSet getTeamProjectSet() {
return this._projectSetComponent.getTeamProjectSet();
}
/**
* {@inheritDoc}
*/
public boolean isProjectNamesSet() {
return this._projectSetComponent.isProjectNamesSet();
}
/**
* {@inheritDoc}
*/
public boolean isTeamProjectSetSet() {
return this._projectSetComponent.isTeamProjectSetSet();
}
/**
* {@inheritDoc}
*/
public void requireProjectNamesSet() {
this._projectSetComponent.requireProjectNamesSet();
}
/**
* {@inheritDoc}
*/
public void requireTeamProjectSetOrProjectNamesSet() {
this._projectSetComponent.requireTeamProjectSetOrProjectNamesSet();
}
/**
* {@inheritDoc}
*/
public void requireTeamProjectSetSet() {
this._projectSetComponent.requireTeamProjectSetSet();
}
/**
* {@inheritDoc}
*/
public void setProjectNames(String projectNames) {
this._projectSetComponent.setProjectNames(projectNames);
}
/**
* {@inheritDoc}
*/
public void setTeamProjectSet(File projectSetFile) {
this._projectSetComponent.setTeamProjectSet(projectSetFile);
}
/**
* {@inheritDoc}
*/
public Workspace getWorkspace() {
return this._workspaceComponent.getWorkspace();
}
/**
* {@inheritDoc}
*/
public File getWorkspaceDirectory() {
return this._workspaceComponent.getWorkspaceDirectory();
}
/**
* {@inheritDoc}
*/
public boolean isWorkspaceDirectorySet() {
return this._workspaceComponent.isWorkspaceDirectorySet();
}
/**
* {@inheritDoc}
*/
@Deprecated
public void setWorkspace(String workspace) {
this._workspaceComponent.setWorkspace(workspace);
}
/**
* {@inheritDoc}
*/
public void setWorkspaceDirectory(String workspaceDirectory) {
this._workspaceComponent.setWorkspaceDirectory(workspaceDirectory);
}
public String getWorkspaceId() {
return this._workspaceComponent.getWorkspaceId();
}
public boolean isWorkspaceIdSet() {
return this._workspaceComponent.isWorkspaceIdSet();
}
public void requireWorkspaceDirectoryOrWorkspaceIdSet() {
this._workspaceComponent.requireWorkspaceDirectoryOrWorkspaceIdSet();
}
public void setWorkspaceId(String identifier) {
this._workspaceComponent.setWorkspaceId(identifier);
}
}