/******************************************************************************* * Copyright (c) 2007, 2008 Borland Software Corporation and others. * * 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: * Borland Software Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.m2m.internal.qvt.oml.samples.ui; import java.util.ArrayList; import org.eclipse.core.resources.IProject; /** * Provides sample project information - default name, path to ZIP file with project content */ public class SampleProject { public static interface Action { void perform(SampleProject sample, IProject project) throws Exception; } public SampleProject(final String name, final String archive, final String namespace) { this(name, archive, namespace, null); } public SampleProject(final String name, final String archive, final String namespace, final String fileToOpen) { this(name, archive, namespace, fileToOpen, Messages.SamplesWizardPage_projectName); } /** * @param name new project default name * @param archive plug-in bundle relative path to ZIP file that contains project content * @param namespace plug-in bundle symbolic name * @param fileToOpen file to open after project creation * @param label a label to be shown in wizard */ public SampleProject(final String name, final String archive, final String namespace, final String fileToOpen, String label) { myName = name; myArchive = archive; myNamespace = namespace; myFileToOpen = fileToOpen; myLabel = label; } public String getName() { return myName; } public void setName(final String name) { myName = name; } public String getArchive() { return myArchive; } public String getNamespace() { return myNamespace; } public String getFileToOpen() { return myFileToOpen; } public String getLabel() { return myLabel; } public String getDescription() { return myDescription; } public void setDescription(String description) { myDescription = description; } public String getHelpHref() { return myHelpHref; } public void setHelpHref(String helpHref) { myHelpHref = helpHref; } public void performActions(IProject project) throws Exception { for (Action action : myActions) { action.perform(this, project); } } public void addAction(Action action) { myActions.add(action); } private String myName; private String myLabel; private final String myArchive; private final String myNamespace; private final String myFileToOpen; private ArrayList<Action> myActions = new ArrayList<Action>(2); private String myDescription; private String myHelpHref; }