diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.releng.setup/src/org')
81 files changed, 12941 insertions, 3541 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Activator.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java index 49daa4e6df..5bcf7a3b8b 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Activator.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java @@ -8,12 +8,13 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.internal.setup; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Plugin; import org.eclipse.core.runtime.Status; +import org.eclipse.ui.IStartup; import org.osgi.framework.BundleContext; @@ -24,9 +25,14 @@ public class Activator extends Plugin { public static final String PLUGIN_ID = "org.eclipse.emf.cdo.releng.setup"; + public static final boolean SETUP_IDE = "true".equalsIgnoreCase(System.getProperty( + "org.eclipse.emf.cdo.releng.setup.ide", "false")); + private static Activator plugin; - static BundleContext bundleContext; + private static BundleContext bundleContext; + + private SetupTaskPerformer setupTaskPerformer; public Activator() { @@ -38,11 +44,37 @@ public class Activator extends Plugin super.start(context); bundleContext = context; plugin = this; + + try + { + if (SETUP_IDE) + { + setupTaskPerformer = new SetupTaskPerformer(false); + setupTaskPerformer.perform(); + } + } + catch (Exception ex) + { + log(ex); + } } @Override public void stop(BundleContext context) throws Exception { + try + { + if (setupTaskPerformer != null) + { + setupTaskPerformer.dispose(); + setupTaskPerformer = null; + } + } + catch (Exception ex) + { + log(ex); + } + plugin = null; super.stop(context); } @@ -86,8 +118,23 @@ public class Activator extends Plugin return new Status(IStatus.ERROR, PLUGIN_ID, msg, t); } + public static BundleContext getBundleContext() + { + return bundleContext; + } + public static Activator getDefault() { return plugin; } + + /** + * @author Eike Stepper + */ + public static final class EarlyStartup implements IStartup + { + public void earlyStartup() + { + } + } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java new file mode 100644 index 0000000000..a101cd47c5 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java @@ -0,0 +1,540 @@ +/* + * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.internal.setup; + +import org.eclipse.emf.cdo.releng.internal.setup.ui.ProgressLogDialog; +import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.Setup; +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.util.OS; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable; + +import org.eclipse.emf.common.util.BasicEList; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IPath; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; + +import java.io.File; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.ListIterator; +import java.util.Map; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @author Eike Stepper + */ +public class SetupTaskPerformer extends HashMap<Object, Object> implements SetupTaskContext +{ + private static final String RELENG_URL = System.getProperty("releng.url", + "http://download.eclipse.org/modeling/emf/cdo/updates/integration").replace('\\', '/'); + + private static final long serialVersionUID = 1L; + + private static ProgressLog progress; + + private Trigger trigger; + + private File branchDir; + + private Setup setup; + + private transient boolean restartNeeded; + + private List<String> logMessageBuffer; + + public SetupTaskPerformer(File branchDir) + { + trigger = Trigger.BOOTSTRAP; + + this.branchDir = branchDir; + + initialize(); + } + + public SetupTaskPerformer(boolean manual) throws Exception + { + trigger = manual ? Trigger.MANUAL : Trigger.STARTUP; + + IPath branchDirPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().removeLastSegments(1); + branchDir = new File(branchDirPath.toOSString()).getCanonicalFile(); + + initialize(); + } + + private void initialize() + { + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xmi", new XMIResourceFactoryImpl()); + + URI uri = URI.createFileURI(branchDir.toString() + "/setup.xmi"); + Resource resource = resourceSet.getResource(uri, true); + + setup = (Setup)resource.getContents().get(0); + + Branch branch = setup.getBranch(); + String branchName = branch.getName(); + + Project project = branch.getProject(); + String projectName = project.getName(); + + put("setup.git.prefix", setup.getPreferences().getGitPrefix()); + put("setup.install.dir", getInstallDir()); + put("setup.project.dir", getProjectDir()); + put("setup.branch.dir", getBranchDir()); + put("setup.eclipse.dir", getEclipseDir()); + put("setup.tp.dir", getTargetPlatformDir()); + put("setup.ws.dir", getWorkspaceDir()); + put("setup.project.name", projectName); + put("setup.branch.name", branchName); + put("releng.url", RELENG_URL); + } + + public void dispose() + { + setup = null; + branchDir = null; + } + + public void log(String line) + { + if (progress != null) + { + if (logMessageBuffer != null) + { + for (String value : logMessageBuffer) + { + progress.log(value); + } + + logMessageBuffer = null; + } + + progress.log(line); + } + else + { + if (logMessageBuffer == null) + { + logMessageBuffer = new ArrayList<String>(); + } + + logMessageBuffer.add(line); + } + } + + public boolean isCancelled() + { + if (progress != null) + { + return progress.isCancelled(); + } + + return false; + } + + public Trigger getTrigger() + { + return trigger; + } + + public boolean isRestartNeeded() + { + return restartNeeded; + } + + public void setRestartNeeded() + { + restartNeeded = true; + } + + private static final Pattern PATTERN = Pattern.compile("\\$\\{([^${}|]+)(\\|([^}]+))?}"); + + protected String lookup(String key) + { + Object object = get(key); + if (object != null) + { + return object.toString(); + } + + return System.getProperty(key, key); + } + + interface StringFilter + { + public String filter(String value); + } + + private static final Map<String, StringFilter> FILTERS = new HashMap<String, StringFilter>(); + + static + { + FILTERS.put("uri", new StringFilter() + { + public String filter(String value) + { + return URI.createFileURI(value).toString(); + } + }); + FILTERS.put("upper", new StringFilter() + { + public String filter(String value) + { + return value.toUpperCase(); + } + }); + FILTERS.put("lower", new StringFilter() + { + public String filter(String value) + { + return value.toLowerCase(); + } + }); + } + + protected String filter(String value, String filterName) + { + StringFilter filter = FILTERS.get(filterName); + if (filter != null) + { + return filter.filter(value); + } + + return value; + } + + public String expandString(String string) + { + StringBuilder result = new StringBuilder(); + int previous = 0; + for (Matcher matcher = PATTERN.matcher(string); matcher.find();) + { + result.append(string.substring(previous, matcher.start())); + String key = matcher.group(1); + String value = lookup(key); + String filters = matcher.group(3); + if (filters != null) + { + for (String filterName : filters.split("\\|")) + { + value = filter(value, filterName); + } + } + result.append(value); + previous = matcher.end(); + } + result.append(string.substring(previous)); + return result.toString(); + } + + public OS getOS() + { + return OS.INSTANCE; + } + + public String getP2ProfileName() + { + Branch branch = setup.getBranch(); + Project project = branch.getProject(); + + String profileName = project.getName() + "_" + branch.getName(); + profileName = profileName.replace('.', '_'); + profileName = profileName.replace('-', '_'); + profileName = profileName.replace('/', '_'); + profileName = profileName.replace('\\', '_'); + return profileName; + } + + public File getP2ProfileDir() + { + return new File(getP2AgentDir(), "org.eclipse.equinox.p2.engine/profileRegistry/" + getP2ProfileName() + ".profile"); + } + + public File getP2AgentDir() + { + return new File(getP2PoolDir(), "p2"); + } + + public File getP2PoolDir() + { + return new File(getInstallDir(), ".p2pool-ide"); + } + + public File getInstallDir() + { + return getProjectDir().getParentFile(); + } + + public File getProjectDir() + { + return branchDir.getParentFile(); + } + + public File getBranchDir() + { + return branchDir; + } + + public File getEclipseDir() + { + return new File(branchDir, "eclipse"); + } + + // TODO Is this Bucky-specific? + public File getTargetPlatformDir() + { + return new File(branchDir, "tp"); + } + + public File getWorkspaceDir() + { + return new File(branchDir, "ws"); + } + + public Setup getSetup() + { + return setup; + } + + public void perform() throws Exception + { + EList<SetupTask> setupTasks = setup.getSetupTasks(true, trigger); + if (setupTasks.isEmpty()) + { + return; + } + + Map<SetupTask, SetupTask> substitutions = getSubstitutions(setupTasks); + setup = copySetup(setupTasks, substitutions); + + perform(setupTasks); + } + + private void perform(EList<SetupTask> setupTasks) throws Exception + { + final EList<SetupTask> neededTasks = getNeededTasks(setupTasks); + if (neededTasks.isEmpty()) + { + return; + } + + if (Activator.SETUP_IDE && trigger != Trigger.MANUAL) + { + File logFile = new File(getInstallDir(), "setup.log"); + IWorkbenchWindow window = PlatformUI.getWorkbench().getWorkbenchWindows()[0]; + final Shell shell = window.getShell(); + ProgressLogDialog.run(shell, logFile, "Setting up IDE", new ProgressLogRunnable() + { + public boolean run(ProgressLog log) throws Exception + { + doPerform(neededTasks); + return isRestartNeeded(); + } + }); + } + else + { + doPerform(neededTasks); + } + } + + private void doPerform(EList<SetupTask> neededTasks) throws Exception + { + Branch branch = setup.getBranch(); + log("Setting up " + branch.getProject().getName() + " " + branch.getName()); + + for (SetupTask neededTask : neededTasks) + { + neededTask.perform(this); + neededTask.dispose(); + } + } + + private Map<SetupTask, SetupTask> getSubstitutions(EList<SetupTask> setupTasks) + { + SetupTaskComparator.sort(setupTasks); + + Map<Object, SetupTask> overrides = new HashMap<Object, SetupTask>(); + Map<SetupTask, SetupTask> substitutions = new HashMap<SetupTask, SetupTask>(); + + for (SetupTask setupTask : setupTasks) + { + Object overrideToken = setupTask.getOverrideToken(); + SetupTask overriddenTask = overrides.put(overrideToken, setupTask); + if (overriddenTask != null) + { + substitutions.put(overriddenTask, setupTask); + } + } + + // Shorten the paths through the substitutions map + for (Map.Entry<SetupTask, SetupTask> entry : substitutions.entrySet()) + { + SetupTask task = entry.getValue(); + + for (;;) + { + SetupTask overridingTask = substitutions.get(task); + if (overridingTask == null) + { + break; + } + + entry.setValue(overridingTask); + } + } + + return substitutions; + } + + private Setup copySetup(EList<SetupTask> setupTasks, Map<SetupTask, SetupTask> substitutions) + { + Set<EObject> roots = new LinkedHashSet<EObject>(); + roots.add(setup); + + for (EObject eObject : setup.eCrossReferences()) + { + EObject rootContainer = EcoreUtil.getRootContainer(eObject); + roots.add(rootContainer); + } + + EcoreUtil.Copier copier = new EcoreUtil.Copier(); + Setup setup = (Setup)copier.copyAll(roots).iterator().next(); + + for (Map.Entry<SetupTask, SetupTask> entry : substitutions.entrySet()) + { + SetupTask overriddenTask = entry.getKey(); + SetupTask overridingTask = entry.getValue(); + + EObject copy = copier.get(overridingTask); + copier.put(overriddenTask, copy); + } + + copier.copyReferences(); + + for (ListIterator<SetupTask> it = setupTasks.listIterator(); it.hasNext();) + { + SetupTask setupTask = it.next(); + if (substitutions.containsKey(setupTask)) + { + it.remove(); + } + else + { + SetupTask copy = (SetupTask)copier.get(setupTask); + it.set(copy); + } + } + + SetupTaskComparator.sort(setupTasks); + return setup; + } + + private EList<SetupTask> getNeededTasks(EList<SetupTask> setupTasks) throws Exception + { + EList<SetupTask> result = new BasicEList<SetupTask>(); + + for (Iterator<SetupTask> it = setupTasks.iterator(); it.hasNext();) + { + SetupTask setupTask = it.next(); + if (setupTask.isNeeded(this)) + { + result.add(setupTask); + } + else + { + setupTask.dispose(); + } + } + + return result; + } + + public static ProgressLog getProgress() + { + return progress; + } + + public static void setProgress(ProgressLog progress) + { + SetupTaskPerformer.progress = progress; + } + + /** + * @author Eike Stepper + */ + public static class SetupTaskComparator implements Comparator<SetupTask> + { + public static void sort(EList<SetupTask> setupTasks) + { + Collections.sort(setupTasks, new SetupTaskComparator()); + } + + public int compare(SetupTask t1, SetupTask t2) + { + boolean t1RequiresT2 = t1.requires(t2); + boolean t2RequiresT1 = t2.requires(t1); + if (t1RequiresT2 && t2RequiresT1) + { + throw new IllegalStateException("Requirements cycle detected between " + t1 + " and " + t2); + } + + if (t1RequiresT2 && !t2RequiresT1) + { + return 1; + } + + if (!t1RequiresT2 && t2RequiresT1) + { + return -1; + } + + int scope1 = t1.getScope().getValue(); + int scope2 = t2.getScope().getValue(); + if (scope1 < scope2) + { + return -1; + } + + if (scope1 > scope2) + { + return 1; + } + + String uri1 = EcoreUtil.getURI(t1).toString(); + String uri2 = EcoreUtil.getURI(t2).toString(); + return uri1.compareTo(uri2); // Arbitrary but symmetric within one ResourceSet + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java new file mode 100644 index 0000000000..a157fba1e6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java @@ -0,0 +1,348 @@ +/* + * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.internal.setup.ui; + +import org.eclipse.emf.cdo.releng.internal.setup.Activator; +import org.eclipse.emf.cdo.releng.internal.setup.SetupTaskPerformer; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogProvider; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable; + +import org.eclipse.net4j.util.io.IOUtil; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.OperationCanceledException; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.dialogs.TitleAreaDialog; +import org.eclipse.swt.SWT; +import org.eclipse.swt.SWTException; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.internal.progress.ProgressManager; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.PrintStream; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog +{ + public static final String TITLE = "Setup Development Environment"; + + private static final SimpleDateFormat TIME = new SimpleDateFormat("HH:mm:ss"); + + private static final SimpleDateFormat DATE_TIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + private PrintStream logStream; + + private Text text; + + private Button okButton; + + private Button cancelButton; + + private boolean cancelled; + + private String lastLine; + + private ProgressLogDialog(Shell parentShell, File logFile) + { + super(parentShell); + if (logFile != null) + { + try + { + logFile.getParentFile().mkdirs(); + logStream = new PrintStream(new FileOutputStream(logFile, true)); + } + catch (FileNotFoundException ex) + { + throw new RuntimeException(ex); + } + } + + setHelpAvailable(false); + setShellStyle(SWT.BORDER | SWT.MAX | SWT.RESIZE | SWT.TITLE | SWT.APPLICATION_MODAL); + } + + @Override + protected Control createDialogArea(Composite parent) + { + setMessage("Please wait until the setup process is finished and the OK button is enabled..."); + setTitleImage(ResourceManager.getPluginImage("org.eclipse.emf.cdo.releng.setup", "icons/install_wiz.gif")); + getShell().setText(TITLE); + setTitle(TITLE); + + Composite area = (Composite)super.createDialogArea(parent); + Composite container = new Composite(area, SWT.NONE); + GridLayout gl_container = new GridLayout(1, false); + gl_container.marginWidth = 10; + gl_container.marginHeight = 10; + container.setLayout(gl_container); + container.setLayoutData(new GridData(GridData.FILL_BOTH)); + + text = new Text(container, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.CANCEL | SWT.MULTI); + text.setFont(SWTResourceManager.getFont("Courier New", 10, SWT.NORMAL)); + text.setEditable(false); + text.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); + text.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE)); + + return area; + } + + @Override + protected void createButtonsForButtonBar(Composite parent) + { + okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true); + okButton.setEnabled(false); + + cancelButton = createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false); + cancelButton.addSelectionListener(new SelectionAdapter() + { + @Override + public void widgetSelected(SelectionEvent e) + { + cancelled = true; + setFinished(); + } + }); + } + + @Override + public synchronized void create() + { + super.create(); + SetupTaskPerformer.setProgress(this); + ProgressManager oldProgressProvider = ProgressManager.getInstance(); + ProgressLogProvider newProgressLogProvider = new ProgressLogProvider(this, oldProgressProvider); + Job.getJobManager().setProgressProvider(newProgressLogProvider); + } + + @Override + public boolean close() + { + SetupTaskPerformer.setProgress(null); + + if (logStream != null) + { + logStream.println(); + logStream.println(); + logStream.println(); + logStream.println(); + IOUtil.closeSilent(logStream); + } + + return super.close(); + } + + /** + * Return the initial size of the dialog. + */ + @Override + protected Point getInitialSize() + { + return new Point(1000, 600); + } + + public boolean isCancelled() + { + return cancelled; + } + + public void log(String line) + { + if (isCancelled()) + { + throw new OperationCanceledException(); + } + + if (line == null || line.length() == 0 || Character.isLowerCase(line.charAt(0)) || line.equals("Updating") + || line.startsWith("Scanning Git") || line.startsWith("Re-indexing") || line.endsWith(" remaining.") + || line.startsWith("Calculating Decorations") || line.startsWith("Decorating") || line.startsWith("http://") + || line.startsWith("The user operation is waiting") || line.startsWith("Git repository changed") + || line.startsWith("Refreshing ") || line.startsWith("Opening ") || line.startsWith("Connecting project ") + || line.startsWith("Searching for associated repositories.") || line.startsWith("Preparing type ") + || line.startsWith("Loading project description") || line.startsWith("Generating cspec from PDE artifacts") + || line.startsWith("Reporting encoding changes") || line.startsWith("Saving") + || line.startsWith("Downloading software") || line.startsWith("Java indexing...")) + { + return; + } + + if (line.endsWith("/s)")) + { + int index = line.lastIndexOf(" ("); + if (index != -1) + { + line = line.substring(0, index); + } + } + + if (line.equals(lastLine)) + { + return; + } + + lastLine = line; + + final String message = line + "\n"; + final Date date = new Date(); + + if (logStream != null) + { + try + { + logStream.print("[" + DATE_TIME.format(date) + "] " + message); + logStream.flush(); + } + catch (Exception ex) + { + Activator.log(ex); + } + } + + asyncExec(new Runnable() + { + public void run() + { + try + { + text.append("[" + TIME.format(date) + "] " + message); + } + catch (Exception ex) + { + //$FALL-THROUGH$ + } + } + }); + } + + public void setFinished() + { + Job.getJobManager().setProgressProvider(ProgressManager.getInstance()); + + asyncExec(new Runnable() + { + public void run() + { + try + { + okButton.setEnabled(true); + cancelButton.setEnabled(false); + } + catch (Exception ex) + { + //$FALL-THROUGH$ + } + } + }); + } + + private void asyncExec(Runnable runnable) + { + try + { + getShell().getDisplay().asyncExec(runnable); + } + catch (NullPointerException ex) + { + //$FALL-THROUGH$ + } + catch (SWTException ex) + { + if (ex.code != SWT.ERROR_WIDGET_DISPOSED) + { + throw ex; + } + + //$FALL-THROUGH$ + } + } + + public static void run(Shell shell, File logFile, final String jobName, final ProgressLogRunnable runnable) + { + try + { + final boolean[] restart = { false }; + final ProgressLogDialog dialog = new ProgressLogDialog(shell, logFile); + Runnable jobRunnable = new Runnable() + { + public void run() + { + Job job = new Job(jobName) + { + @Override + protected IStatus run(IProgressMonitor monitor) + { + long start = System.currentTimeMillis(); + + try + { + dialog.log(jobName); + restart[0] = runnable.run(dialog); + } + catch (Exception ex) + { + Activator.log(ex); + dialog.log("An error occured: " + ex.getMessage()); + dialog.log("The Error Log contains more infos..."); + } + finally + { + long seconds = (System.currentTimeMillis() - start) / 1000; + dialog.log("Took " + seconds + " seconds."); + dialog.log("Press OK to close the dialog" + (restart[0] ? " and restart Eclipse" : "") + "..."); + dialog.setFinished(); + } + + return Status.OK_STATUS; + } + }; + + job.schedule(); + + if (dialog.open() == ProgressLogDialog.OK && restart[0]) + { + PlatformUI.getWorkbench().restart(); + } + } + }; + + if (Display.getCurrent() == shell.getDisplay()) + { + jobRunnable.run(); + } + else + { + shell.getDisplay().asyncExec(jobRunnable); + } + } + catch (Exception ex) + { + Activator.log(ex); + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java new file mode 100644 index 0000000000..889bda0117 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java @@ -0,0 +1,511 @@ +/******************************************************************************* + * Copyright (c) 2011 Google, Inc. + * 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: + * Google, Inc. - initial API and implementation + *******************************************************************************/ +package org.eclipse.emf.cdo.releng.internal.setup.ui; + +import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.resource.CompositeImageDescriptor; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.Point; +import org.eclipse.swt.graphics.Rectangle; + +import org.osgi.framework.Bundle; + +import java.io.File; +import java.io.InputStream; +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +/** + * Utility class for managing OS resources associated with SWT/JFace controls such as colors, fonts, images, + * etc. + * + * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the + * operating system resources managed by cached objects when those objects and OS resources are no longer + * needed (e.g. on application shutdown) + * + * This class may be freely distributed as part of any application or plugin. + * <p> + * + * @author scheglov_ke + * @author Dan Rubel + */ +public class ResourceManager extends SWTResourceManager +{ + // ////////////////////////////////////////////////////////////////////////// + // + // Image + // + // ////////////////////////////////////////////////////////////////////////// + private static Map<ImageDescriptor, Image> m_descriptorImageMap = new HashMap<ImageDescriptor, Image>(); + + /** + * Returns an {@link ImageDescriptor} stored in the file at the specified path relative to the specified + * class. + * + * @param clazz + * the {@link Class} relative to which to find the image descriptor. + * @param path + * the path to the image file. + * @return the {@link ImageDescriptor} stored in the file at the specified path. + */ + public static ImageDescriptor getImageDescriptor(Class<?> clazz, String path) + { + return ImageDescriptor.createFromFile(clazz, path); + } + + /** + * Returns an {@link ImageDescriptor} stored in the file at the specified path. + * + * @param path + * the path to the image file. + * @return the {@link ImageDescriptor} stored in the file at the specified path. + */ + public static ImageDescriptor getImageDescriptor(String path) + { + try + { + return ImageDescriptor.createFromURL(new File(path).toURI().toURL()); + } + catch (MalformedURLException e) + { + return null; + } + } + + /** + * Returns an {@link Image} based on the specified {@link ImageDescriptor}. + * + * @param descriptor + * the {@link ImageDescriptor} for the {@link Image}. + * @return the {@link Image} based on the specified {@link ImageDescriptor}. + */ + public static Image getImage(ImageDescriptor descriptor) + { + if (descriptor == null) + { + return null; + } + Image image = m_descriptorImageMap.get(descriptor); + if (image == null) + { + image = descriptor.createImage(); + m_descriptorImageMap.put(descriptor, image); + } + return image; + } + + /** + * Maps images to decorated images. + */ + @SuppressWarnings("unchecked") + private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY]; + + /** + * Returns an {@link Image} composed of a base image decorated by another image. + * + * @param baseImage + * the base {@link Image} that should be decorated. + * @param decorator + * the {@link Image} to decorate the base image. + * @return {@link Image} The resulting decorated image. + */ + public static Image decorateImage(Image baseImage, Image decorator) + { + return decorateImage(baseImage, decorator, BOTTOM_RIGHT); + } + + /** + * Returns an {@link Image} composed of a base image decorated by another image. + * + * @param baseImage + * the base {@link Image} that should be decorated. + * @param decorator + * the {@link Image} to decorate the base image. + * @param corner + * the corner to place decorator image. + * @return the resulting decorated {@link Image}. + */ + public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) + { + if (corner <= 0 || corner >= LAST_CORNER_KEY) + { + throw new IllegalArgumentException("Wrong decorate corner"); + } + Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner]; + if (cornerDecoratedImageMap == null) + { + cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>(); + m_decoratedImageMap[corner] = cornerDecoratedImageMap; + } + Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage); + if (decoratedMap == null) + { + decoratedMap = new HashMap<Image, Image>(); + cornerDecoratedImageMap.put(baseImage, decoratedMap); + } + // + Image result = decoratedMap.get(decorator); + if (result == null) + { + final Rectangle bib = baseImage.getBounds(); + final Rectangle dib = decorator.getBounds(); + final Point baseImageSize = new Point(bib.width, bib.height); + CompositeImageDescriptor compositImageDesc = new CompositeImageDescriptor() + { + @Override + protected void drawCompositeImage(int width, int height) + { + drawImage(baseImage.getImageData(), 0, 0); + if (corner == TOP_LEFT) + { + drawImage(decorator.getImageData(), 0, 0); + } + else if (corner == TOP_RIGHT) + { + drawImage(decorator.getImageData(), bib.width - dib.width, 0); + } + else if (corner == BOTTOM_LEFT) + { + drawImage(decorator.getImageData(), 0, bib.height - dib.height); + } + else if (corner == BOTTOM_RIGHT) + { + drawImage(decorator.getImageData(), bib.width - dib.width, bib.height - dib.height); + } + } + + @Override + protected Point getSize() + { + return baseImageSize; + } + }; + // + result = compositImageDesc.createImage(); + decoratedMap.put(decorator, result); + } + return result; + } + + /** + * Dispose all of the cached images. + */ + public static void disposeImages() + { + SWTResourceManager.disposeImages(); + // dispose ImageDescriptor images + { + for (Iterator<Image> I = m_descriptorImageMap.values().iterator(); I.hasNext();) + { + I.next().dispose(); + } + m_descriptorImageMap.clear(); + } + // dispose decorated images + for (int i = 0; i < m_decoratedImageMap.length; i++) + { + Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i]; + if (cornerDecoratedImageMap != null) + { + for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) + { + for (Image image : decoratedMap.values()) + { + image.dispose(); + } + decoratedMap.clear(); + } + cornerDecoratedImageMap.clear(); + } + } + // dispose plugin images + { + for (Iterator<Image> I = m_URLImageMap.values().iterator(); I.hasNext();) + { + I.next().dispose(); + } + m_URLImageMap.clear(); + } + } + + // ////////////////////////////////////////////////////////////////////////// + // + // Plugin images support + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Maps URL to images. + */ + private static Map<String, Image> m_URLImageMap = new HashMap<String, Image>(); + + /** + * Provider for plugin resources, used by WindowBuilder at design time. + */ + public interface PluginResourceProvider + { + URL getEntry(String symbolicName, String path); + } + + /** + * Instance of {@link PluginResourceProvider}, used by WindowBuilder at design time. + */ + private static PluginResourceProvider m_designTimePluginResourceProvider = null; + + /** + * Returns an {@link Image} based on a plugin and file path. + * + * @param plugin + * the plugin {@link Object} containing the image + * @param name + * the path to the image within the plugin + * @return the {@link Image} stored in the file at the specified path + * + * @deprecated Use {@link #getPluginImage(String, String)} instead. + */ + @Deprecated + public static Image getPluginImage(Object plugin, String name) + { + try + { + URL url = getPluginImageURL(plugin, name); + if (url != null) + { + return getPluginImageFromUrl(url); + } + } + catch (Throwable e) + { + // Ignore any exceptions + } + return null; + } + + /** + * Returns an {@link Image} based on a {@link Bundle} and resource entry path. + * + * @param symbolicName + * the symbolic name of the {@link Bundle}. + * @param path + * the path of the resource entry. + * @return the {@link Image} stored in the file at the specified path. + */ + public static Image getPluginImage(String symbolicName, String path) + { + try + { + URL url = getPluginImageURL(symbolicName, path); + if (url != null) + { + return getPluginImageFromUrl(url); + } + } + catch (Throwable e) + { + // Ignore any exceptions + } + return null; + } + + /** + * Returns an {@link Image} based on given {@link URL}. + */ + private static Image getPluginImageFromUrl(URL url) + { + try + { + try + { + String key = url.toExternalForm(); + Image image = m_URLImageMap.get(key); + if (image == null) + { + InputStream stream = url.openStream(); + try + { + image = getImage(stream); + m_URLImageMap.put(key, image); + } + finally + { + stream.close(); + } + } + return image; + } + catch (Throwable e) + { + // Ignore any exceptions + } + } + catch (Throwable e) + { + // Ignore any exceptions + } + return null; + } + + /** + * Returns an {@link ImageDescriptor} based on a plugin and file path. + * + * @param plugin + * the plugin {@link Object} containing the image. + * @param name + * the path to th eimage within the plugin. + * @return the {@link ImageDescriptor} stored in the file at the specified path. + * + * @deprecated Use {@link #getPluginImageDescriptor(String, String)} instead. + */ + @Deprecated + public static ImageDescriptor getPluginImageDescriptor(Object plugin, String name) + { + try + { + try + { + URL url = getPluginImageURL(plugin, name); + return ImageDescriptor.createFromURL(url); + } + catch (Throwable e) + { + // Ignore any exceptions + } + } + catch (Throwable e) + { + // Ignore any exceptions + } + return null; + } + + /** + * Returns an {@link ImageDescriptor} based on a {@link Bundle} and resource entry path. + * + * @param symbolicName + * the symbolic name of the {@link Bundle}. + * @param path + * the path of the resource entry. + * @return the {@link ImageDescriptor} based on a {@link Bundle} and resource entry path. + */ + public static ImageDescriptor getPluginImageDescriptor(String symbolicName, String path) + { + try + { + URL url = getPluginImageURL(symbolicName, path); + if (url != null) + { + return ImageDescriptor.createFromURL(url); + } + } + catch (Throwable e) + { + // Ignore any exceptions + } + return null; + } + + /** + * Returns an {@link URL} based on a {@link Bundle} and resource entry path. + */ + private static URL getPluginImageURL(String symbolicName, String path) + { + // try runtime plugins + { + Bundle bundle = Platform.getBundle(symbolicName); + if (bundle != null) + { + return bundle.getEntry(path); + } + } + // try design time provider + if (m_designTimePluginResourceProvider != null) + { + return m_designTimePluginResourceProvider.getEntry(symbolicName, path); + } + // no such resource + return null; + } + + /** + * Returns an {@link URL} based on a plugin and file path. + * + * @param plugin + * the plugin {@link Object} containing the file path. + * @param name + * the file path. + * @return the {@link URL} representing the file at the specified path. + * @throws Exception + */ + private static URL getPluginImageURL(Object plugin, String name) throws Exception + { + // try to work with 'plugin' as with OSGI BundleContext + try + { + Class<?> BundleClass = Class.forName("org.osgi.framework.Bundle"); //$NON-NLS-1$ + Class<?> BundleContextClass = Class.forName("org.osgi.framework.BundleContext"); //$NON-NLS-1$ + if (BundleContextClass.isAssignableFrom(plugin.getClass())) + { + Method getBundleMethod = BundleContextClass.getMethod("getBundle", new Class[0]); //$NON-NLS-1$ + Object bundle = getBundleMethod.invoke(plugin, new Object[0]); + // + Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$ + Constructor<?> pathConstructor = PathClass.getConstructor(new Class[] { String.class }); + Object path = pathConstructor.newInstance(new Object[] { name }); + // + Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$ + Class<?> PlatformClass = Class.forName("org.eclipse.core.runtime.Platform"); //$NON-NLS-1$ + Method findMethod = PlatformClass.getMethod("find", new Class[] { BundleClass, IPathClass }); //$NON-NLS-1$ + return (URL)findMethod.invoke(null, new Object[] { bundle, path }); + } + } + catch (Throwable e) + { + // Ignore any exceptions + } + // else work with 'plugin' as with usual Eclipse plugin + { + Class<?> PluginClass = Class.forName("org.eclipse.core.runtime.Plugin"); //$NON-NLS-1$ + if (PluginClass.isAssignableFrom(plugin.getClass())) + { + // + Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$ + Constructor<?> pathConstructor = PathClass.getConstructor(new Class[] { String.class }); + Object path = pathConstructor.newInstance(new Object[] { name }); + // + Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$ + Method findMethod = PluginClass.getMethod("find", new Class[] { IPathClass }); //$NON-NLS-1$ + return (URL)findMethod.invoke(plugin, new Object[] { path }); + } + } + return null; + } + + // ////////////////////////////////////////////////////////////////////////// + // + // General + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Dispose of cached objects and their underlying OS resources. This should only be called when the cached + * objects are no longer needed (e.g. on application shutdown). + */ + public static void dispose() + { + disposeColors(); + disposeFonts(); + disposeImages(); + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java new file mode 100644 index 0000000000..38dab08e60 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java @@ -0,0 +1,538 @@ +/******************************************************************************* + * Copyright (c) 2011 Google, Inc. + * 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: + * Google, Inc. - initial API and implementation + *******************************************************************************/ +package org.eclipse.emf.cdo.releng.internal.setup.ui; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.graphics.Cursor; +import org.eclipse.swt.graphics.Font; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.swt.graphics.GC; +import org.eclipse.swt.graphics.Image; +import org.eclipse.swt.graphics.ImageData; +import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.graphics.Rectangle; +import org.eclipse.swt.widgets.Display; + +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + +/** + * Utility class for managing OS resources associated with SWT controls such as colors, fonts, images, etc. + * <p> + * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the + * operating system resources managed by cached objects when those objects and OS resources are no longer + * needed (e.g. on application shutdown) + * <p> + * This class may be freely distributed as part of any application or plugin. + * <p> + * @author scheglov_ke + * @author Dan Rubel + */ +public class SWTResourceManager +{ + // ////////////////////////////////////////////////////////////////////////// + // + // Color + // + // ////////////////////////////////////////////////////////////////////////// + private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>(); + + /** + * Returns the system {@link Color} matching the specific ID. + * + * @param systemColorID + * the ID value for the color + * @return the system {@link Color} matching the specific ID + */ + public static Color getColor(int systemColorID) + { + Display display = Display.getCurrent(); + return display.getSystemColor(systemColorID); + } + + /** + * Returns a {@link Color} given its red, green and blue component values. + * + * @param r + * the red component of the color + * @param g + * the green component of the color + * @param b + * the blue component of the color + * @return the {@link Color} matching the given red, green and blue component values + */ + public static Color getColor(int r, int g, int b) + { + return getColor(new RGB(r, g, b)); + } + + /** + * Returns a {@link Color} given its RGB value. + * + * @param rgb + * the {@link RGB} value of the color + * @return the {@link Color} matching the RGB value + */ + public static Color getColor(RGB rgb) + { + Color color = m_colorMap.get(rgb); + if (color == null) + { + Display display = Display.getCurrent(); + color = new Color(display, rgb); + m_colorMap.put(rgb, color); + } + return color; + } + + /** + * Dispose of all the cached {@link Color}'s. + */ + public static void disposeColors() + { + for (Color color : m_colorMap.values()) + { + color.dispose(); + } + m_colorMap.clear(); + } + + // ////////////////////////////////////////////////////////////////////////// + // + // Image + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Maps image paths to images. + */ + private static Map<String, Image> m_imageMap = new HashMap<String, Image>(); + + /** + * Returns an {@link Image} encoded by the specified {@link InputStream}. + * + * @param stream + * the {@link InputStream} encoding the image data + * @return the {@link Image} encoded by the specified input stream + */ + protected static Image getImage(InputStream stream) throws IOException + { + try + { + Display display = Display.getCurrent(); + ImageData data = new ImageData(stream); + if (data.transparentPixel > 0) + { + return new Image(display, data, data.getTransparencyMask()); + } + return new Image(display, data); + } + finally + { + stream.close(); + } + } + + /** + * Returns an {@link Image} stored in the file at the specified path. + * + * @param path + * the path to the image file + * @return the {@link Image} stored in the file at the specified path + */ + public static Image getImage(String path) + { + Image image = m_imageMap.get(path); + if (image == null) + { + try + { + image = getImage(new FileInputStream(path)); + m_imageMap.put(path, image); + } + catch (Exception e) + { + image = getMissingImage(); + m_imageMap.put(path, image); + } + } + return image; + } + + /** + * Returns an {@link Image} stored in the file at the specified path relative to the specified class. + * + * @param clazz + * the {@link Class} relative to which to find the image + * @param path + * the path to the image file, if starts with <code>'/'</code> + * @return the {@link Image} stored in the file at the specified path + */ + public static Image getImage(Class<?> clazz, String path) + { + String key = clazz.getName() + '|' + path; + Image image = m_imageMap.get(key); + if (image == null) + { + try + { + image = getImage(clazz.getResourceAsStream(path)); + m_imageMap.put(key, image); + } + catch (Exception e) + { + image = getMissingImage(); + m_imageMap.put(key, image); + } + } + return image; + } + + private static final int MISSING_IMAGE_SIZE = 10; + + /** + * @return the small {@link Image} that can be used as placeholder for missing image. + */ + private static Image getMissingImage() + { + Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE); + // + GC gc = new GC(image); + gc.setBackground(getColor(SWT.COLOR_RED)); + gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE); + gc.dispose(); + // + return image; + } + + /** + * Style constant for placing decorator image in top left corner of base image. + */ + public static final int TOP_LEFT = 1; + + /** + * Style constant for placing decorator image in top right corner of base image. + */ + public static final int TOP_RIGHT = 2; + + /** + * Style constant for placing decorator image in bottom left corner of base image. + */ + public static final int BOTTOM_LEFT = 3; + + /** + * Style constant for placing decorator image in bottom right corner of base image. + */ + public static final int BOTTOM_RIGHT = 4; + + /** + * Internal value. + */ + protected static final int LAST_CORNER_KEY = 5; + + /** + * Maps images to decorated images. + */ + @SuppressWarnings("unchecked") + private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY]; + + /** + * Returns an {@link Image} composed of a base image decorated by another image. + * + * @param baseImage + * the base {@link Image} that should be decorated + * @param decorator + * the {@link Image} to decorate the base image + * @return {@link Image} The resulting decorated image + */ + public static Image decorateImage(Image baseImage, Image decorator) + { + return decorateImage(baseImage, decorator, BOTTOM_RIGHT); + } + + /** + * Returns an {@link Image} composed of a base image decorated by another image. + * + * @param baseImage + * the base {@link Image} that should be decorated + * @param decorator + * the {@link Image} to decorate the base image + * @param corner + * the corner to place decorator image + * @return the resulting decorated {@link Image} + */ + public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) + { + if (corner <= 0 || corner >= LAST_CORNER_KEY) + { + throw new IllegalArgumentException("Wrong decorate corner"); + } + Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner]; + if (cornerDecoratedImageMap == null) + { + cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>(); + m_decoratedImageMap[corner] = cornerDecoratedImageMap; + } + Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage); + if (decoratedMap == null) + { + decoratedMap = new HashMap<Image, Image>(); + cornerDecoratedImageMap.put(baseImage, decoratedMap); + } + // + Image result = decoratedMap.get(decorator); + if (result == null) + { + Rectangle bib = baseImage.getBounds(); + Rectangle dib = decorator.getBounds(); + // + result = new Image(Display.getCurrent(), bib.width, bib.height); + // + GC gc = new GC(result); + gc.drawImage(baseImage, 0, 0); + if (corner == TOP_LEFT) + { + gc.drawImage(decorator, 0, 0); + } + else if (corner == TOP_RIGHT) + { + gc.drawImage(decorator, bib.width - dib.width, 0); + } + else if (corner == BOTTOM_LEFT) + { + gc.drawImage(decorator, 0, bib.height - dib.height); + } + else if (corner == BOTTOM_RIGHT) + { + gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height); + } + gc.dispose(); + // + decoratedMap.put(decorator, result); + } + return result; + } + + /** + * Dispose all of the cached {@link Image}'s. + */ + public static void disposeImages() + { + // dispose loaded images + { + for (Image image : m_imageMap.values()) + { + image.dispose(); + } + m_imageMap.clear(); + } + // dispose decorated images + for (int i = 0; i < m_decoratedImageMap.length; i++) + { + Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i]; + if (cornerDecoratedImageMap != null) + { + for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) + { + for (Image image : decoratedMap.values()) + { + image.dispose(); + } + decoratedMap.clear(); + } + cornerDecoratedImageMap.clear(); + } + } + } + + // ////////////////////////////////////////////////////////////////////////// + // + // Font + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Maps font names to fonts. + */ + private static Map<String, Font> m_fontMap = new HashMap<String, Font>(); + + /** + * Maps fonts to their bold versions. + */ + private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>(); + + /** + * Returns a {@link Font} based on its name, height and style. + * + * @param name + * the name of the font + * @param height + * the height of the font + * @param style + * the style of the font + * @return {@link Font} The font matching the name, height and style + */ + public static Font getFont(String name, int height, int style) + { + return getFont(name, height, style, false, false); + } + + /** + * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline + * flags are also supported. + * + * @param name + * the name of the font + * @param size + * the size of the font + * @param style + * the style of the font + * @param strikeout + * the strikeout flag (warning: Windows only) + * @param underline + * the underline flag (warning: Windows only) + * @return {@link Font} The font matching the name, height, style, strikeout and underline + */ + public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline) + { + String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline; + Font font = m_fontMap.get(fontName); + if (font == null) + { + FontData fontData = new FontData(name, size, style); + if (strikeout || underline) + { + try + { + Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$ + Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$ + if (logFont != null && logFontClass != null) + { + if (strikeout) + { + logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte)1)); //$NON-NLS-1$ + } + if (underline) + { + logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte)1)); //$NON-NLS-1$ + } + } + } + catch (Throwable e) + { + System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$ + } + } + font = new Font(Display.getCurrent(), fontData); + m_fontMap.put(fontName, font); + } + return font; + } + + /** + * Returns a bold version of the given {@link Font}. + * + * @param baseFont + * the {@link Font} for which a bold version is desired + * @return the bold version of the given {@link Font} + */ + public static Font getBoldFont(Font baseFont) + { + Font font = m_fontToBoldFontMap.get(baseFont); + if (font == null) + { + FontData fontDatas[] = baseFont.getFontData(); + FontData data = fontDatas[0]; + font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD); + m_fontToBoldFontMap.put(baseFont, font); + } + return font; + } + + /** + * Dispose all of the cached {@link Font}'s. + */ + public static void disposeFonts() + { + // clear fonts + for (Font font : m_fontMap.values()) + { + font.dispose(); + } + m_fontMap.clear(); + // clear bold fonts + for (Font font : m_fontToBoldFontMap.values()) + { + font.dispose(); + } + m_fontToBoldFontMap.clear(); + } + + // ////////////////////////////////////////////////////////////////////////// + // + // Cursor + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Maps IDs to cursors. + */ + private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>(); + + /** + * Returns the system cursor matching the specific ID. + * + * @param id + * int The ID value for the cursor + * @return Cursor The system cursor matching the specific ID + */ + public static Cursor getCursor(int id) + { + Integer key = Integer.valueOf(id); + Cursor cursor = m_idToCursorMap.get(key); + if (cursor == null) + { + cursor = new Cursor(Display.getDefault(), id); + m_idToCursorMap.put(key, cursor); + } + return cursor; + } + + /** + * Dispose all of the cached cursors. + */ + public static void disposeCursors() + { + for (Cursor cursor : m_idToCursorMap.values()) + { + cursor.dispose(); + } + m_idToCursorMap.clear(); + } + + // ////////////////////////////////////////////////////////////////////////// + // + // General + // + // ////////////////////////////////////////////////////////////////////////// + /** + * Dispose of cached objects and their underlying OS resources. This should only be called when the cached + * objects are no longer needed (e.g. on application shutdown). + */ + public static void dispose() + { + disposeColors(); + disposeImages(); + disposeFonts(); + disposeCursors(); + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java deleted file mode 100644 index 8ea7f52da8..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup; - -import org.eclipse.emf.ecore.EObject; - -/** - * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Api Baseline</b></em>'. - * <!-- end-user-doc --> - * - * <p> - * The following features are supported: - * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion <em>Version</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation <em>Zip Location</em>}</li> - * </ul> - * </p> - * - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline() - * @model - * @generated - */ -public interface ApiBaseline extends EObject -{ - /** - * Returns the value of the '<em><b>Project</b></em>' container reference. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines <em>Api Baselines</em>}'. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Project</em>' container reference isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Project</em>' container reference. - * @see #setProject(Project) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline_Project() - * @see org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines - * @model opposite="apiBaselines" transient="false" - * @generated - */ - Project getProject(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}' container reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Project</em>' container reference. - * @see #getProject() - * @generated - */ - void setProject(Project value); - - /** - * Returns the value of the '<em><b>Version</b></em>' attribute. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Version</em>' attribute isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Version</em>' attribute. - * @see #setVersion(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline_Version() - * @model - * @generated - */ - String getVersion(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion <em>Version</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Version</em>' attribute. - * @see #getVersion() - * @generated - */ - void setVersion(String value); - - /** - * Returns the value of the '<em><b>Zip Location</b></em>' attribute. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Zip Location</em>' attribute isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Zip Location</em>' attribute. - * @see #setZipLocation(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline_ZipLocation() - * @model - * @generated - */ - String getZipLocation(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation <em>Zip Location</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Zip Location</em>' attribute. - * @see #getZipLocation() - * @generated - */ - void setZipLocation(String value); - -} // ApiBaseline diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java new file mode 100644 index 0000000000..7cd3160743 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java @@ -0,0 +1,76 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Api Baseline Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion <em>Version</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation <em>Zip Location</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaselineTask() + * @model + * @generated + */ +public interface ApiBaselineTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Version</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Version</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Version</em>' attribute. + * @see #setVersion(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaselineTask_Version() + * @model + * @generated + */ + String getVersion(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion <em>Version</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Version</em>' attribute. + * @see #getVersion() + * @generated + */ + void setVersion(String value); + + /** + * Returns the value of the '<em><b>Zip Location</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Zip Location</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Zip Location</em>' attribute. + * @see #setZipLocation(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaselineTask_ZipLocation() + * @model + * @generated + */ + String getZipLocation(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation <em>Zip Location</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Zip Location</em>' attribute. + * @see #getZipLocation() + * @generated + */ + void setZipLocation(String value); + +} // ApiBaselineTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java index 70ef7de2d7..e7d5d60d6d 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java @@ -10,9 +10,6 @@ */ package org.eclipse.emf.cdo.releng.setup; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.URI; - /** * <!-- begin-user-doc --> * A representation of the model object '<em><b>Branch</b></em>'. @@ -23,10 +20,6 @@ import org.eclipse.emf.common.util.URI; * <ul> * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getProject <em>Project</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getName <em>Name</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getGitClones <em>Git Clones</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline <em>Api Baseline</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath <em>Mspec File Path</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName <em>Clone Variable Name</em>}</li> * </ul> * </p> * @@ -34,7 +27,7 @@ import org.eclipse.emf.common.util.URI; * @model * @generated */ -public interface Branch extends ToolInstallation +public interface Branch extends ConfigurableItem { /** * Returns the value of the '<em><b>Project</b></em>' container reference. @@ -90,116 +83,4 @@ public interface Branch extends ToolInstallation */ void setName(String value); - /** - * Returns the value of the '<em><b>Git Clones</b></em>' containment reference list. - * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.GitClone}. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}'. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Git Clones</em>' containment reference list isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Git Clones</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_GitClones() - * @see org.eclipse.emf.cdo.releng.setup.GitClone#getBranch - * @model opposite="branch" containment="true" required="true" - * @generated - */ - EList<GitClone> getGitClones(); - - /** - * Returns the value of the '<em><b>Api Baseline</b></em>' reference. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Api Baseline</em>' reference isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Api Baseline</em>' reference. - * @see #setApiBaseline(ApiBaseline) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_ApiBaseline() - * @model - * @generated - */ - ApiBaseline getApiBaseline(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline <em>Api Baseline</em>}' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Api Baseline</em>' reference. - * @see #getApiBaseline() - * @generated - */ - void setApiBaseline(ApiBaseline value); - - /** - * Returns the value of the '<em><b>Mspec File Path</b></em>' attribute. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Mspec File Path</em>' attribute isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Mspec File Path</em>' attribute. - * @see #setMspecFilePath(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_MspecFilePath() - * @model - * @generated - */ - String getMspecFilePath(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath <em>Mspec File Path</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Mspec File Path</em>' attribute. - * @see #getMspecFilePath() - * @generated - */ - void setMspecFilePath(String value); - - /** - * Returns the value of the '<em><b>Clone Variable Name</b></em>' attribute. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Clone Variable Name</em>' attribute isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Clone Variable Name</em>' attribute. - * @see #setCloneVariableName(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_CloneVariableName() - * @model - * @generated - */ - String getCloneVariableName(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName <em>Clone Variable Name</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Clone Variable Name</em>' attribute. - * @see #getCloneVariableName() - * @generated - */ - void setCloneVariableName(String value); - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @model - * @generated - */ - boolean isInstalled(String installFolder); - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @model dataType="org.eclipse.emf.cdo.releng.setup.URI" - * @generated - */ - URI getURI(String installFolder); - } // Branch diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java new file mode 100644 index 0000000000..61d0267a23 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java @@ -0,0 +1,103 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Buckminster Import Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec <em>Mspec</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform <em>Target Platform</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool <em>Bundle Pool</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask() + * @model + * @generated + */ +public interface BuckminsterImportTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Mspec</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Mspec</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Mspec</em>' attribute. + * @see #setMspec(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask_Mspec() + * @model + * @generated + */ + String getMspec(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec <em>Mspec</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Mspec</em>' attribute. + * @see #getMspec() + * @generated + */ + void setMspec(String value); + + /** + * Returns the value of the '<em><b>Target Platform</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Target Platform</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Target Platform</em>' attribute. + * @see #setTargetPlatform(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask_TargetPlatform() + * @model + * @generated + */ + String getTargetPlatform(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform <em>Target Platform</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Target Platform</em>' attribute. + * @see #getTargetPlatform() + * @generated + */ + void setTargetPlatform(String value); + + /** + * Returns the value of the '<em><b>Bundle Pool</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Bundle Pool</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Bundle Pool</em>' attribute. + * @see #setBundlePool(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask_BundlePool() + * @model + * @generated + */ + String getBundlePool(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool <em>Bundle Pool</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Bundle Pool</em>' attribute. + * @see #getBundlePool() + * @generated + */ + void setBundlePool(String value); + +} // BuckminsterImportTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java new file mode 100644 index 0000000000..afca697901 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java @@ -0,0 +1,49 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Compound Setup Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName <em>Name</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getCompoundSetupTask() + * @model + * @generated + */ +public interface CompoundSetupTask extends SetupTask, SetupTaskContainer +{ + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getCompoundSetupTask_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // CompoundSetupTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java new file mode 100644 index 0000000000..d14e7d124e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java @@ -0,0 +1,17 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Configurable Item</b></em>'. + * <!-- end-user-doc --> + * + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getConfigurableItem() + * @model abstract="true" + * @generated + */ +public interface ConfigurableItem extends SetupTaskContainer +{ +} // ConfigurableItem diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java index a144553bee..57ab104bca 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java @@ -45,7 +45,7 @@ public interface Configuration extends EObject * @return the value of the '<em>Projects</em>' containment reference list. * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getConfiguration_Projects() * @see org.eclipse.emf.cdo.releng.setup.Project#getConfiguration - * @model opposite="configuration" containment="true" required="true" + * @model opposite="configuration" containment="true" resolveProxies="true" required="true" * @generated */ EList<Project> getProjects(); @@ -63,7 +63,7 @@ public interface Configuration extends EObject * @return the value of the '<em>Eclipse Versions</em>' containment reference list. * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getConfiguration_EclipseVersions() * @see org.eclipse.emf.cdo.releng.setup.EclipseVersion#getConfiguration - * @model opposite="configuration" containment="true" required="true" + * @model opposite="configuration" containment="true" resolveProxies="true" required="true" * @generated */ EList<EclipseVersion> getEclipseVersions(); diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java new file mode 100644 index 0000000000..766d59af65 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java @@ -0,0 +1,103 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Eclipse Ini Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption <em>Option</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue <em>Value</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm <em>Vm</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask() + * @model + * @generated + */ +public interface EclipseIniTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Option</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Option</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Option</em>' attribute. + * @see #setOption(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask_Option() + * @model + * @generated + */ + String getOption(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption <em>Option</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Option</em>' attribute. + * @see #getOption() + * @generated + */ + void setOption(String value); + + /** + * Returns the value of the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Value</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Value</em>' attribute. + * @see #setValue(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask_Value() + * @model + * @generated + */ + String getValue(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Value</em>' attribute. + * @see #getValue() + * @generated + */ + void setValue(String value); + + /** + * Returns the value of the '<em><b>Vm</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Vm</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Vm</em>' attribute. + * @see #setVm(boolean) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask_Vm() + * @model + * @generated + */ + boolean isVm(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm <em>Vm</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Vm</em>' attribute. + * @see #isVm() + * @generated + */ + void setVm(boolean value); + +} // EclipseIniTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolPreference.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipsePreferenceTask.java index 7466c69ace..077b3bad4b 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolPreference.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipsePreferenceTask.java @@ -1,35 +1,25 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup; -import org.eclipse.emf.ecore.EObject; - /** * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Tool Preference</b></em>'. + * A representation of the model object '<em><b>Eclipse Preference Task</b></em>'. * <!-- end-user-doc --> * * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey <em>Key</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue <em>Value</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey <em>Key</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue <em>Value</em>}</li> * </ul> * </p> * - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolPreference() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipsePreferenceTask() * @model * @generated */ -public interface ToolPreference extends EObject +public interface EclipsePreferenceTask extends SetupTask { /** * Returns the value of the '<em><b>Key</b></em>' attribute. @@ -41,14 +31,14 @@ public interface ToolPreference extends EObject * <!-- end-user-doc --> * @return the value of the '<em>Key</em>' attribute. * @see #setKey(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolPreference_Key() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipsePreferenceTask_Key() * @model * @generated */ String getKey(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey <em>Key</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey <em>Key</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Key</em>' attribute. @@ -67,14 +57,14 @@ public interface ToolPreference extends EObject * <!-- end-user-doc --> * @return the value of the '<em>Value</em>' attribute. * @see #setValue(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolPreference_Value() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipsePreferenceTask_Value() * @model * @generated */ String getValue(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue <em>Value</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue <em>Value</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Value</em>' attribute. @@ -83,4 +73,4 @@ public interface ToolPreference extends EObject */ void setValue(String value); -} // ToolPreference +} // EclipsePreferenceTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java index 07e2f11cca..75d52f9cbd 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java @@ -10,8 +10,6 @@ */ package org.eclipse.emf.cdo.releng.setup; -import org.eclipse.emf.ecore.EObject; - /** * <!-- begin-user-doc --> * A representation of the model object '<em><b>Eclipse Version</b></em>'. @@ -22,7 +20,6 @@ import org.eclipse.emf.ecore.EObject; * <ul> * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getConfiguration <em>Configuration</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getVersion <em>Version</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall <em>Director Call</em>}</li> * </ul> * </p> * @@ -30,7 +27,7 @@ import org.eclipse.emf.ecore.EObject; * @model * @generated */ -public interface EclipseVersion extends EObject +public interface EclipseVersion extends ConfigurableItem { /** * Returns the value of the '<em><b>Configuration</b></em>' container reference. @@ -86,30 +83,4 @@ public interface EclipseVersion extends EObject */ void setVersion(String value); - /** - * Returns the value of the '<em><b>Director Call</b></em>' containment reference. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Director Call</em>' containment reference isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Director Call</em>' containment reference. - * @see #setDirectorCall(DirectorCall) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseVersion_DirectorCall() - * @model containment="true" required="true" - * @generated - */ - DirectorCall getDirectorCall(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall <em>Director Call</em>}' containment reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Director Call</em>' containment reference. - * @see #getDirectorCall() - * @generated - */ - void setDirectorCall(DirectorCall value); - } // EclipseVersion diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitClone.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitCloneTask.java index a134a7b787..7b1d812093 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitClone.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitCloneTask.java @@ -1,91 +1,80 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup; -import org.eclipse.emf.ecore.EObject; - /** * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Git Clone</b></em>'. + * A representation of the model object '<em><b>Git Clone Task</b></em>'. * <!-- end-user-doc --> * * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getName <em>Name</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI <em>Remote URI</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch <em>Checkout Branch</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName <em>Remote Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI <em>Remote URI</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch <em>Checkout Branch</em>}</li> * </ul> * </p> * - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask() * @model * @generated */ -public interface GitClone extends EObject +public interface GitCloneTask extends SetupTask { /** - * Returns the value of the '<em><b>Branch</b></em>' container reference. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.Branch#getGitClones <em>Git Clones</em>}'. + * Returns the value of the '<em><b>Name</b></em>' attribute. * <!-- begin-user-doc --> * <p> - * If the meaning of the '<em>Branch</em>' container reference isn't clear, + * If the meaning of the '<em>Name</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Branch</em>' container reference. - * @see #setBranch(Branch) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_Branch() - * @see org.eclipse.emf.cdo.releng.setup.Branch#getGitClones - * @model opposite="gitClones" transient="false" + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_Name() + * @model * @generated */ - Branch getBranch(); + String getName(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}' container reference. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName <em>Name</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @param value the new value of the '<em>Branch</em>' container reference. - * @see #getBranch() + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() * @generated */ - void setBranch(Branch value); + void setName(String value); /** - * Returns the value of the '<em><b>Name</b></em>' attribute. + * Returns the value of the '<em><b>Remote Name</b></em>' attribute. + * The default value is <code>"origin"</code>. * <!-- begin-user-doc --> * <p> - * If the meaning of the '<em>Name</em>' attribute isn't clear, + * If the meaning of the '<em>Remote Name</em>' attribute isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Name</em>' attribute. - * @see #setName(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_Name() - * @model + * @return the value of the '<em>Remote Name</em>' attribute. + * @see #setRemoteName(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_RemoteName() + * @model default="origin" * @generated */ - String getName(); + String getRemoteName(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getName <em>Name</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName <em>Remote Name</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @param value the new value of the '<em>Name</em>' attribute. - * @see #getName() + * @param value the new value of the '<em>Remote Name</em>' attribute. + * @see #getRemoteName() * @generated */ - void setName(String value); + void setRemoteName(String value); /** * Returns the value of the '<em><b>Remote URI</b></em>' attribute. @@ -97,14 +86,14 @@ public interface GitClone extends EObject * <!-- end-user-doc --> * @return the value of the '<em>Remote URI</em>' attribute. * @see #setRemoteURI(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_RemoteURI() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_RemoteURI() * @model * @generated */ String getRemoteURI(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI <em>Remote URI</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI <em>Remote URI</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Remote URI</em>' attribute. @@ -123,14 +112,14 @@ public interface GitClone extends EObject * <!-- end-user-doc --> * @return the value of the '<em>Checkout Branch</em>' attribute. * @see #setCheckoutBranch(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_CheckoutBranch() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_CheckoutBranch() * @model * @generated */ String getCheckoutBranch(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch <em>Checkout Branch</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch <em>Checkout Branch</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Checkout Branch</em>' attribute. @@ -139,4 +128,4 @@ public interface GitClone extends EObject */ void setCheckoutBranch(String value); -} // GitClone +} // GitCloneTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java index 6326d1085e..3b327dde15 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java @@ -20,7 +20,7 @@ import org.eclipse.emf.ecore.EObject; * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getId <em>Id</em>}</li> * </ul> * </p> @@ -32,32 +32,32 @@ import org.eclipse.emf.ecore.EObject; public interface InstallableUnit extends EObject { /** - * Returns the value of the '<em><b>Director Call</b></em>' container reference. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits <em>Installable Units</em>}'. + * Returns the value of the '<em><b>P2 Task</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits <em>Installable Units</em>}'. * <!-- begin-user-doc --> * <p> - * If the meaning of the '<em>Director Call</em>' container reference isn't clear, + * If the meaning of the '<em>P2 Task</em>' container reference isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Director Call</em>' container reference. - * @see #setDirectorCall(DirectorCall) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getInstallableUnit_DirectorCall() - * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits + * @return the value of the '<em>P2 Task</em>' container reference. + * @see #setP2Task(P2Task) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getInstallableUnit_P2Task() + * @see org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits * @model opposite="installableUnits" transient="false" * @generated */ - DirectorCall getDirectorCall(); + P2Task getP2Task(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}' container reference. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @param value the new value of the '<em>Director Call</em>' container reference. - * @see #getDirectorCall() + * @param value the new value of the '<em>P2 Task</em>' container reference. + * @see #getP2Task() * @generated */ - void setDirectorCall(DirectorCall value); + void setP2Task(P2Task value); /** * Returns the value of the '<em><b>Id</b></em>' attribute. diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocation.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocationTask.java index b3809063eb..6a29e22e30 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocation.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocationTask.java @@ -1,35 +1,25 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup; -import org.eclipse.emf.ecore.EObject; - /** * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Link Location</b></em>'. + * A representation of the model object '<em><b>Link Location Task</b></em>'. * <!-- end-user-doc --> * * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath <em>Path</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath <em>Path</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName <em>Name</em>}</li> * </ul> * </p> * - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocation() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocationTask() * @model * @generated */ -public interface LinkLocation extends EObject +public interface LinkLocationTask extends SetupTask { /** * Returns the value of the '<em><b>Path</b></em>' attribute. @@ -41,14 +31,14 @@ public interface LinkLocation extends EObject * <!-- end-user-doc --> * @return the value of the '<em>Path</em>' attribute. * @see #setPath(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocation_Path() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocationTask_Path() * @model * @generated */ String getPath(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath <em>Path</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath <em>Path</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Path</em>' attribute. @@ -67,14 +57,14 @@ public interface LinkLocation extends EObject * <!-- end-user-doc --> * @return the value of the '<em>Name</em>' attribute. * @see #setName(String) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocation_Name() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocationTask_Name() * @model * @generated */ String getName(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getName <em>Name</em>}' attribute. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName <em>Name</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @param value the new value of the '<em>Name</em>' attribute. @@ -83,4 +73,4 @@ public interface LinkLocation extends EObject */ void setName(String value); -} // LinkLocation +} // LinkLocationTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java new file mode 100644 index 0000000000..325fd72b50 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java @@ -0,0 +1,49 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>One Time Setup Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId <em>Id</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getOneTimeSetupTask() + * @model abstract="true" + * @generated + */ +public interface OneTimeSetupTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Id</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Id</em>' attribute. + * @see #setId(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getOneTimeSetupTask_Id() + * @model required="true" + * @generated + */ + String getId(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId <em>Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Id</em>' attribute. + * @see #getId() + * @generated + */ + void setId(String value); + +} // OneTimeSetupTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java index 86f3c59534..7c7b5cd47e 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java @@ -20,7 +20,7 @@ import org.eclipse.emf.ecore.EObject; * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getUrl <em>Url</em>}</li> * </ul> * </p> @@ -32,32 +32,32 @@ import org.eclipse.emf.ecore.EObject; public interface P2Repository extends EObject { /** - * Returns the value of the '<em><b>Director Call</b></em>' container reference. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories <em>P2 Repositories</em>}'. + * Returns the value of the '<em><b>P2 Task</b></em>' container reference. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories <em>P2 Repositories</em>}'. * <!-- begin-user-doc --> * <p> - * If the meaning of the '<em>Director Call</em>' container reference isn't clear, + * If the meaning of the '<em>P2 Task</em>' container reference isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Director Call</em>' container reference. - * @see #setDirectorCall(DirectorCall) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Repository_DirectorCall() - * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories + * @return the value of the '<em>P2 Task</em>' container reference. + * @see #setP2Task(P2Task) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Repository_P2Task() + * @see org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories * @model opposite="p2Repositories" transient="false" * @generated */ - DirectorCall getDirectorCall(); + P2Task getP2Task(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}' container reference. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @param value the new value of the '<em>Director Call</em>' container reference. - * @see #getDirectorCall() + * @param value the new value of the '<em>P2 Task</em>' container reference. + * @see #getP2Task() * @generated */ - void setDirectorCall(DirectorCall value); + void setP2Task(P2Task value); /** * Returns the value of the '<em><b>Url</b></em>' attribute. diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/DirectorCall.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Task.java index bb9ff02fa1..3292d5b9a8 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/DirectorCall.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Task.java @@ -1,41 +1,32 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup; import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EObject; /** * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Director Call</b></em>'. + * A representation of the model object '<em><b>Install Task</b></em>'. * <!-- end-user-doc --> * * <p> * The following features are supported: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits <em>Installable Units</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories <em>P2 Repositories</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories <em>P2 Repositories</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits <em>Installable Units</em>}</li> * </ul> * </p> * - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getDirectorCall() + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Task() * @model * @generated */ -public interface DirectorCall extends EObject +public interface P2Task extends SetupTask { /** * Returns the value of the '<em><b>Installable Units</b></em>' containment reference list. * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.InstallableUnit}. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}'. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Installable Units</em>' containment reference list isn't clear, @@ -43,9 +34,9 @@ public interface DirectorCall extends EObject * </p> * <!-- end-user-doc --> * @return the value of the '<em>Installable Units</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getDirectorCall_InstallableUnits() - * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall - * @model opposite="directorCall" containment="true" required="true" + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Task_InstallableUnits() + * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task + * @model opposite="p2Task" containment="true" resolveProxies="true" required="true" * @generated */ EList<InstallableUnit> getInstallableUnits(); @@ -53,7 +44,7 @@ public interface DirectorCall extends EObject /** * Returns the value of the '<em><b>P2 Repositories</b></em>' containment reference list. * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.P2Repository}. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}'. + * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>P2 Repositories</em>' containment reference list isn't clear, @@ -61,11 +52,11 @@ public interface DirectorCall extends EObject * </p> * <!-- end-user-doc --> * @return the value of the '<em>P2 Repositories</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getDirectorCall_P2Repositories() - * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall - * @model opposite="directorCall" containment="true" required="true" + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Task_P2Repositories() + * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task + * @model opposite="p2Task" containment="true" resolveProxies="true" required="true" * @generated */ EList<P2Repository> getP2Repositories(); -} // DirectorCall +} // InstallTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java index be482948d7..47b700e5c8 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java @@ -13,7 +13,6 @@ package org.eclipse.emf.cdo.releng.setup; import org.eclipse.emf.common.util.URI; import java.io.File; -import org.eclipse.emf.common.util.EList; /** * <!-- begin-user-doc --> @@ -26,7 +25,6 @@ import org.eclipse.emf.common.util.EList; * <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getUserName <em>User Name</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getInstallFolder <em>Install Folder</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getGitPrefix <em>Git Prefix</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getLinkLocations <em>Link Locations</em>}</li> * </ul> * </p> * @@ -34,7 +32,7 @@ import org.eclipse.emf.common.util.EList; * @model * @generated */ -public interface Preferences extends ToolInstallation +public interface Preferences extends SetupTaskContainer { public static final String PREFERENCES_NAME = "setup-eclipse.xmi"; @@ -119,20 +117,4 @@ public interface Preferences extends ToolInstallation */ void setGitPrefix(String value); - /** - * Returns the value of the '<em><b>Link Locations</b></em>' containment reference list. - * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.LinkLocation}. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Link Locations</em>' containment reference list isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Link Locations</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getPreferences_LinkLocations() - * @model containment="true" - * @generated - */ - EList<LinkLocation> getLinkLocations(); - } // Preferences diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java index 284a66bfc3..4721c395bd 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java @@ -10,7 +10,6 @@ */ package org.eclipse.emf.cdo.releng.setup; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup; import org.eclipse.emf.common.util.EList; /** @@ -24,8 +23,6 @@ import org.eclipse.emf.common.util.EList; * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getConfiguration <em>Configuration</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getBranches <em>Branches</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getName <em>Name</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines <em>Api Baselines</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup <em>Working Set Group</em>}</li> * </ul> * </p> * @@ -33,7 +30,7 @@ import org.eclipse.emf.common.util.EList; * @model * @generated */ -public interface Project extends ToolInstallation +public interface Project extends ConfigurableItem { /** * Returns the value of the '<em><b>Configuration</b></em>' container reference. @@ -48,7 +45,7 @@ public interface Project extends ToolInstallation * @see #setConfiguration(Configuration) * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_Configuration() * @see org.eclipse.emf.cdo.releng.setup.Configuration#getProjects - * @model opposite="projects" transient="false" + * @model opposite="projects" * @generated */ Configuration getConfiguration(); @@ -76,7 +73,7 @@ public interface Project extends ToolInstallation * @return the value of the '<em>Branches</em>' containment reference list. * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_Branches() * @see org.eclipse.emf.cdo.releng.setup.Branch#getProject - * @model opposite="project" containment="true" required="true" + * @model opposite="project" containment="true" resolveProxies="true" required="true" * @generated */ EList<Branch> getBranches(); @@ -107,48 +104,4 @@ public interface Project extends ToolInstallation */ void setName(String value); - /** - * Returns the value of the '<em><b>Api Baselines</b></em>' containment reference list. - * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.ApiBaseline}. - * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}'. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Api Baselines</em>' containment reference list isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Api Baselines</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_ApiBaselines() - * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject - * @model opposite="project" containment="true" - * @generated - */ - EList<ApiBaseline> getApiBaselines(); - - /** - * Returns the value of the '<em><b>Working Set Group</b></em>' containment reference. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Working Set Group</em>' containment reference isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Working Set Group</em>' containment reference. - * @see #setWorkingSetGroup(WorkingSetGroup) - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_WorkingSetGroup() - * @model containment="true" - * @generated - */ - WorkingSetGroup getWorkingSetGroup(); - - /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup <em>Working Set Group</em>}' containment reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Working Set Group</em>' containment reference. - * @see #getWorkingSetGroup() - * @generated - */ - void setWorkingSetGroup(WorkingSetGroup value); - } // Project diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java new file mode 100644 index 0000000000..2a6e470ef7 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java @@ -0,0 +1,76 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Resource Copy Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL <em>Source URL</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL <em>Target URL</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getResourceCopyTask() + * @model + * @generated + */ +public interface ResourceCopyTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Source URL</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Source URL</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Source URL</em>' attribute. + * @see #setSourceURL(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getResourceCopyTask_SourceURL() + * @model + * @generated + */ + String getSourceURL(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL <em>Source URL</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Source URL</em>' attribute. + * @see #getSourceURL() + * @generated + */ + void setSourceURL(String value); + + /** + * Returns the value of the '<em><b>Target URL</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Target URL</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Target URL</em>' attribute. + * @see #setTargetURL(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getResourceCopyTask_TargetURL() + * @model + * @generated + */ + String getTargetURL(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL <em>Target URL</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Target URL</em>' attribute. + * @see #getTargetURL() + * @generated + */ + void setTargetURL(String value); + +} // ResourceCopyTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java index 62f299693f..1897e0b1f9 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java @@ -24,7 +24,6 @@ import org.eclipse.emf.ecore.EObject; * <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getBranch <em>Branch</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion <em>Eclipse Version</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getUpdateLocations <em>Update Locations</em>}</li> * </ul> * </p> * @@ -87,45 +86,37 @@ public interface Setup extends EObject void setEclipseVersion(EclipseVersion value); /** - * Returns the value of the '<em><b>Preferences</b></em>' containment reference. + * Returns the value of the '<em><b>Preferences</b></em>' reference. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Preferences</em>' containment reference isn't clear, * there really should be more of a description here... * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Preferences</em>' containment reference. + * @return the value of the '<em>Preferences</em>' reference. * @see #setPreferences(Preferences) * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetup_Preferences() - * @model containment="true" + * @model required="true" * @generated */ Preferences getPreferences(); /** - * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}' containment reference. + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @param value the new value of the '<em>Preferences</em>' containment reference. + * @param value the new value of the '<em>Preferences</em>' reference. * @see #getPreferences() * @generated */ void setPreferences(Preferences value); /** - * Returns the value of the '<em><b>Update Locations</b></em>' containment reference list. - * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.P2Repository}. * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Update Locations</em>' containment reference list isn't clear, - * there really should be more of a description here... - * </p> * <!-- end-user-doc --> - * @return the value of the '<em>Update Locations</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetup_UpdateLocations() - * @model containment="true" + * @model * @generated */ - EList<P2Repository> getUpdateLocations(); + EList<SetupTask> getSetupTasks(boolean filterRestrictions, Trigger trigger); } // Workspace diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java index c072236719..f0eb8f7a9a 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java @@ -58,6 +58,24 @@ public interface SetupFactory extends EFactory Branch createBranch(); /** + * Returns a new object of class '<em>Api Baseline Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Api Baseline Task</em>'. + * @generated + */ + ApiBaselineTask createApiBaselineTask(); + + /** + * Returns a new object of class '<em>Git Clone Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Git Clone Task</em>'. + * @generated + */ + GitCloneTask createGitCloneTask(); + + /** * Returns a new object of class '<em>Eclipse Version</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -67,13 +85,13 @@ public interface SetupFactory extends EFactory EclipseVersion createEclipseVersion(); /** - * Returns a new object of class '<em>Director Call</em>'. + * Returns a new object of class '<em>P2 Task</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return a new object of class '<em>Director Call</em>'. + * @return a new object of class '<em>P2 Task</em>'. * @generated */ - DirectorCall createDirectorCall(); + P2Task createP2Task(); /** * Returns a new object of class '<em>Installable Unit</em>'. @@ -94,49 +112,85 @@ public interface SetupFactory extends EFactory P2Repository createP2Repository(); /** - * Returns a new object of class '<em>Api Baseline</em>'. + * Returns a new object of class '<em>Setup</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return a new object of class '<em>Api Baseline</em>'. + * @return a new object of class '<em>Setup</em>'. * @generated */ - ApiBaseline createApiBaseline(); + Setup createSetup(); /** - * Returns a new object of class '<em>Git Clone</em>'. + * Returns a new object of class '<em>Working Set Task</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return a new object of class '<em>Git Clone</em>'. + * @return a new object of class '<em>Working Set Task</em>'. * @generated */ - GitClone createGitClone(); + WorkingSetTask createWorkingSetTask(); /** - * Returns a new object of class '<em>Setup</em>'. + * Returns a new object of class '<em>Resource Copy Task</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return a new object of class '<em>Setup</em>'. + * @return a new object of class '<em>Resource Copy Task</em>'. * @generated */ - Setup createSetup(); + ResourceCopyTask createResourceCopyTask(); /** - * Returns a new object of class '<em>Tool Preference</em>'. + * Returns a new object of class '<em>Text Modify Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Text Modify Task</em>'. + * @generated + */ + TextModifyTask createTextModifyTask(); + + /** + * Returns a new object of class '<em>Text Modification</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Text Modification</em>'. + * @generated + */ + TextModification createTextModification(); + + /** + * Returns a new object of class '<em>Eclipse Ini Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Eclipse Ini Task</em>'. + * @generated + */ + EclipseIniTask createEclipseIniTask(); + + /** + * Returns a new object of class '<em>Compound Setup Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Compound Setup Task</em>'. + * @generated + */ + CompoundSetupTask createCompoundSetupTask(); + + /** + * Returns a new object of class '<em>Buckminster Import Task</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return a new object of class '<em>Tool Preference</em>'. + * @return a new object of class '<em>Buckminster Import Task</em>'. * @generated */ - ToolPreference createToolPreference(); + BuckminsterImportTask createBuckminsterImportTask(); /** - * Returns a new object of class '<em>Link Location</em>'. + * Returns a new object of class '<em>String Variable Task</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return a new object of class '<em>Link Location</em>'. + * @return a new object of class '<em>String Variable Task</em>'. * @generated */ - LinkLocation createLinkLocation(); + StringVariableTask createStringVariableTask(); /** * Returns a new object of class '<em>Preferences</em>'. @@ -148,6 +202,24 @@ public interface SetupFactory extends EFactory Preferences createPreferences(); /** + * Returns a new object of class '<em>Link Location Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Link Location Task</em>'. + * @generated + */ + LinkLocationTask createLinkLocationTask(); + + /** + * Returns a new object of class '<em>Eclipse Preference Task</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return a new object of class '<em>Eclipse Preference Task</em>'. + * @generated + */ + EclipsePreferenceTask createEclipsePreferenceTask(); + + /** * Returns the package supported by this factory. * <!-- begin-user-doc --> * <!-- end-user-doc --> diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java index eece03b9e8..8040621c5c 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java @@ -13,6 +13,7 @@ package org.eclipse.emf.cdo.releng.setup; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; @@ -67,24 +68,24 @@ public interface SetupPackage extends EPackage SetupPackage eINSTANCE = org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl.init(); /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl <em>Configuration</em>}' class. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl <em>Task Container</em>}' class. * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfiguration() + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskContainer() * @generated */ - int CONFIGURATION = 8; + int SETUP_TASK_CONTAINER = 8; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl <em>Tool Installation</em>}' class. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl <em>Configuration</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolInstallation() + * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfiguration() * @generated */ - int TOOL_INSTALLATION = 2; + int CONFIGURATION = 1; /** * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl <em>Project</em>}' class. @@ -94,7 +95,7 @@ public interface SetupPackage extends EPackage * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getProject() * @generated */ - int PROJECT = 9; + int PROJECT = 3; /** * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl <em>Branch</em>}' class. @@ -104,7 +105,7 @@ public interface SetupPackage extends EPackage * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBranch() * @generated */ - int BRANCH = 10; + int BRANCH = 4; /** * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl <em>Eclipse Version</em>}' class. @@ -114,17 +115,7 @@ public interface SetupPackage extends EPackage * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipseVersion() * @generated */ - int ECLIPSE_VERSION = 4; - - /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl <em>Director Call</em>}' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getDirectorCall() - * @generated - */ - int DIRECTOR_CALL = 5; + int ECLIPSE_VERSION = 0; /** * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl <em>Installable Unit</em>}' class. @@ -134,7 +125,7 @@ public interface SetupPackage extends EPackage * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getInstallableUnit() * @generated */ - int INSTALLABLE_UNIT = 6; + int INSTALLABLE_UNIT = 14; /** * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl <em>P2 Repository</em>}' class. @@ -144,82 +135,266 @@ public interface SetupPackage extends EPackage * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getP2Repository() * @generated */ - int P2_REPOSITORY = 7; + int P2_REPOSITORY = 15; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl <em>Api Baseline</em>}' class. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl <em>Preferences</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaseline() + * @see org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getPreferences() * @generated */ - int API_BASELINE = 11; + int PREFERENCES = 5; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl <em>Git Clone</em>}' class. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl <em>Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitClone() + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTask() * @generated */ - int GIT_CLONE = 12; + int SETUP_TASK = 7; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl <em>Preferences</em>}' class. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl <em>Link Location Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getPreferences() + * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocationTask() + * @generated + */ + int LINK_LOCATION_TASK = 12; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl <em>Eclipse Preference Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipsePreferenceTask() + * @generated + */ + int ECLIPSE_PREFERENCE_TASK = 19; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup() + * @generated + */ + int SETUP = 6; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl <em>P2 Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getP2Task() + * @generated + */ + int P2_TASK = 13; + + /** + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SETUP_TASK_CONTAINER__SETUP_TASKS = 0; + + /** + * The number of structural features of the '<em>Task Container</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SETUP_TASK_CONTAINER_FEATURE_COUNT = 1; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl <em>Configurable Item</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfigurableItem() + * @generated + */ + int CONFIGURABLE_ITEM = 2; + + /** + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONFIGURABLE_ITEM__SETUP_TASKS = SETUP_TASK_CONTAINER__SETUP_TASKS; + + /** + * The number of structural features of the '<em>Configurable Item</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONFIGURABLE_ITEM_FEATURE_COUNT = SETUP_TASK_CONTAINER_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> * @generated + * @ordered */ - int PREFERENCES = 0; + int ECLIPSE_VERSION__SETUP_TASKS = CONFIGURABLE_ITEM__SETUP_TASKS; /** - * The feature id for the '<em><b>Director Calls</b></em>' containment reference list. + * The feature id for the '<em><b>Configuration</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_VERSION__CONFIGURATION = CONFIGURABLE_ITEM_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Version</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_VERSION__VERSION = CONFIGURABLE_ITEM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Eclipse Version</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_VERSION_FEATURE_COUNT = CONFIGURABLE_ITEM_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>Projects</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONFIGURATION__PROJECTS = 0; + + /** + * The feature id for the '<em><b>Eclipse Versions</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONFIGURATION__ECLIPSE_VERSIONS = 1; + + /** + * The number of structural features of the '<em>Configuration</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int CONFIGURATION_FEATURE_COUNT = 2; + + /** + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int TOOL_INSTALLATION__DIRECTOR_CALLS = 0; + int PROJECT__SETUP_TASKS = CONFIGURABLE_ITEM__SETUP_TASKS; /** - * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list. + * The feature id for the '<em><b>Configuration</b></em>' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int TOOL_INSTALLATION__TOOL_PREFERENCES = 1; + int PROJECT__CONFIGURATION = CONFIGURABLE_ITEM_FEATURE_COUNT + 0; /** - * The number of structural features of the '<em>Tool Installation</em>' class. + * The feature id for the '<em><b>Branches</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int TOOL_INSTALLATION_FEATURE_COUNT = 2; + int PROJECT__BRANCHES = CONFIGURABLE_ITEM_FEATURE_COUNT + 1; /** - * The feature id for the '<em><b>Director Calls</b></em>' containment reference list. + * The feature id for the '<em><b>Name</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PREFERENCES__DIRECTOR_CALLS = TOOL_INSTALLATION__DIRECTOR_CALLS; + int PROJECT__NAME = CONFIGURABLE_ITEM_FEATURE_COUNT + 2; + + /** + * The number of structural features of the '<em>Project</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PROJECT_FEATURE_COUNT = CONFIGURABLE_ITEM_FEATURE_COUNT + 3; /** - * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list. + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PREFERENCES__TOOL_PREFERENCES = TOOL_INSTALLATION__TOOL_PREFERENCES; + int BRANCH__SETUP_TASKS = CONFIGURABLE_ITEM__SETUP_TASKS; + + /** + * The feature id for the '<em><b>Project</b></em>' container reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BRANCH__PROJECT = CONFIGURABLE_ITEM_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BRANCH__NAME = CONFIGURABLE_ITEM_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Branch</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BRANCH_FEATURE_COUNT = CONFIGURABLE_ITEM_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PREFERENCES__SETUP_TASKS = SETUP_TASK_CONTAINER__SETUP_TASKS; /** * The feature id for the '<em><b>User Name</b></em>' attribute. @@ -228,7 +403,7 @@ public interface SetupPackage extends EPackage * @generated * @ordered */ - int PREFERENCES__USER_NAME = TOOL_INSTALLATION_FEATURE_COUNT + 0; + int PREFERENCES__USER_NAME = SETUP_TASK_CONTAINER_FEATURE_COUNT + 0; /** * The feature id for the '<em><b>Install Folder</b></em>' attribute. @@ -237,7 +412,7 @@ public interface SetupPackage extends EPackage * @generated * @ordered */ - int PREFERENCES__INSTALL_FOLDER = TOOL_INSTALLATION_FEATURE_COUNT + 1; + int PREFERENCES__INSTALL_FOLDER = SETUP_TASK_CONTAINER_FEATURE_COUNT + 1; /** * The feature id for the '<em><b>Git Prefix</b></em>' attribute. @@ -246,64 +421,182 @@ public interface SetupPackage extends EPackage * @generated * @ordered */ - int PREFERENCES__GIT_PREFIX = TOOL_INSTALLATION_FEATURE_COUNT + 2; + int PREFERENCES__GIT_PREFIX = SETUP_TASK_CONTAINER_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Link Locations</b></em>' containment reference list. + * The number of structural features of the '<em>Preferences</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PREFERENCES__LINK_LOCATIONS = TOOL_INSTALLATION_FEATURE_COUNT + 3; + int PREFERENCES_FEATURE_COUNT = SETUP_TASK_CONTAINER_FEATURE_COUNT + 3; /** - * The number of structural features of the '<em>Preferences</em>' class. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl <em>Api Baseline Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaselineTask() + * @generated + */ + int API_BASELINE_TASK = 17; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl <em>Git Clone Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitCloneTask() + * @generated + */ + int GIT_CLONE_TASK = 18; + + /** + * The feature id for the '<em><b>Branch</b></em>' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PREFERENCES_FEATURE_COUNT = TOOL_INSTALLATION_FEATURE_COUNT + 4; + int SETUP__BRANCH = 0; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class. + * The feature id for the '<em><b>Eclipse Version</b></em>' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup() * @generated + * @ordered */ - int SETUP = 13; + int SETUP__ECLIPSE_VERSION = 1; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl <em>Tool Preference</em>}' class. + * The feature id for the '<em><b>Preferences</b></em>' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolPreference() * @generated + * @ordered */ - int TOOL_PREFERENCE = 3; + int SETUP__PREFERENCES = 2; /** - * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl <em>Link Location</em>}' class. + * The number of structural features of the '<em>Setup</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocation() * @generated + * @ordered */ - int LINK_LOCATION = 1; + int SETUP_FEATURE_COUNT = 3; /** - * The feature id for the '<em><b>Path</b></em>' attribute. + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SETUP_TASK__REQUIREMENTS = 0; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SETUP_TASK__RESTRICTIONS = 1; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int LINK_LOCATION__PATH = 0; + int SETUP_TASK__SCOPE = 2; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SETUP_TASK__EXCLUDED_TRIGGERS = 3; + + /** + * The number of structural features of the '<em>Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SETUP_TASK_FEATURE_COUNT = 4; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl <em>Working Set Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getWorkingSetTask() + * @generated + */ + int WORKING_SET_TASK = 21; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl <em>Compound Setup Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getCompoundSetupTask() + * @generated + */ + int COMPOUND_SETUP_TASK = 9; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPOUND_SETUP_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPOUND_SETUP_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPOUND_SETUP_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPOUND_SETUP_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int COMPOUND_SETUP_TASK__SETUP_TASKS = SETUP_TASK_FEATURE_COUNT + 0; /** * The feature id for the '<em><b>Name</b></em>' attribute. @@ -312,25 +605,155 @@ public interface SetupPackage extends EPackage * @generated * @ordered */ - int LINK_LOCATION__NAME = 1; + int COMPOUND_SETUP_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 1; /** - * The number of structural features of the '<em>Link Location</em>' class. + * The number of structural features of the '<em>Compound Setup Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int LINK_LOCATION_FEATURE_COUNT = 2; + int COMPOUND_SETUP_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Key</b></em>' attribute. + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl <em>One Time Setup Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getOneTimeSetupTask() + * @generated + */ + int ONE_TIME_SETUP_TASK = 10; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int TOOL_PREFERENCE__KEY = 0; + int ONE_TIME_SETUP_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ONE_TIME_SETUP_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ONE_TIME_SETUP_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ONE_TIME_SETUP_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Id</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ONE_TIME_SETUP_TASK__ID = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The number of structural features of the '<em>One Time Setup Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ONE_TIME_SETUP_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl <em>Buckminster Import Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBuckminsterImportTask() + * @generated + */ + int BUCKMINSTER_IMPORT_TASK = 16; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl <em>String Variable Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getStringVariableTask() + * @generated + */ + int STRING_VARIABLE_TASK = 20; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl <em>Eclipse Ini Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipseIniTask() + * @generated + */ + int ECLIPSE_INI_TASK = 11; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_INI_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_INI_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_INI_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_INI_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Option</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_INI_TASK__OPTION = SETUP_TASK_FEATURE_COUNT + 0; /** * The feature id for the '<em><b>Value</b></em>' attribute. @@ -339,88 +762,160 @@ public interface SetupPackage extends EPackage * @generated * @ordered */ - int TOOL_PREFERENCE__VALUE = 1; + int ECLIPSE_INI_TASK__VALUE = SETUP_TASK_FEATURE_COUNT + 1; /** - * The number of structural features of the '<em>Tool Preference</em>' class. + * The feature id for the '<em><b>Vm</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int TOOL_PREFERENCE_FEATURE_COUNT = 2; + int ECLIPSE_INI_TASK__VM = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Configuration</b></em>' container reference. + * The number of structural features of the '<em>Eclipse Ini Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int ECLIPSE_VERSION__CONFIGURATION = 0; + int ECLIPSE_INI_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 3; /** - * The feature id for the '<em><b>Version</b></em>' attribute. + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int ECLIPSE_VERSION__VERSION = 1; + int LINK_LOCATION_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; /** - * The feature id for the '<em><b>Director Call</b></em>' containment reference. + * The feature id for the '<em><b>Restrictions</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int ECLIPSE_VERSION__DIRECTOR_CALL = 2; + int LINK_LOCATION_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; /** - * The number of structural features of the '<em>Eclipse Version</em>' class. + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int ECLIPSE_VERSION_FEATURE_COUNT = 3; + int LINK_LOCATION_TASK__SCOPE = SETUP_TASK__SCOPE; /** - * The feature id for the '<em><b>Installable Units</b></em>' containment reference list. + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LINK_LOCATION_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Path</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LINK_LOCATION_TASK__PATH = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LINK_LOCATION_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Link Location Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int LINK_LOCATION_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int P2_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int P2_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int DIRECTOR_CALL__INSTALLABLE_UNITS = 0; + int P2_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int P2_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; /** * The feature id for the '<em><b>P2 Repositories</b></em>' containment reference list. * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int P2_TASK__P2_REPOSITORIES = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Installable Units</b></em>' containment reference list. + * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int DIRECTOR_CALL__P2_REPOSITORIES = 1; + int P2_TASK__INSTALLABLE_UNITS = SETUP_TASK_FEATURE_COUNT + 1; /** - * The number of structural features of the '<em>Director Call</em>' class. + * The number of structural features of the '<em>P2 Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int DIRECTOR_CALL_FEATURE_COUNT = 2; + int P2_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Director Call</b></em>' container reference. + * The feature id for the '<em><b>P2 Task</b></em>' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int INSTALLABLE_UNIT__DIRECTOR_CALL = 0; + int INSTALLABLE_UNIT__P2_TASK = 0; /** * The feature id for the '<em><b>Id</b></em>' attribute. @@ -441,13 +936,13 @@ public interface SetupPackage extends EPackage int INSTALLABLE_UNIT_FEATURE_COUNT = 2; /** - * The feature id for the '<em><b>Director Call</b></em>' container reference. + * The feature id for the '<em><b>P2 Task</b></em>' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int P2_REPOSITORY__DIRECTOR_CALL = 0; + int P2_REPOSITORY__P2_TASK = 0; /** * The feature id for the '<em><b>Url</b></em>' attribute. @@ -468,325 +963,647 @@ public interface SetupPackage extends EPackage int P2_REPOSITORY_FEATURE_COUNT = 2; /** - * The feature id for the '<em><b>Projects</b></em>' containment reference list. + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int CONFIGURATION__PROJECTS = 0; + int BUCKMINSTER_IMPORT_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; /** - * The feature id for the '<em><b>Eclipse Versions</b></em>' containment reference list. + * The feature id for the '<em><b>Restrictions</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int CONFIGURATION__ECLIPSE_VERSIONS = 1; + int BUCKMINSTER_IMPORT_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; /** - * The number of structural features of the '<em>Configuration</em>' class. + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int CONFIGURATION_FEATURE_COUNT = 2; + int BUCKMINSTER_IMPORT_TASK__SCOPE = SETUP_TASK__SCOPE; /** - * The feature id for the '<em><b>Director Calls</b></em>' containment reference list. + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__DIRECTOR_CALLS = TOOL_INSTALLATION__DIRECTOR_CALLS; + int BUCKMINSTER_IMPORT_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; /** - * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list. + * The feature id for the '<em><b>Mspec</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BUCKMINSTER_IMPORT_TASK__MSPEC = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Target Platform</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__TOOL_PREFERENCES = TOOL_INSTALLATION__TOOL_PREFERENCES; + int BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM = SETUP_TASK_FEATURE_COUNT + 1; /** - * The feature id for the '<em><b>Configuration</b></em>' container reference. + * The feature id for the '<em><b>Bundle Pool</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__CONFIGURATION = TOOL_INSTALLATION_FEATURE_COUNT + 0; + int BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Branches</b></em>' containment reference list. + * The number of structural features of the '<em>Buckminster Import Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__BRANCHES = TOOL_INSTALLATION_FEATURE_COUNT + 1; + int BUCKMINSTER_IMPORT_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 3; /** - * The feature id for the '<em><b>Name</b></em>' attribute. + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__NAME = TOOL_INSTALLATION_FEATURE_COUNT + 2; + int API_BASELINE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; /** - * The feature id for the '<em><b>Api Baselines</b></em>' containment reference list. + * The feature id for the '<em><b>Restrictions</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__API_BASELINES = TOOL_INSTALLATION_FEATURE_COUNT + 3; + int API_BASELINE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; /** - * The feature id for the '<em><b>Working Set Group</b></em>' containment reference. + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int PROJECT__WORKING_SET_GROUP = TOOL_INSTALLATION_FEATURE_COUNT + 4; + int API_BASELINE_TASK__SCOPE = SETUP_TASK__SCOPE; /** - * The number of structural features of the '<em>Project</em>' class. - * <!-- begin-user-doc --> + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int API_BASELINE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Version</b></em>' attribute. + * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @generated - * @ordered - */ - int PROJECT_FEATURE_COUNT = TOOL_INSTALLATION_FEATURE_COUNT + 5; + * @generated + * @ordered + */ + int API_BASELINE_TASK__VERSION = SETUP_TASK_FEATURE_COUNT + 0; /** - * The feature id for the '<em><b>Director Calls</b></em>' containment reference list. + * The feature id for the '<em><b>Zip Location</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__DIRECTOR_CALLS = TOOL_INSTALLATION__DIRECTOR_CALLS; + int API_BASELINE_TASK__ZIP_LOCATION = SETUP_TASK_FEATURE_COUNT + 1; /** - * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list. + * The number of structural features of the '<em>Api Baseline Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__TOOL_PREFERENCES = TOOL_INSTALLATION__TOOL_PREFERENCES; + int API_BASELINE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Project</b></em>' container reference. + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__PROJECT = TOOL_INSTALLATION_FEATURE_COUNT + 0; + int GIT_CLONE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GIT_CLONE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GIT_CLONE_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GIT_CLONE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; /** * The feature id for the '<em><b>Name</b></em>' attribute. * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int GIT_CLONE_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Remote Name</b></em>' attribute. + * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__NAME = TOOL_INSTALLATION_FEATURE_COUNT + 1; + int GIT_CLONE_TASK__REMOTE_NAME = SETUP_TASK_FEATURE_COUNT + 1; /** - * The feature id for the '<em><b>Git Clones</b></em>' containment reference list. + * The feature id for the '<em><b>Remote URI</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__GIT_CLONES = TOOL_INSTALLATION_FEATURE_COUNT + 2; + int GIT_CLONE_TASK__REMOTE_URI = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Api Baseline</b></em>' reference. + * The feature id for the '<em><b>Checkout Branch</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__API_BASELINE = TOOL_INSTALLATION_FEATURE_COUNT + 3; + int GIT_CLONE_TASK__CHECKOUT_BRANCH = SETUP_TASK_FEATURE_COUNT + 3; /** - * The feature id for the '<em><b>Mspec File Path</b></em>' attribute. + * The number of structural features of the '<em>Git Clone Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__MSPEC_FILE_PATH = TOOL_INSTALLATION_FEATURE_COUNT + 4; + int GIT_CLONE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 4; /** - * The feature id for the '<em><b>Clone Variable Name</b></em>' attribute. + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH__CLONE_VARIABLE_NAME = TOOL_INSTALLATION_FEATURE_COUNT + 5; + int ECLIPSE_PREFERENCE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; /** - * The number of structural features of the '<em>Branch</em>' class. + * The feature id for the '<em><b>Restrictions</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int BRANCH_FEATURE_COUNT = TOOL_INSTALLATION_FEATURE_COUNT + 6; + int ECLIPSE_PREFERENCE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; /** - * The feature id for the '<em><b>Project</b></em>' container reference. + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int API_BASELINE__PROJECT = 0; + int ECLIPSE_PREFERENCE_TASK__SCOPE = SETUP_TASK__SCOPE; /** - * The feature id for the '<em><b>Version</b></em>' attribute. + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int API_BASELINE__VERSION = 1; + int ECLIPSE_PREFERENCE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; /** - * The feature id for the '<em><b>Zip Location</b></em>' attribute. + * The feature id for the '<em><b>Key</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_PREFERENCE_TASK__KEY = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_PREFERENCE_TASK__VALUE = SETUP_TASK_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Eclipse Preference Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ECLIPSE_PREFERENCE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int STRING_VARIABLE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int API_BASELINE__ZIP_LOCATION = 2; + int STRING_VARIABLE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; /** - * The number of structural features of the '<em>Api Baseline</em>' class. + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int API_BASELINE_FEATURE_COUNT = 3; + int STRING_VARIABLE_TASK__SCOPE = SETUP_TASK__SCOPE; /** - * The feature id for the '<em><b>Branch</b></em>' container reference. + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int GIT_CLONE__BRANCH = 0; + int STRING_VARIABLE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; /** * The feature id for the '<em><b>Name</b></em>' attribute. * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int STRING_VARIABLE_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int GIT_CLONE__NAME = 1; + int STRING_VARIABLE_TASK__VALUE = SETUP_TASK_FEATURE_COUNT + 1; /** - * The feature id for the '<em><b>Remote URI</b></em>' attribute. + * The feature id for the '<em><b>Description</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int GIT_CLONE__REMOTE_URI = 2; + int STRING_VARIABLE_TASK__DESCRIPTION = SETUP_TASK_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Checkout Branch</b></em>' attribute. + * The number of structural features of the '<em>String Variable Task</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int GIT_CLONE__CHECKOUT_BRANCH = 3; + int STRING_VARIABLE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 3; /** - * The number of structural features of the '<em>Git Clone</em>' class. + * The feature id for the '<em><b>Requirements</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int GIT_CLONE_FEATURE_COUNT = 4; + int WORKING_SET_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; /** - * The feature id for the '<em><b>Branch</b></em>' reference. + * The feature id for the '<em><b>Restrictions</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int SETUP__BRANCH = 0; + int WORKING_SET_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; /** - * The feature id for the '<em><b>Eclipse Version</b></em>' reference. + * The feature id for the '<em><b>Scope</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int SETUP__ECLIPSE_VERSION = 1; + int WORKING_SET_TASK__SCOPE = SETUP_TASK__SCOPE; /** - * The feature id for the '<em><b>Preferences</b></em>' containment reference. + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int SETUP__PREFERENCES = 2; + int WORKING_SET_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; /** - * The feature id for the '<em><b>Update Locations</b></em>' containment reference list. + * The feature id for the '<em><b>Working Sets</b></em>' containment reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int SETUP__UPDATE_LOCATIONS = 3; + int WORKING_SET_TASK__WORKING_SETS = SETUP_TASK_FEATURE_COUNT + 0; /** - * The number of structural features of the '<em>Setup</em>' class. + * The number of structural features of the '<em>Working Set Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int WORKING_SET_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 1; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl <em>Resource Copy Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getResourceCopyTask() + * @generated + */ + int RESOURCE_COPY_TASK = 22; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> * @generated * @ordered */ - int SETUP_FEATURE_COUNT = 4; + int RESOURCE_COPY_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; /** - * The meta object id for the '<em>URI</em>' data type. + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESOURCE_COPY_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESOURCE_COPY_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESOURCE_COPY_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Source URL</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESOURCE_COPY_TASK__SOURCE_URL = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Target URL</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESOURCE_COPY_TASK__TARGET_URL = SETUP_TASK_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Resource Copy Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int RESOURCE_COPY_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl <em>Text Modify Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModifyTask() + * @generated + */ + int TEXT_MODIFY_TASK = 23; + + /** + * The feature id for the '<em><b>Requirements</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS; + + /** + * The feature id for the '<em><b>Restrictions</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS; + + /** + * The feature id for the '<em><b>Scope</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK__SCOPE = SETUP_TASK__SCOPE; + + /** + * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS; + + /** + * The feature id for the '<em><b>Url</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK__URL = SETUP_TASK_FEATURE_COUNT + 0; + + /** + * The feature id for the '<em><b>Modifications</b></em>' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK__MODIFICATIONS = SETUP_TASK_FEATURE_COUNT + 1; + + /** + * The number of structural features of the '<em>Text Modify Task</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFY_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl <em>Text Modification</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModification() + * @generated + */ + int TEXT_MODIFICATION = 24; + + /** + * The feature id for the '<em><b>Pattern</b></em>' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFICATION__PATTERN = 0; + + /** + * The feature id for the '<em><b>Substitutions</b></em>' attribute list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFICATION__SUBSTITUTIONS = 1; + + /** + * The number of structural features of the '<em>Text Modification</em>' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int TEXT_MODIFICATION_FEATURE_COUNT = 2; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope <em>Task Scope</em>}' enum. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskScope() + * @generated + */ + int SETUP_TASK_SCOPE = 25; + + /** + * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.Trigger <em>Trigger</em>}' enum. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.Trigger + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTrigger() + * @generated + */ + int TRIGGER = 26; + + /** + * The meta object id for the '<em>URI</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> * @see org.eclipse.emf.common.util.URI * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getURI() * @generated */ - int URI = 14; + int URI = 27; /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Configuration <em>Configuration</em>}'. + * The meta object id for the '<em>Exception</em>' data type. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see java.lang.Exception + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getException() + * @generated + */ + int EXCEPTION = 28; + + /** + * The meta object id for the '<em>Trigger Set</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.util.Set + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTriggerSet() + * @generated + */ + int TRIGGER_SET = 29; + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Configuration <em>Configuration</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> * @return the meta object for class '<em>Configuration</em>'. * @see org.eclipse.emf.cdo.releng.setup.Configuration * @generated @@ -859,35 +1676,13 @@ public interface SetupPackage extends EPackage EAttribute getProject_Name(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines <em>Api Baselines</em>}'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Api Baselines</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines() - * @see #getProject() - * @generated - */ - EReference getProject_ApiBaselines(); - - /** - * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup <em>Working Set Group</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Branch <em>Branch</em>}'. * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for the containment reference '<em>Working Set Group</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup() - * @see #getProject() + * <!-- end-user-doc --> + * @return the meta object for class '<em>Branch</em>'. + * @see org.eclipse.emf.cdo.releng.setup.Branch * @generated */ - EReference getProject_WorkingSetGroup(); - - /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Branch <em>Branch</em>}'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for class '<em>Branch</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Branch - * @generated - */ EClass getBranch(); /** @@ -913,80 +1708,90 @@ public interface SetupPackage extends EPackage EAttribute getBranch_Name(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Branch#getGitClones <em>Git Clones</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask <em>Api Baseline Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Git Clones</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Branch#getGitClones() - * @see #getBranch() + * @return the meta object for class '<em>Api Baseline Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask * @generated */ - EReference getBranch_GitClones(); + EClass getApiBaselineTask(); /** - * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline <em>Api Baseline</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion <em>Version</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the reference '<em>Api Baseline</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline() - * @see #getBranch() + * @return the meta object for the attribute '<em>Version</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion() + * @see #getApiBaselineTask() * @generated */ - EReference getBranch_ApiBaseline(); + EAttribute getApiBaselineTask_Version(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath <em>Mspec File Path</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation <em>Zip Location</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Mspec File Path</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath() - * @see #getBranch() + * @return the meta object for the attribute '<em>Zip Location</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation() + * @see #getApiBaselineTask() * @generated */ - EAttribute getBranch_MspecFilePath(); + EAttribute getApiBaselineTask_ZipLocation(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName <em>Clone Variable Name</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask <em>Git Clone Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Clone Variable Name</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName() - * @see #getBranch() + * @return the meta object for class '<em>Git Clone Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask * @generated */ - EAttribute getBranch_CloneVariableName(); + EClass getGitCloneTask(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation <em>Tool Installation</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName <em>Name</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Tool Installation</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName() + * @see #getGitCloneTask() * @generated */ - EClass getToolInstallation(); + EAttribute getGitCloneTask_Name(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getDirectorCalls <em>Director Calls</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName <em>Remote Name</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Director Calls</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation#getDirectorCalls() - * @see #getToolInstallation() + * @return the meta object for the attribute '<em>Remote Name</em>'. + * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName() + * @see #getGitCloneTask() * @generated */ - EReference getToolInstallation_DirectorCalls(); + EAttribute getGitCloneTask_RemoteName(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getToolPreferences <em>Tool Preferences</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI <em>Remote URI</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Tool Preferences</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation#getToolPreferences() - * @see #getToolInstallation() + * @return the meta object for the attribute '<em>Remote URI</em>'. + * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI() + * @see #getGitCloneTask() * @generated */ - EReference getToolInstallation_ToolPreferences(); + EAttribute getGitCloneTask_RemoteURI(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch <em>Checkout Branch</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Checkout Branch</em>'. + * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch() + * @see #getGitCloneTask() + * @generated + */ + EAttribute getGitCloneTask_CheckoutBranch(); /** * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion <em>Eclipse Version</em>}'. @@ -1021,47 +1826,79 @@ public interface SetupPackage extends EPackage EAttribute getEclipseVersion_Version(); /** - * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall <em>Director Call</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.P2Task <em>P2 Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference '<em>Director Call</em>'. - * @see org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall() - * @see #getEclipseVersion() + * @return the meta object for class '<em>P2 Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.P2Task * @generated */ - EReference getEclipseVersion_DirectorCall(); + EClass getP2Task(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall <em>Director Call</em>}'. + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits <em>Installable Units</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Director Call</em>'. - * @see org.eclipse.emf.cdo.releng.setup.DirectorCall + * @return the meta object for the containment reference list '<em>Installable Units</em>'. + * @see org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits() + * @see #getP2Task() * @generated */ - EClass getDirectorCall(); + EReference getP2Task_InstallableUnits(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits <em>Installable Units</em>}'. + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories <em>P2 Repositories</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Installable Units</em>'. - * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits() - * @see #getDirectorCall() + * @return the meta object for the containment reference list '<em>P2 Repositories</em>'. + * @see org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories() + * @see #getP2Task() * @generated */ - EReference getDirectorCall_InstallableUnits(); + EReference getP2Task_P2Repositories(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories <em>P2 Repositories</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask <em>String Variable Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>P2 Repositories</em>'. - * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories() - * @see #getDirectorCall() + * @return the meta object for class '<em>String Variable Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask * @generated */ - EReference getDirectorCall_P2Repositories(); + EClass getStringVariableTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName() + * @see #getStringVariableTask() + * @generated + */ + EAttribute getStringVariableTask_Name(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue <em>Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Value</em>'. + * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue() + * @see #getStringVariableTask() + * @generated + */ + EAttribute getStringVariableTask_Value(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription <em>Description</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Description</em>'. + * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription() + * @see #getStringVariableTask() + * @generated + */ + EAttribute getStringVariableTask_Description(); /** * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit <em>Installable Unit</em>}'. @@ -1074,15 +1911,15 @@ public interface SetupPackage extends EPackage EClass getInstallableUnit(); /** - * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}'. + * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the container reference '<em>Director Call</em>'. - * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall() + * @return the meta object for the container reference '<em>P2 Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task() * @see #getInstallableUnit() * @generated */ - EReference getInstallableUnit_DirectorCall(); + EReference getInstallableUnit_P2Task(); /** * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getId <em>Id</em>}'. @@ -1106,15 +1943,15 @@ public interface SetupPackage extends EPackage EClass getP2Repository(); /** - * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}'. + * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the container reference '<em>Director Call</em>'. - * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall() + * @return the meta object for the container reference '<em>P2 Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task() * @see #getP2Repository() * @generated */ - EReference getP2Repository_DirectorCall(); + EReference getP2Repository_P2Task(); /** * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getUrl <em>Url</em>}'. @@ -1128,219 +1965,376 @@ public interface SetupPackage extends EPackage EAttribute getP2Repository_Url(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline <em>Api Baseline</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Api Baseline</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline + * @return the meta object for class '<em>Setup</em>'. + * @see org.eclipse.emf.cdo.releng.setup.Setup * @generated */ - EClass getApiBaseline(); + EClass getSetup(); /** - * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}'. + * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getBranch <em>Branch</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the container reference '<em>Project</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject() - * @see #getApiBaseline() + * @return the meta object for the reference '<em>Branch</em>'. + * @see org.eclipse.emf.cdo.releng.setup.Setup#getBranch() + * @see #getSetup() * @generated */ - EReference getApiBaseline_Project(); + EReference getSetup_Branch(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion <em>Version</em>}'. + * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion <em>Eclipse Version</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Version</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion() - * @see #getApiBaseline() + * @return the meta object for the reference '<em>Eclipse Version</em>'. + * @see org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion() + * @see #getSetup() * @generated */ - EAttribute getApiBaseline_Version(); + EReference getSetup_EclipseVersion(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation <em>Zip Location</em>}'. + * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Zip Location</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation() - * @see #getApiBaseline() + * @return the meta object for the reference '<em>Preferences</em>'. + * @see org.eclipse.emf.cdo.releng.setup.Setup#getPreferences() + * @see #getSetup() * @generated */ - EAttribute getApiBaseline_ZipLocation(); + EReference getSetup_Preferences(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.GitClone <em>Git Clone</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.SetupTask <em>Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Git Clone</em>'. - * @see org.eclipse.emf.cdo.releng.setup.GitClone + * @return the meta object for class '<em>Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTask * @generated */ - EClass getGitClone(); + EClass getSetupTask(); /** - * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}'. + * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRequirements <em>Requirements</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the container reference '<em>Branch</em>'. - * @see org.eclipse.emf.cdo.releng.setup.GitClone#getBranch() - * @see #getGitClone() + * @return the meta object for the reference list '<em>Requirements</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getRequirements() + * @see #getSetupTask() * @generated */ - EReference getGitClone_Branch(); + EReference getSetupTask_Requirements(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getName <em>Name</em>}'. + * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRestrictions <em>Restrictions</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Name</em>'. - * @see org.eclipse.emf.cdo.releng.setup.GitClone#getName() - * @see #getGitClone() + * @return the meta object for the reference list '<em>Restrictions</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getRestrictions() + * @see #getSetupTask() * @generated */ - EAttribute getGitClone_Name(); + EReference getSetupTask_Restrictions(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI <em>Remote URI</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getScope <em>Scope</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Remote URI</em>'. - * @see org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI() - * @see #getGitClone() + * @return the meta object for the attribute '<em>Scope</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getScope() + * @see #getSetupTask() * @generated */ - EAttribute getGitClone_RemoteURI(); + EAttribute getSetupTask_Scope(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch <em>Checkout Branch</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers <em>Excluded Triggers</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Checkout Branch</em>'. - * @see org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch() - * @see #getGitClone() + * @return the meta object for the attribute '<em>Excluded Triggers</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers() + * @see #getSetupTask() * @generated */ - EAttribute getGitClone_CheckoutBranch(); + EAttribute getSetupTask_ExcludedTriggers(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask <em>Working Set Task</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Working Set Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.WorkingSetTask + * @generated + */ + EClass getWorkingSetTask(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask#getWorkingSets <em>Working Sets</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Setup</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Setup + * @return the meta object for the containment reference list '<em>Working Sets</em>'. + * @see org.eclipse.emf.cdo.releng.setup.WorkingSetTask#getWorkingSets() + * @see #getWorkingSetTask() * @generated */ - EClass getSetup(); + EReference getWorkingSetTask_WorkingSets(); /** - * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getBranch <em>Branch</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask <em>Resource Copy Task</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Resource Copy Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask + * @generated + */ + EClass getResourceCopyTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL <em>Source URL</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Source URL</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL() + * @see #getResourceCopyTask() + * @generated + */ + EAttribute getResourceCopyTask_SourceURL(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL <em>Target URL</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Target URL</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL() + * @see #getResourceCopyTask() + * @generated + */ + EAttribute getResourceCopyTask_TargetURL(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask <em>Text Modify Task</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Text Modify Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask + * @generated + */ + EClass getTextModifyTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl <em>Url</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Url</em>'. + * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl() + * @see #getTextModifyTask() + * @generated + */ + EAttribute getTextModifyTask_Url(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getModifications <em>Modifications</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Modifications</em>'. + * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask#getModifications() + * @see #getTextModifyTask() + * @generated + */ + EReference getTextModifyTask_Modifications(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.TextModification <em>Text Modification</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Text Modification</em>'. + * @see org.eclipse.emf.cdo.releng.setup.TextModification + * @generated + */ + EClass getTextModification(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.TextModification#getPattern <em>Pattern</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Pattern</em>'. + * @see org.eclipse.emf.cdo.releng.setup.TextModification#getPattern() + * @see #getTextModification() + * @generated + */ + EAttribute getTextModification_Pattern(); + + /** + * Returns the meta object for the attribute list '{@link org.eclipse.emf.cdo.releng.setup.TextModification#getSubstitutions <em>Substitutions</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute list '<em>Substitutions</em>'. + * @see org.eclipse.emf.cdo.releng.setup.TextModification#getSubstitutions() + * @see #getTextModification() + * @generated + */ + EAttribute getTextModification_Substitutions(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask <em>Eclipse Ini Task</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Eclipse Ini Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask + * @generated + */ + EClass getEclipseIniTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption <em>Option</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the reference '<em>Branch</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Setup#getBranch() - * @see #getSetup() + * @return the meta object for the attribute '<em>Option</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption() + * @see #getEclipseIniTask() * @generated */ - EReference getSetup_Branch(); + EAttribute getEclipseIniTask_Option(); /** - * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion <em>Eclipse Version</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue <em>Value</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the reference '<em>Eclipse Version</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion() - * @see #getSetup() + * @return the meta object for the attribute '<em>Value</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue() + * @see #getEclipseIniTask() * @generated */ - EReference getSetup_EclipseVersion(); + EAttribute getEclipseIniTask_Value(); /** - * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm <em>Vm</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference '<em>Preferences</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Setup#getPreferences() - * @see #getSetup() + * @return the meta object for the attribute '<em>Vm</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm() + * @see #getEclipseIniTask() * @generated */ - EReference getSetup_Preferences(); + EAttribute getEclipseIniTask_Vm(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Setup#getUpdateLocations <em>Update Locations</em>}'. + * Returns the meta object for enum '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope <em>Task Scope</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Update Locations</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Setup#getUpdateLocations() - * @see #getSetup() + * @return the meta object for enum '<em>Task Scope</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope * @generated */ - EReference getSetup_UpdateLocations(); + EEnum getSetupTaskScope(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference <em>Tool Preference</em>}'. + * Returns the meta object for enum '{@link org.eclipse.emf.cdo.releng.setup.Trigger <em>Trigger</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Tool Preference</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ToolPreference + * @return the meta object for enum '<em>Trigger</em>'. + * @see org.eclipse.emf.cdo.releng.setup.Trigger * @generated */ - EClass getToolPreference(); + EEnum getTrigger(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey <em>Key</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask <em>Compound Setup Task</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Compound Setup Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.CompoundSetupTask + * @generated + */ + EClass getCompoundSetupTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName <em>Name</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Key</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey() - * @see #getToolPreference() + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName() + * @see #getCompoundSetupTask() * @generated */ - EAttribute getToolPreference_Key(); + EAttribute getCompoundSetupTask_Name(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue <em>Value</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask <em>One Time Setup Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Value</em>'. - * @see org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue() - * @see #getToolPreference() + * @return the meta object for class '<em>One Time Setup Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask * @generated */ - EAttribute getToolPreference_Value(); + EClass getOneTimeSetupTask(); /** - * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation <em>Link Location</em>}'. + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId <em>Id</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for class '<em>Link Location</em>'. - * @see org.eclipse.emf.cdo.releng.setup.LinkLocation + * @return the meta object for the attribute '<em>Id</em>'. + * @see org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId() + * @see #getOneTimeSetupTask() * @generated */ - EClass getLinkLocation(); + EAttribute getOneTimeSetupTask_Id(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath <em>Path</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem <em>Configurable Item</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Path</em>'. - * @see org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath() - * @see #getLinkLocation() + * @return the meta object for class '<em>Configurable Item</em>'. + * @see org.eclipse.emf.cdo.releng.setup.ConfigurableItem * @generated */ - EAttribute getLinkLocation_Path(); + EClass getConfigurableItem(); /** - * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getName <em>Name</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask <em>Buckminster Import Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the attribute '<em>Name</em>'. - * @see org.eclipse.emf.cdo.releng.setup.LinkLocation#getName() - * @see #getLinkLocation() + * @return the meta object for class '<em>Buckminster Import Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask + * @generated + */ + EClass getBuckminsterImportTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec <em>Mspec</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Mspec</em>'. + * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec() + * @see #getBuckminsterImportTask() * @generated */ - EAttribute getLinkLocation_Name(); + EAttribute getBuckminsterImportTask_Mspec(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform <em>Target Platform</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Target Platform</em>'. + * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform() + * @see #getBuckminsterImportTask() + * @generated + */ + EAttribute getBuckminsterImportTask_TargetPlatform(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool <em>Bundle Pool</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Bundle Pool</em>'. + * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool() + * @see #getBuckminsterImportTask() + * @generated + */ + EAttribute getBuckminsterImportTask_BundlePool(); /** * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Preferences <em>Preferences</em>}'. @@ -1386,15 +2380,89 @@ public interface SetupPackage extends EPackage EAttribute getPreferences_GitPrefix(); /** - * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Preferences#getLinkLocations <em>Link Locations</em>}'. + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask <em>Link Location Task</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Link Locations</em>'. - * @see org.eclipse.emf.cdo.releng.setup.Preferences#getLinkLocations() - * @see #getPreferences() + * @return the meta object for class '<em>Link Location Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask * @generated */ - EReference getPreferences_LinkLocations(); + EClass getLinkLocationTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath <em>Path</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Path</em>'. + * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath() + * @see #getLinkLocationTask() + * @generated + */ + EAttribute getLinkLocationTask_Path(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName <em>Name</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Name</em>'. + * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName() + * @see #getLinkLocationTask() + * @generated + */ + EAttribute getLinkLocationTask_Name(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer <em>Task Container</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Task Container</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskContainer + * @generated + */ + EClass getSetupTaskContainer(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer#getSetupTasks <em>Setup Tasks</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the containment reference list '<em>Setup Tasks</em>'. + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskContainer#getSetupTasks() + * @see #getSetupTaskContainer() + * @generated + */ + EReference getSetupTaskContainer_SetupTasks(); + + /** + * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask <em>Eclipse Preference Task</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for class '<em>Eclipse Preference Task</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask + * @generated + */ + EClass getEclipsePreferenceTask(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey <em>Key</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Key</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey() + * @see #getEclipsePreferenceTask() + * @generated + */ + EAttribute getEclipsePreferenceTask_Key(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue <em>Value</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the attribute '<em>Value</em>'. + * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue() + * @see #getEclipsePreferenceTask() + * @generated + */ + EAttribute getEclipsePreferenceTask_Value(); /** * Returns the meta object for data type '{@link org.eclipse.emf.common.util.URI <em>URI</em>}'. @@ -1408,9 +2476,31 @@ public interface SetupPackage extends EPackage EDataType getURI(); /** - * Returns the factory that creates the instances of the model. + * Returns the meta object for data type '{@link java.lang.Exception <em>Exception</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for data type '<em>Exception</em>'. + * @see java.lang.Exception + * @model instanceClass="java.lang.Exception" + * @generated + */ + EDataType getException(); + + /** + * Returns the meta object for data type '{@link java.util.Set <em>Trigger Set</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @return the meta object for data type '<em>Trigger Set</em>'. + * @see java.util.Set + * @model instanceClass="java.util.Set<org.eclipse.emf.cdo.releng.setup.Trigger>" + * @generated + */ + EDataType getTriggerSet(); + + /** + * Returns the factory that creates the instances of the model. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> * @return the factory that creates the instances of the model. * @generated */ @@ -1492,104 +2582,98 @@ public interface SetupPackage extends EPackage EAttribute PROJECT__NAME = eINSTANCE.getProject_Name(); /** - * The meta object literal for the '<em><b>Api Baselines</b></em>' containment reference list feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl <em>Branch</em>}' class. * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.BranchImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBranch() * @generated */ - EReference PROJECT__API_BASELINES = eINSTANCE.getProject_ApiBaselines(); + EClass BRANCH = eINSTANCE.getBranch(); /** - * The meta object literal for the '<em><b>Working Set Group</b></em>' containment reference feature. + * The meta object literal for the '<em><b>Project</b></em>' container reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference PROJECT__WORKING_SET_GROUP = eINSTANCE.getProject_WorkingSetGroup(); - - /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl <em>Branch</em>}' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.BranchImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBranch() - * @generated - */ - EClass BRANCH = eINSTANCE.getBranch(); + EReference BRANCH__PROJECT = eINSTANCE.getBranch_Project(); /** - * The meta object literal for the '<em><b>Project</b></em>' container reference feature. + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference BRANCH__PROJECT = eINSTANCE.getBranch_Project(); + EAttribute BRANCH__NAME = eINSTANCE.getBranch_Name(); /** - * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl <em>Api Baseline Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaselineTask() * @generated */ - EAttribute BRANCH__NAME = eINSTANCE.getBranch_Name(); + EClass API_BASELINE_TASK = eINSTANCE.getApiBaselineTask(); /** - * The meta object literal for the '<em><b>Git Clones</b></em>' containment reference list feature. + * The meta object literal for the '<em><b>Version</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference BRANCH__GIT_CLONES = eINSTANCE.getBranch_GitClones(); + EAttribute API_BASELINE_TASK__VERSION = eINSTANCE.getApiBaselineTask_Version(); /** - * The meta object literal for the '<em><b>Api Baseline</b></em>' reference feature. + * The meta object literal for the '<em><b>Zip Location</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference BRANCH__API_BASELINE = eINSTANCE.getBranch_ApiBaseline(); + EAttribute API_BASELINE_TASK__ZIP_LOCATION = eINSTANCE.getApiBaselineTask_ZipLocation(); /** - * The meta object literal for the '<em><b>Mspec File Path</b></em>' attribute feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl <em>Git Clone Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitCloneTask() * @generated */ - EAttribute BRANCH__MSPEC_FILE_PATH = eINSTANCE.getBranch_MspecFilePath(); + EClass GIT_CLONE_TASK = eINSTANCE.getGitCloneTask(); /** - * The meta object literal for the '<em><b>Clone Variable Name</b></em>' attribute feature. + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute BRANCH__CLONE_VARIABLE_NAME = eINSTANCE.getBranch_CloneVariableName(); + EAttribute GIT_CLONE_TASK__NAME = eINSTANCE.getGitCloneTask_Name(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl <em>Tool Installation</em>}' class. + * The meta object literal for the '<em><b>Remote Name</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolInstallation() * @generated */ - EClass TOOL_INSTALLATION = eINSTANCE.getToolInstallation(); + EAttribute GIT_CLONE_TASK__REMOTE_NAME = eINSTANCE.getGitCloneTask_RemoteName(); /** - * The meta object literal for the '<em><b>Director Calls</b></em>' containment reference list feature. + * The meta object literal for the '<em><b>Remote URI</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference TOOL_INSTALLATION__DIRECTOR_CALLS = eINSTANCE.getToolInstallation_DirectorCalls(); + EAttribute GIT_CLONE_TASK__REMOTE_URI = eINSTANCE.getGitCloneTask_RemoteURI(); /** - * The meta object literal for the '<em><b>Tool Preferences</b></em>' containment reference list feature. + * The meta object literal for the '<em><b>Checkout Branch</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference TOOL_INSTALLATION__TOOL_PREFERENCES = eINSTANCE.getToolInstallation_ToolPreferences(); + EAttribute GIT_CLONE_TASK__CHECKOUT_BRANCH = eINSTANCE.getGitCloneTask_CheckoutBranch(); /** * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl <em>Eclipse Version</em>}' class. @@ -1618,38 +2702,64 @@ public interface SetupPackage extends EPackage EAttribute ECLIPSE_VERSION__VERSION = eINSTANCE.getEclipseVersion_Version(); /** - * The meta object literal for the '<em><b>Director Call</b></em>' containment reference feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl <em>P2 Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getP2Task() * @generated */ - EReference ECLIPSE_VERSION__DIRECTOR_CALL = eINSTANCE.getEclipseVersion_DirectorCall(); + EClass P2_TASK = eINSTANCE.getP2Task(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl <em>Director Call</em>}' class. + * The meta object literal for the '<em><b>Installable Units</b></em>' containment reference list feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getDirectorCall() * @generated */ - EClass DIRECTOR_CALL = eINSTANCE.getDirectorCall(); + EReference P2_TASK__INSTALLABLE_UNITS = eINSTANCE.getP2Task_InstallableUnits(); /** - * The meta object literal for the '<em><b>Installable Units</b></em>' containment reference list feature. + * The meta object literal for the '<em><b>P2 Repositories</b></em>' containment reference list feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference DIRECTOR_CALL__INSTALLABLE_UNITS = eINSTANCE.getDirectorCall_InstallableUnits(); + EReference P2_TASK__P2_REPOSITORIES = eINSTANCE.getP2Task_P2Repositories(); /** - * The meta object literal for the '<em><b>P2 Repositories</b></em>' containment reference list feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl <em>String Variable Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getStringVariableTask() + * @generated + */ + EClass STRING_VARIABLE_TASK = eINSTANCE.getStringVariableTask(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute STRING_VARIABLE_TASK__NAME = eINSTANCE.getStringVariableTask_Name(); + + /** + * The meta object literal for the '<em><b>Value</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute STRING_VARIABLE_TASK__VALUE = eINSTANCE.getStringVariableTask_Value(); + + /** + * The meta object literal for the '<em><b>Description</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference DIRECTOR_CALL__P2_REPOSITORIES = eINSTANCE.getDirectorCall_P2Repositories(); + EAttribute STRING_VARIABLE_TASK__DESCRIPTION = eINSTANCE.getStringVariableTask_Description(); /** * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl <em>Installable Unit</em>}' class. @@ -1662,12 +2772,12 @@ public interface SetupPackage extends EPackage EClass INSTALLABLE_UNIT = eINSTANCE.getInstallableUnit(); /** - * The meta object literal for the '<em><b>Director Call</b></em>' container reference feature. + * The meta object literal for the '<em><b>P2 Task</b></em>' container reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference INSTALLABLE_UNIT__DIRECTOR_CALL = eINSTANCE.getInstallableUnit_DirectorCall(); + EReference INSTALLABLE_UNIT__P2_TASK = eINSTANCE.getInstallableUnit_P2Task(); /** * The meta object literal for the '<em><b>Id</b></em>' attribute feature. @@ -1688,12 +2798,12 @@ public interface SetupPackage extends EPackage EClass P2_REPOSITORY = eINSTANCE.getP2Repository(); /** - * The meta object literal for the '<em><b>Director Call</b></em>' container reference feature. + * The meta object literal for the '<em><b>P2 Task</b></em>' container reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference P2_REPOSITORY__DIRECTOR_CALL = eINSTANCE.getP2Repository_DirectorCall(); + EReference P2_REPOSITORY__P2_TASK = eINSTANCE.getP2Repository_P2Task(); /** * The meta object literal for the '<em><b>Url</b></em>' attribute feature. @@ -1704,174 +2814,310 @@ public interface SetupPackage extends EPackage EAttribute P2_REPOSITORY__URL = eINSTANCE.getP2Repository_Url(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl <em>Api Baseline</em>}' class. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaseline() + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup() * @generated */ - EClass API_BASELINE = eINSTANCE.getApiBaseline(); + EClass SETUP = eINSTANCE.getSetup(); /** - * The meta object literal for the '<em><b>Project</b></em>' container reference feature. + * The meta object literal for the '<em><b>Branch</b></em>' reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference API_BASELINE__PROJECT = eINSTANCE.getApiBaseline_Project(); + EReference SETUP__BRANCH = eINSTANCE.getSetup_Branch(); /** - * The meta object literal for the '<em><b>Version</b></em>' attribute feature. + * The meta object literal for the '<em><b>Eclipse Version</b></em>' reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute API_BASELINE__VERSION = eINSTANCE.getApiBaseline_Version(); + EReference SETUP__ECLIPSE_VERSION = eINSTANCE.getSetup_EclipseVersion(); /** - * The meta object literal for the '<em><b>Zip Location</b></em>' attribute feature. + * The meta object literal for the '<em><b>Preferences</b></em>' reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute API_BASELINE__ZIP_LOCATION = eINSTANCE.getApiBaseline_ZipLocation(); + EReference SETUP__PREFERENCES = eINSTANCE.getSetup_Preferences(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl <em>Git Clone</em>}' class. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl <em>Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitClone() + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTask() * @generated */ - EClass GIT_CLONE = eINSTANCE.getGitClone(); + EClass SETUP_TASK = eINSTANCE.getSetupTask(); /** - * The meta object literal for the '<em><b>Branch</b></em>' container reference feature. + * The meta object literal for the '<em><b>Requirements</b></em>' reference list feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference GIT_CLONE__BRANCH = eINSTANCE.getGitClone_Branch(); + EReference SETUP_TASK__REQUIREMENTS = eINSTANCE.getSetupTask_Requirements(); /** - * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * The meta object literal for the '<em><b>Restrictions</b></em>' reference list feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute GIT_CLONE__NAME = eINSTANCE.getGitClone_Name(); + EReference SETUP_TASK__RESTRICTIONS = eINSTANCE.getSetupTask_Restrictions(); /** - * The meta object literal for the '<em><b>Remote URI</b></em>' attribute feature. + * The meta object literal for the '<em><b>Scope</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute GIT_CLONE__REMOTE_URI = eINSTANCE.getGitClone_RemoteURI(); + EAttribute SETUP_TASK__SCOPE = eINSTANCE.getSetupTask_Scope(); /** - * The meta object literal for the '<em><b>Checkout Branch</b></em>' attribute feature. + * The meta object literal for the '<em><b>Excluded Triggers</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute GIT_CLONE__CHECKOUT_BRANCH = eINSTANCE.getGitClone_CheckoutBranch(); + EAttribute SETUP_TASK__EXCLUDED_TRIGGERS = eINSTANCE.getSetupTask_ExcludedTriggers(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl <em>Working Set Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getWorkingSetTask() + * @generated + */ + EClass WORKING_SET_TASK = eINSTANCE.getWorkingSetTask(); + + /** + * The meta object literal for the '<em><b>Working Sets</b></em>' containment reference list feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup() * @generated */ - EClass SETUP = eINSTANCE.getSetup(); + EReference WORKING_SET_TASK__WORKING_SETS = eINSTANCE.getWorkingSetTask_WorkingSets(); /** - * The meta object literal for the '<em><b>Branch</b></em>' reference feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl <em>Resource Copy Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getResourceCopyTask() + * @generated + */ + EClass RESOURCE_COPY_TASK = eINSTANCE.getResourceCopyTask(); + + /** + * The meta object literal for the '<em><b>Source URL</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute RESOURCE_COPY_TASK__SOURCE_URL = eINSTANCE.getResourceCopyTask_SourceURL(); + + /** + * The meta object literal for the '<em><b>Target URL</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute RESOURCE_COPY_TASK__TARGET_URL = eINSTANCE.getResourceCopyTask_TargetURL(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl <em>Text Modify Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModifyTask() + * @generated + */ + EClass TEXT_MODIFY_TASK = eINSTANCE.getTextModifyTask(); + + /** + * The meta object literal for the '<em><b>Url</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute TEXT_MODIFY_TASK__URL = eINSTANCE.getTextModifyTask_Url(); + + /** + * The meta object literal for the '<em><b>Modifications</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference TEXT_MODIFY_TASK__MODIFICATIONS = eINSTANCE.getTextModifyTask_Modifications(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl <em>Text Modification</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModification() + * @generated + */ + EClass TEXT_MODIFICATION = eINSTANCE.getTextModification(); + + /** + * The meta object literal for the '<em><b>Pattern</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute TEXT_MODIFICATION__PATTERN = eINSTANCE.getTextModification_Pattern(); + + /** + * The meta object literal for the '<em><b>Substitutions</b></em>' attribute list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute TEXT_MODIFICATION__SUBSTITUTIONS = eINSTANCE.getTextModification_Substitutions(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl <em>Eclipse Ini Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipseIniTask() + * @generated + */ + EClass ECLIPSE_INI_TASK = eINSTANCE.getEclipseIniTask(); + + /** + * The meta object literal for the '<em><b>Option</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference SETUP__BRANCH = eINSTANCE.getSetup_Branch(); + EAttribute ECLIPSE_INI_TASK__OPTION = eINSTANCE.getEclipseIniTask_Option(); /** - * The meta object literal for the '<em><b>Eclipse Version</b></em>' reference feature. + * The meta object literal for the '<em><b>Value</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference SETUP__ECLIPSE_VERSION = eINSTANCE.getSetup_EclipseVersion(); + EAttribute ECLIPSE_INI_TASK__VALUE = eINSTANCE.getEclipseIniTask_Value(); /** - * The meta object literal for the '<em><b>Preferences</b></em>' containment reference feature. + * The meta object literal for the '<em><b>Vm</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference SETUP__PREFERENCES = eINSTANCE.getSetup_Preferences(); + EAttribute ECLIPSE_INI_TASK__VM = eINSTANCE.getEclipseIniTask_Vm(); /** - * The meta object literal for the '<em><b>Update Locations</b></em>' containment reference list feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope <em>Task Scope</em>}' enum. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskScope() * @generated */ - EReference SETUP__UPDATE_LOCATIONS = eINSTANCE.getSetup_UpdateLocations(); + EEnum SETUP_TASK_SCOPE = eINSTANCE.getSetupTaskScope(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl <em>Tool Preference</em>}' class. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.Trigger <em>Trigger</em>}' enum. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolPreference() + * @see org.eclipse.emf.cdo.releng.setup.Trigger + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTrigger() * @generated */ - EClass TOOL_PREFERENCE = eINSTANCE.getToolPreference(); + EEnum TRIGGER = eINSTANCE.getTrigger(); /** - * The meta object literal for the '<em><b>Key</b></em>' attribute feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl <em>Compound Setup Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getCompoundSetupTask() + * @generated + */ + EClass COMPOUND_SETUP_TASK = eINSTANCE.getCompoundSetupTask(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EAttribute TOOL_PREFERENCE__KEY = eINSTANCE.getToolPreference_Key(); + EAttribute COMPOUND_SETUP_TASK__NAME = eINSTANCE.getCompoundSetupTask_Name(); /** - * The meta object literal for the '<em><b>Value</b></em>' attribute feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl <em>One Time Setup Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getOneTimeSetupTask() * @generated */ - EAttribute TOOL_PREFERENCE__VALUE = eINSTANCE.getToolPreference_Value(); + EClass ONE_TIME_SETUP_TASK = eINSTANCE.getOneTimeSetupTask(); /** - * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl <em>Link Location</em>}' class. + * The meta object literal for the '<em><b>Id</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl - * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocation() * @generated */ - EClass LINK_LOCATION = eINSTANCE.getLinkLocation(); + EAttribute ONE_TIME_SETUP_TASK__ID = eINSTANCE.getOneTimeSetupTask_Id(); /** - * The meta object literal for the '<em><b>Path</b></em>' attribute feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl <em>Configurable Item</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfigurableItem() * @generated */ - EAttribute LINK_LOCATION__PATH = eINSTANCE.getLinkLocation_Path(); + EClass CONFIGURABLE_ITEM = eINSTANCE.getConfigurableItem(); /** - * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl <em>Buckminster Import Task</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBuckminsterImportTask() * @generated */ - EAttribute LINK_LOCATION__NAME = eINSTANCE.getLinkLocation_Name(); + EClass BUCKMINSTER_IMPORT_TASK = eINSTANCE.getBuckminsterImportTask(); + + /** + * The meta object literal for the '<em><b>Mspec</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute BUCKMINSTER_IMPORT_TASK__MSPEC = eINSTANCE.getBuckminsterImportTask_Mspec(); + + /** + * The meta object literal for the '<em><b>Target Platform</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM = eINSTANCE.getBuckminsterImportTask_TargetPlatform(); + + /** + * The meta object literal for the '<em><b>Bundle Pool</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL = eINSTANCE.getBuckminsterImportTask_BundlePool(); /** * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl <em>Preferences</em>}' class. @@ -1908,12 +3154,74 @@ public interface SetupPackage extends EPackage EAttribute PREFERENCES__GIT_PREFIX = eINSTANCE.getPreferences_GitPrefix(); /** - * The meta object literal for the '<em><b>Link Locations</b></em>' containment reference list feature. + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl <em>Link Location Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocationTask() + * @generated + */ + EClass LINK_LOCATION_TASK = eINSTANCE.getLinkLocationTask(); + + /** + * The meta object literal for the '<em><b>Path</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute LINK_LOCATION_TASK__PATH = eINSTANCE.getLinkLocationTask_Path(); + + /** + * The meta object literal for the '<em><b>Name</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute LINK_LOCATION_TASK__NAME = eINSTANCE.getLinkLocationTask_Name(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl <em>Task Container</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskContainer() + * @generated + */ + EClass SETUP_TASK_CONTAINER = eINSTANCE.getSetupTaskContainer(); + + /** + * The meta object literal for the '<em><b>Setup Tasks</b></em>' containment reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference SETUP_TASK_CONTAINER__SETUP_TASKS = eINSTANCE.getSetupTaskContainer_SetupTasks(); + + /** + * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl <em>Eclipse Preference Task</em>}' class. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipsePreferenceTask() + * @generated + */ + EClass ECLIPSE_PREFERENCE_TASK = eINSTANCE.getEclipsePreferenceTask(); + + /** + * The meta object literal for the '<em><b>Key</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute ECLIPSE_PREFERENCE_TASK__KEY = eINSTANCE.getEclipsePreferenceTask_Key(); + + /** + * The meta object literal for the '<em><b>Value</b></em>' attribute feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - EReference PREFERENCES__LINK_LOCATIONS = eINSTANCE.getPreferences_LinkLocations(); + EAttribute ECLIPSE_PREFERENCE_TASK__VALUE = eINSTANCE.getEclipsePreferenceTask_Value(); /** * The meta object literal for the '<em>URI</em>' data type. @@ -1925,6 +3233,26 @@ public interface SetupPackage extends EPackage */ EDataType URI = eINSTANCE.getURI(); + /** + * The meta object literal for the '<em>Exception</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.lang.Exception + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getException() + * @generated + */ + EDataType EXCEPTION = eINSTANCE.getException(); + + /** + * The meta object literal for the '<em>Trigger Set</em>' data type. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see java.util.Set + * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTriggerSet() + * @generated + */ + EDataType TRIGGER_SET = eINSTANCE.getTriggerSet(); + } } // SetupPackage diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java new file mode 100644 index 0000000000..67280a0d2f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java @@ -0,0 +1,139 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; + +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRequirements <em>Requirements</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRestrictions <em>Restrictions</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getScope <em>Scope</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers <em>Excluded Triggers</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask() + * @model abstract="true" + * @generated + */ +public interface SetupTask extends EObject +{ + /** + * Returns the value of the '<em><b>Requirements</b></em>' reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.SetupTask}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Requirements</em>' reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Requirements</em>' reference list. + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_Requirements() + * @model + * @generated + */ + EList<SetupTask> getRequirements(); + + /** + * Returns the value of the '<em><b>Restrictions</b></em>' reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Restrictions</em>' reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Restrictions</em>' reference list. + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_Restrictions() + * @model + * @generated + */ + EList<ConfigurableItem> getRestrictions(); + + /** + * Returns the value of the '<em><b>Scope</b></em>' attribute. + * The literals are from the enumeration {@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Scope</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Scope</em>' attribute. + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_Scope() + * @model transient="true" changeable="false" volatile="true" derived="true" + * @generated + */ + SetupTaskScope getScope(); + + /** + * Returns the value of the '<em><b>Excluded Triggers</b></em>' attribute. + * The default value is <code>""</code>. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Excluded Triggers</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Excluded Triggers</em>' attribute. + * @see #setExcludedTriggers(Set) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_ExcludedTriggers() + * @model default="" dataType="org.eclipse.emf.cdo.releng.setup.TriggerSet" required="true" + * @generated + */ + Set<Trigger> getExcludedTriggers(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers <em>Excluded Triggers</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Excluded Triggers</em>' attribute. + * @see #getExcludedTriggers() + * @generated + */ + void setExcludedTriggers(Set<Trigger> value); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model + * @generated + */ + boolean requires(SetupTask setupTask); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" dataType="org.eclipse.emf.cdo.releng.setup.TriggerSet" required="true" + * @generated + */ + Set<Trigger> getValidTriggers(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model kind="operation" dataType="org.eclipse.emf.cdo.releng.setup.TriggerSet" required="true" + * @generated + */ + Set<Trigger> getTriggers(); + + Object getOverrideToken(); + + boolean isNeeded(SetupTaskContext context) throws Exception; + + void perform(SetupTaskContext context) throws Exception; + + void dispose(); + +} // SetupTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java new file mode 100644 index 0000000000..ff3f5a7e87 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java @@ -0,0 +1,42 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Task Container</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer#getSetupTasks <em>Setup Tasks</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTaskContainer() + * @model abstract="true" + * @generated + */ +public interface SetupTaskContainer extends EObject +{ + /** + * Returns the value of the '<em><b>Setup Tasks</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.SetupTask}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Setup Tasks</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Setup Tasks</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTaskContainer_SetupTasks() + * @model containment="true" resolveProxies="true" + * @generated + */ + EList<SetupTask> getSetupTasks(); + +} // SetupTaskContainer diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java new file mode 100644 index 0000000000..4eaf92ecb2 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.cdo.releng.setup.util.OS; +import org.eclipse.emf.cdo.releng.setup.util.StringExpander; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog; + +import java.io.File; +import java.util.Map; + +/** + * @author Eike Stepper + */ +public interface SetupTaskContext extends Map<Object, Object>, ProgressLog, StringExpander +{ + public Trigger getTrigger(); + + public boolean isRestartNeeded(); + + public void setRestartNeeded(); + + public OS getOS(); + + public String getP2ProfileName(); + + public File getP2ProfileDir(); + + public File getP2AgentDir(); + + public File getP2PoolDir(); + + public File getInstallDir(); + + public File getProjectDir(); + + public File getBranchDir(); + + public File getEclipseDir(); + + public File getTargetPlatformDir(); + + public File getWorkspaceDir(); + + public Setup getSetup(); +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java new file mode 100644 index 0000000000..b31b3ad090 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java @@ -0,0 +1,302 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.common.util.Enumerator; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * <!-- begin-user-doc --> + * A representation of the literals of the enumeration '<em><b>Task Scope</b></em>', + * and utility methods for working with them. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTaskScope() + * @model + * @generated + */ +public enum SetupTaskScope implements Enumerator +{ + /** + * The '<em><b>None</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #NONE_VALUE + * @generated + * @ordered + */ + NONE(0, "None", "None"), + + /** + * The '<em><b>Configuration</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #CONFIGURATION_VALUE + * @generated + * @ordered + */ + CONFIGURATION(1, "Configuration", "Configuration"), + + /** + * The '<em><b>Project</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #PROJECT_VALUE + * @generated + * @ordered + */ + PROJECT(2, "Project", "Project"), + + /** + * The '<em><b>Branch</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #BRANCH_VALUE + * @generated + * @ordered + */ + BRANCH(3, "Branch", "Branch"), + + /** + * The '<em><b>User</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #USER_VALUE + * @generated + * @ordered + */ + USER(4, "User", "User"); + + /** + * The '<em><b>None</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>None</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #NONE + * @model name="None" + * @generated + * @ordered + */ + public static final int NONE_VALUE = 0; + + /** + * The '<em><b>Configuration</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Configuration</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #CONFIGURATION + * @model name="Configuration" + * @generated + * @ordered + */ + public static final int CONFIGURATION_VALUE = 1; + + /** + * The '<em><b>Project</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Project</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #PROJECT + * @model name="Project" + * @generated + * @ordered + */ + public static final int PROJECT_VALUE = 2; + + /** + * The '<em><b>Branch</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>Branch</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #BRANCH + * @model name="Branch" + * @generated + * @ordered + */ + public static final int BRANCH_VALUE = 3; + + /** + * The '<em><b>User</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>User</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #USER + * @model name="User" + * @generated + * @ordered + */ + public static final int USER_VALUE = 4; + + /** + * An array of all the '<em><b>Task Scope</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static final SetupTaskScope[] VALUES_ARRAY = new SetupTaskScope[] { NONE, CONFIGURATION, PROJECT, BRANCH, + USER, }; + + /** + * A public read-only list of all the '<em><b>Task Scope</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List<SetupTaskScope> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the '<em><b>Task Scope</b></em>' literal with the specified literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static SetupTaskScope get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + SetupTaskScope result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Task Scope</b></em>' literal with the specified name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static SetupTaskScope getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + SetupTaskScope result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Task Scope</b></em>' literal with the specified integer value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static SetupTaskScope get(int value) + { + switch (value) + { + case NONE_VALUE: + return NONE; + case CONFIGURATION_VALUE: + return CONFIGURATION; + case PROJECT_VALUE: + return PROJECT; + case BRANCH_VALUE: + return BRANCH; + case USER_VALUE: + return USER; + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final int value; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String name; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private SetupTaskScope(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getValue() + { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + return literal; + } + +} // SetupTaskScope diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java new file mode 100644 index 0000000000..4dbaf7cfec --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java @@ -0,0 +1,103 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>String Variable Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue <em>Value</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription <em>Description</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask() + * @model + * @generated + */ +public interface StringVariableTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Name</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Name</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Name</em>' attribute. + * @see #setName(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Name</em>' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the '<em><b>Value</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Value</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Value</em>' attribute. + * @see #setValue(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask_Value() + * @model + * @generated + */ + String getValue(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Value</em>' attribute. + * @see #getValue() + * @generated + */ + void setValue(String value); + + /** + * Returns the value of the '<em><b>Description</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Description</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Description</em>' attribute. + * @see #setDescription(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask_Description() + * @model + * @generated + */ + String getDescription(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription <em>Description</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Description</em>' attribute. + * @see #getDescription() + * @generated + */ + void setDescription(String value); + +} // StringVariableTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java new file mode 100644 index 0000000000..e16971d568 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java @@ -0,0 +1,69 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Text Modification</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModification#getPattern <em>Pattern</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModification#getSubstitutions <em>Substitutions</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModification() + * @model + * @generated + */ +public interface TextModification extends EObject +{ + /** + * Returns the value of the '<em><b>Pattern</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Pattern</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Pattern</em>' attribute. + * @see #setPattern(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModification_Pattern() + * @model + * @generated + */ + String getPattern(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.TextModification#getPattern <em>Pattern</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Pattern</em>' attribute. + * @see #getPattern() + * @generated + */ + void setPattern(String value); + + /** + * Returns the value of the '<em><b>Substitutions</b></em>' attribute list. + * The list contents are of type {@link java.lang.String}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Substitutions</em>' attribute list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Substitutions</em>' attribute list. + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModification_Substitutions() + * @model + * @generated + */ + EList<String> getSubstitutions(); + +} // TextModification diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java new file mode 100644 index 0000000000..e4036362c6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java @@ -0,0 +1,68 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.common.util.EList; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Text Modify Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl <em>Url</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getModifications <em>Modifications</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModifyTask() + * @model + * @generated + */ +public interface TextModifyTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Url</b></em>' attribute. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Url</em>' attribute isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Url</em>' attribute. + * @see #setUrl(String) + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModifyTask_Url() + * @model + * @generated + */ + String getUrl(); + + /** + * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl <em>Url</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Url</em>' attribute. + * @see #getUrl() + * @generated + */ + void setUrl(String value); + + /** + * Returns the value of the '<em><b>Modifications</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.TextModification}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Modifications</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Modifications</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModifyTask_Modifications() + * @model containment="true" resolveProxies="true" + * @generated + */ + EList<TextModification> getModifications(); + +} // TextModifyTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java deleted file mode 100644 index 40ddaea307..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup; - -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EObject; - -/** - * <!-- begin-user-doc --> - * A representation of the model object '<em><b>Tool Installation</b></em>'. - * <!-- end-user-doc --> - * - * <p> - * The following features are supported: - * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getDirectorCalls <em>Director Calls</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getToolPreferences <em>Tool Preferences</em>}</li> - * </ul> - * </p> - * - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolInstallation() - * @model abstract="true" - * @generated - */ -public interface ToolInstallation extends EObject -{ - /** - * Returns the value of the '<em><b>Director Calls</b></em>' containment reference list. - * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.DirectorCall}. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Director Calls</em>' containment reference list isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Director Calls</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolInstallation_DirectorCalls() - * @model containment="true" - * @generated - */ - EList<DirectorCall> getDirectorCalls(); - - /** - * Returns the value of the '<em><b>Tool Preferences</b></em>' containment reference list. - * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.ToolPreference}. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Tool Preferences</em>' containment reference list isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Tool Preferences</em>' containment reference list. - * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolInstallation_ToolPreferences() - * @model containment="true" - * @generated - */ - EList<ToolPreference> getToolPreferences(); - -} // ToolInstallation diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java new file mode 100644 index 0000000000..2247926e92 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java @@ -0,0 +1,327 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.common.util.Enumerator; + +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * A representation of the literals of the enumeration '<em><b>Trigger</b></em>', + * and utility methods for working with them. + * <!-- end-user-doc --> + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTrigger() + * @model + * @generated + */ +public enum Trigger implements Enumerator +{ + /** + * The '<em><b>BOOTSTRAP</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #BOOTSTRAP_VALUE + * @generated + * @ordered + */ + BOOTSTRAP(0, "BOOTSTRAP", "BOOTSTRAP"), + + /** + * The '<em><b>STARTUP</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #STARTUP_VALUE + * @generated + * @ordered + */ + STARTUP(1, "STARTUP", "STARTUP"), + + /** + * The '<em><b>MANUAL</b></em>' literal object. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #MANUAL_VALUE + * @generated + * @ordered + */ + MANUAL(2, "MANUAL", "MANUAL"); + + /** + * The '<em><b>BOOTSTRAP</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>BOOTSTRAP</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #BOOTSTRAP + * @model + * @generated + * @ordered + */ + public static final int BOOTSTRAP_VALUE = 0; + + /** + * The '<em><b>STARTUP</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>STARTUP</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #STARTUP + * @model + * @generated + * @ordered + */ + public static final int STARTUP_VALUE = 1; + + /** + * The '<em><b>MANUAL</b></em>' literal value. + * <!-- begin-user-doc --> + * <p> + * If the meaning of '<em><b>MANUAL</b></em>' literal object isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @see #MANUAL + * @model + * @generated + * @ordered + */ + public static final int MANUAL_VALUE = 2; + + /** + * An array of all the '<em><b>Trigger</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private static final Trigger[] VALUES_ARRAY = new Trigger[] { BOOTSTRAP, STARTUP, MANUAL, }; + + /** + * A public read-only list of all the '<em><b>Trigger</b></em>' enumerators. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final List<Trigger> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the '<em><b>Trigger</b></em>' literal with the specified literal value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static Trigger get(String literal) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + Trigger result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) + { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Trigger</b></em>' literal with the specified name. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static Trigger getByName(String name) + { + for (int i = 0; i < VALUES_ARRAY.length; ++i) + { + Trigger result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) + { + return result; + } + } + return null; + } + + /** + * Returns the '<em><b>Trigger</b></em>' literal with the specified integer value. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static Trigger get(int value) + { + switch (value) + { + case BOOTSTRAP_VALUE: + return BOOTSTRAP; + case STARTUP_VALUE: + return STARTUP; + case MANUAL_VALUE: + return MANUAL; + } + return null; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final int value; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String name; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private Trigger(int value, String name, String literal) + { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public int getValue() + { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getLiteral() + { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + return literal; + } + + public static Set<Trigger> toSet(Trigger... triggers) + { + return intern(new HashSet<Trigger>(Arrays.asList(triggers))); + } + + public static Set<Trigger> intern(Set<Trigger> triggerSet) + { + return CANONICAL_TRIGGER_SETS.get(triggerSet); + } + + private static final Map<Set<Trigger>, Set<Trigger>> CANONICAL_TRIGGER_SETS = new HashMap<Set<Trigger>, Set<Trigger>>(); + + public static final Map<Set<Trigger>, String> LITERALS; + + static + { + Map<Set<Trigger>, String> literals = new LinkedHashMap<Set<Trigger>, String>(); + for (int i = 0; i < 2; ++i) + { + for (int j = 0; j < 2; ++j) + { + for (int k = 0; k < 2; ++k) + { + Set<Trigger> value = new LinkedHashSet<Trigger>() + { + private static final long serialVersionUID = 1L; + + @Override + public String toString() + { + StringBuilder result = new StringBuilder(); + for (Trigger trigger : this) + { + if (result.length() != 0) + { + result.append(' '); + } + + result.append(trigger); + } + + return result.toString(); + } + }; + + if (i == 1) + { + value.add(Trigger.BOOTSTRAP); + } + + if (j == 1) + { + value.add(Trigger.STARTUP); + } + + if (k == 1) + { + value.add(Trigger.MANUAL); + } + + value = Collections.unmodifiableSet(value); + literals.put(value, value.toString()); + CANONICAL_TRIGGER_SETS.put(value, value); + } + } + } + + LITERALS = Collections.unmodifiableMap(literals); + } + + public static final Set<Trigger> ALL_TRIGGERS = toSet(values()); + + public static final Set<Trigger> IDE_TRIGGERS = toSet(Trigger.STARTUP, Trigger.MANUAL); + +} // Trigger diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java new file mode 100644 index 0000000000..1d9ea1eb9e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java @@ -0,0 +1,42 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup; + +import org.eclipse.emf.cdo.releng.workingsets.WorkingSet; +import org.eclipse.emf.common.util.EList; + +/** + * <!-- begin-user-doc --> + * A representation of the model object '<em><b>Set Working Task</b></em>'. + * <!-- end-user-doc --> + * + * <p> + * The following features are supported: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask#getWorkingSets <em>Working Sets</em>}</li> + * </ul> + * </p> + * + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getWorkingSetTask() + * @model + * @generated + */ +public interface WorkingSetTask extends SetupTask +{ + /** + * Returns the value of the '<em><b>Working Sets</b></em>' containment reference list. + * The list contents are of type {@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet}. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Working Sets</em>' containment reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Working Sets</em>' containment reference list. + * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getWorkingSetTask_WorkingSets() + * @model containment="true" resolveProxies="true" + * @generated + */ + EList<WorkingSet> getWorkingSets(); + +} // SetWorkingTask diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java deleted file mode 100644 index 4bfe77cae3..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.helper; - -/** - * @author Eike Stepper - */ -public final class Progress -{ - private static final ProgressLog DEFAULT = new ProgressLog() - { - public boolean isCancelled() - { - return false; - } - - public void addLine(String line) - { - System.out.println(line); - } - }; - - private static ProgressLog log; - - public static ProgressLog log() - { - if (log == null) - { - return DEFAULT; - } - - return log; - } - - public static void set(ProgressLog log) - { - Progress.log = log; - } -} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java deleted file mode 100644 index 567947cb97..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java +++ /dev/null @@ -1,355 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.impl; - -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; -import org.eclipse.emf.cdo.releng.setup.Project; -import org.eclipse.emf.cdo.releng.setup.SetupPackage; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; -import org.eclipse.emf.ecore.util.EcoreUtil; - -/** - * <!-- begin-user-doc --> - * An implementation of the model object '<em><b>Api Baseline</b></em>'. - * <!-- end-user-doc --> - * <p> - * The following features are implemented: - * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl#getProject <em>Project</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl#getVersion <em>Version</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl#getZipLocation <em>Zip Location</em>}</li> - * </ul> - * </p> - * - * @generated - */ -public class ApiBaselineImpl extends MinimalEObjectImpl.Container implements ApiBaseline -{ - /** - * The default value of the '{@link #getVersion() <em>Version</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getVersion() - * @generated - * @ordered - */ - protected static final String VERSION_EDEFAULT = null; - - /** - * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getVersion() - * @generated - * @ordered - */ - protected String version = VERSION_EDEFAULT; - - /** - * The default value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getZipLocation() - * @generated - * @ordered - */ - protected static final String ZIP_LOCATION_EDEFAULT = null; - - /** - * The cached value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getZipLocation() - * @generated - * @ordered - */ - protected String zipLocation = ZIP_LOCATION_EDEFAULT; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected ApiBaselineImpl() - { - super(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SetupPackage.Literals.API_BASELINE; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public Project getProject() - { - if (eContainerFeatureID() != SetupPackage.API_BASELINE__PROJECT) - return null; - return (Project)eInternalContainer(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public NotificationChain basicSetProject(Project newProject, NotificationChain msgs) - { - msgs = eBasicSetContainer((InternalEObject)newProject, SetupPackage.API_BASELINE__PROJECT, msgs); - return msgs; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setProject(Project newProject) - { - if (newProject != eInternalContainer() - || (eContainerFeatureID() != SetupPackage.API_BASELINE__PROJECT && newProject != null)) - { - if (EcoreUtil.isAncestor(this, newProject)) - throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); - NotificationChain msgs = null; - if (eInternalContainer() != null) - msgs = eBasicRemoveFromContainer(msgs); - if (newProject != null) - msgs = ((InternalEObject)newProject) - .eInverseAdd(this, SetupPackage.PROJECT__API_BASELINES, Project.class, msgs); - msgs = basicSetProject(newProject, msgs); - if (msgs != null) - msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE__PROJECT, newProject, newProject)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getVersion() - { - return version; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setVersion(String newVersion) - { - String oldVersion = version; - version = newVersion; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE__VERSION, oldVersion, version)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getZipLocation() - { - return zipLocation; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setZipLocation(String newZipLocation) - { - String oldZipLocation = zipLocation; - zipLocation = newZipLocation; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE__ZIP_LOCATION, oldZipLocation, - zipLocation)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.API_BASELINE__PROJECT: - if (eInternalContainer() != null) - msgs = eBasicRemoveFromContainer(msgs); - return basicSetProject((Project)otherEnd, msgs); - } - return super.eInverseAdd(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.API_BASELINE__PROJECT: - return basicSetProject(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) - { - switch (eContainerFeatureID()) - { - case SetupPackage.API_BASELINE__PROJECT: - return eInternalContainer().eInverseRemove(this, SetupPackage.PROJECT__API_BASELINES, Project.class, msgs); - } - return super.eBasicRemoveFromContainerFeature(msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SetupPackage.API_BASELINE__PROJECT: - return getProject(); - case SetupPackage.API_BASELINE__VERSION: - return getVersion(); - case SetupPackage.API_BASELINE__ZIP_LOCATION: - return getZipLocation(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SetupPackage.API_BASELINE__PROJECT: - setProject((Project)newValue); - return; - case SetupPackage.API_BASELINE__VERSION: - setVersion((String)newValue); - return; - case SetupPackage.API_BASELINE__ZIP_LOCATION: - setZipLocation((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SetupPackage.API_BASELINE__PROJECT: - setProject((Project)null); - return; - case SetupPackage.API_BASELINE__VERSION: - setVersion(VERSION_EDEFAULT); - return; - case SetupPackage.API_BASELINE__ZIP_LOCATION: - setZipLocation(ZIP_LOCATION_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SetupPackage.API_BASELINE__PROJECT: - return getProject() != null; - case SetupPackage.API_BASELINE__VERSION: - return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version); - case SetupPackage.API_BASELINE__ZIP_LOCATION: - return ZIP_LOCATION_EDEFAULT == null ? zipLocation != null : !ZIP_LOCATION_EDEFAULT.equals(zipLocation); - } - return super.eIsSet(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) - return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (version: "); - result.append(version); - result.append(", zipLocation: "); - result.append(zipLocation); - result.append(')'); - return result.toString(); - } - -} // ApiBaselineImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java new file mode 100644 index 0000000000..019df2d065 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java @@ -0,0 +1,340 @@ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.util.DownloadUtil; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor; + +import org.eclipse.net4j.util.io.ZIPUtil; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.core.runtime.Path; +import org.eclipse.pde.api.tools.internal.ApiBaselineManager; +import org.eclipse.pde.api.tools.internal.model.ApiModelFactory; +import org.eclipse.pde.api.tools.internal.provisional.ApiPlugin; +import org.eclipse.pde.api.tools.internal.provisional.IApiBaselineManager; +import org.eclipse.pde.api.tools.internal.provisional.model.IApiBaseline; + +import java.io.File; +import java.io.InputStream; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Api Baseline Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl#getVersion <em>Version</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl#getZipLocation <em>Zip Location</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ApiBaselineTaskImpl extends SetupTaskImpl implements ApiBaselineTask +{ + /** + * The default value of the '{@link #getVersion() <em>Version</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getVersion() + * @generated + * @ordered + */ + protected static final String VERSION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getVersion() + * @generated + * @ordered + */ + protected String version = VERSION_EDEFAULT; + + /** + * The default value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getZipLocation() + * @generated + * @ordered + */ + protected static final String ZIP_LOCATION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getZipLocation() + * @generated + * @ordered + */ + protected String zipLocation = ZIP_LOCATION_EDEFAULT; + + private transient String baselineName; + + private transient File baselineDir; + + private transient Object cachedBaseline; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ApiBaselineTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.API_BASELINE_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getVersion() + { + return version; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setVersion(String newVersion) + { + String oldVersion = version; + version = newVersion; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE_TASK__VERSION, oldVersion, + version)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getZipLocation() + { + return zipLocation; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setZipLocation(String newZipLocation) + { + String oldZipLocation = zipLocation; + zipLocation = newZipLocation; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE_TASK__ZIP_LOCATION, + oldZipLocation, zipLocation)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.API_BASELINE_TASK__VERSION: + return getVersion(); + case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION: + return getZipLocation(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.API_BASELINE_TASK__VERSION: + setVersion((String)newValue); + return; + case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION: + setZipLocation((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.API_BASELINE_TASK__VERSION: + setVersion(VERSION_EDEFAULT); + return; + case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION: + setZipLocation(ZIP_LOCATION_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.API_BASELINE_TASK__VERSION: + return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version); + case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION: + return ZIP_LOCATION_EDEFAULT == null ? zipLocation != null : !ZIP_LOCATION_EDEFAULT.equals(zipLocation); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (version: "); + result.append(version); + result.append(", zipLocation: "); + result.append(zipLocation); + result.append(')'); + return result.toString(); + } + + @Override + public Set<Trigger> getValidTriggers() + { + return Trigger.IDE_TRIGGERS; + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + baselineName = context.getSetup().getBranch().getProject().getName() + " Baseline"; + baselineDir = new File(new File(context.getProjectDir(), ".baselines"), getVersion()); + + IApiBaselineManager baselineManager = ApiPlugin.getDefault().getApiBaselineManager(); + IApiBaseline baseline = baselineManager.getApiBaseline(baselineName); + if (baseline == null) + { + return true; + } + + ((ApiBaselineManager)baselineManager).loadBaselineInfos(baseline); + + if (!new File(baseline.getLocation()).equals(baselineDir)) + { + baselineManager.removeApiBaseline(baselineName); + baseline.setName(baselineName + " " + System.currentTimeMillis()); + baselineManager.addApiBaseline(baseline); + return true; + } + + if (baselineManager.getDefaultApiBaseline() != baseline) + { + cachedBaseline = baseline; + return true; + } + + return false; + } + + public void perform(SetupTaskContext context) throws Exception + { + IApiBaselineManager baselineManager = ApiPlugin.getDefault().getApiBaselineManager(); + IApiBaseline baseline = (IApiBaseline)cachedBaseline; + if (baseline == null) + { + if (!baselineDir.exists()) + { + downloadAndUnzip(context); + } + + String location = baselineDir.toString(); + context.log("Creating API baseline from " + location); + + baseline = ApiModelFactory.newApiBaseline(baselineName, location); + ApiModelFactory.addComponents(baseline, location, new ProgressLogMonitor(context)); + baselineManager.addApiBaseline(baseline); + } + + context.log("Activating API baseline: " + baselineName); + baselineManager.setDefaultApiBaseline(baselineName); + } + + private void downloadAndUnzip(final SetupTaskContext context) + { + final File baselinesDir = baselineDir.getParentFile(); + baselinesDir.mkdirs(); + + File zipFile = DownloadUtil.downloadURL(getZipLocation(), context); + + final File[] rootDir = { null }; + ZIPUtil.unzip(zipFile, new ZIPUtil.FileSystemUnzipHandler(baselinesDir, ZIPUtil.DEFAULT_BUFFER_SIZE) + { + @Override + public void unzipFile(String name, InputStream zipStream) + { + if (rootDir[0] == null) + { + rootDir[0] = new File(baselinesDir, new Path(name).segment(0)); + } + + context.log("Unzipping " + name); + super.unzipFile(name, zipStream); + } + }); + + rootDir[0].renameTo(baselineDir); + } + +} // ApiBaselineTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java index 26044a7b20..2c688c0421 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java @@ -10,25 +10,16 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; import org.eclipse.emf.cdo.releng.setup.Branch; -import org.eclipse.emf.cdo.releng.setup.GitClone; import org.eclipse.emf.cdo.releng.setup.Project; import org.eclipse.emf.cdo.releng.setup.SetupPackage; + import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.NotificationChain; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.emf.ecore.util.InternalEList; -import java.io.File; -import java.util.Collection; /** * <!-- begin-user-doc --> @@ -39,16 +30,12 @@ import java.util.Collection; * <ul> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getProject <em>Project</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getName <em>Name</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getGitClones <em>Git Clones</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getApiBaseline <em>Api Baseline</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getMspecFilePath <em>Mspec File Path</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getCloneVariableName <em>Clone Variable Name</em>}</li> * </ul> * </p> * * @generated */ -public class BranchImpl extends ToolInstallationImpl implements Branch +public class BranchImpl extends ConfigurableItemImpl implements Branch { /** * The default value of the '{@link #getName() <em>Name</em>}' attribute. @@ -71,66 +58,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch protected String name = NAME_EDEFAULT; /** - * The cached value of the '{@link #getGitClones() <em>Git Clones</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getGitClones() - * @generated - * @ordered - */ - protected EList<GitClone> gitClones; - - /** - * The cached value of the '{@link #getApiBaseline() <em>Api Baseline</em>}' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getApiBaseline() - * @generated - * @ordered - */ - protected ApiBaseline apiBaseline; - - /** - * The default value of the '{@link #getMspecFilePath() <em>Mspec File Path</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getMspecFilePath() - * @generated - * @ordered - */ - protected static final String MSPEC_FILE_PATH_EDEFAULT = null; - - /** - * The cached value of the '{@link #getMspecFilePath() <em>Mspec File Path</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getMspecFilePath() - * @generated - * @ordered - */ - protected String mspecFilePath = MSPEC_FILE_PATH_EDEFAULT; - - /** - * The default value of the '{@link #getCloneVariableName() <em>Clone Variable Name</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getCloneVariableName() - * @generated - * @ordered - */ - protected static final String CLONE_VARIABLE_NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getCloneVariableName() <em>Clone Variable Name</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getCloneVariableName() - * @generated - * @ordered - */ - protected String cloneVariableName = CLONE_VARIABLE_NAME_EDEFAULT; - - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -160,6 +87,18 @@ public class BranchImpl extends ToolInstallationImpl implements Branch { if (eContainerFeatureID() != SetupPackage.BRANCH__PROJECT) return null; + return (Project)eContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Project basicGetProject() + { + if (eContainerFeatureID() != SetupPackage.BRANCH__PROJECT) + return null; return (Project)eInternalContainer(); } @@ -227,150 +166,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch * <!-- end-user-doc --> * @generated */ - public EList<GitClone> getGitClones() - { - if (gitClones == null) - { - gitClones = new EObjectContainmentWithInverseEList<GitClone>(GitClone.class, this, - SetupPackage.BRANCH__GIT_CLONES, SetupPackage.GIT_CLONE__BRANCH); - } - return gitClones; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public ApiBaseline getApiBaseline() - { - if (apiBaseline != null && apiBaseline.eIsProxy()) - { - InternalEObject oldApiBaseline = (InternalEObject)apiBaseline; - apiBaseline = (ApiBaseline)eResolveProxy(oldApiBaseline); - if (apiBaseline != oldApiBaseline) - { - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.RESOLVE, SetupPackage.BRANCH__API_BASELINE, oldApiBaseline, - apiBaseline)); - } - } - return apiBaseline; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public ApiBaseline basicGetApiBaseline() - { - return apiBaseline; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setApiBaseline(ApiBaseline newApiBaseline) - { - ApiBaseline oldApiBaseline = apiBaseline; - apiBaseline = newApiBaseline; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BRANCH__API_BASELINE, oldApiBaseline, - apiBaseline)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getMspecFilePath() - { - return mspecFilePath; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setMspecFilePath(String newMspecFilePath) - { - String oldMspecFilePath = mspecFilePath; - mspecFilePath = newMspecFilePath; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BRANCH__MSPEC_FILE_PATH, oldMspecFilePath, - mspecFilePath)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getCloneVariableName() - { - return cloneVariableName; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setCloneVariableName(String newCloneVariableName) - { - String oldCloneVariableName = cloneVariableName; - cloneVariableName = newCloneVariableName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BRANCH__CLONE_VARIABLE_NAME, - oldCloneVariableName, cloneVariableName)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated NOT - */ - public boolean isInstalled(String installFolder) - { - Resource resource = eResource(); - if (resource != null) - { - ResourceSet resourceSet = resource.getResourceSet(); - if (resourceSet != null) - { - URI uri = getURI(installFolder); - return resourceSet.getURIConverter().exists(uri, null); - } - } - - return false; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated NOT - */ - public URI getURI(String installFolder) - { - File folder = new File(installFolder); - File projectFolder = new File(folder, getProject().getName().toLowerCase()); - File branchFolder = new File(projectFolder, getName().toLowerCase()); - File setupFile = new File(branchFolder, "setup.xmi"); - return URI.createFileURI(setupFile.getAbsolutePath()); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @SuppressWarnings("unchecked") @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { @@ -380,8 +175,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); return basicSetProject((Project)otherEnd, msgs); - case SetupPackage.BRANCH__GIT_CLONES: - return ((InternalEList<InternalEObject>)(InternalEList<?>)getGitClones()).basicAdd(otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } @@ -398,8 +191,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch { case SetupPackage.BRANCH__PROJECT: return basicSetProject(null, msgs); - case SetupPackage.BRANCH__GIT_CLONES: - return ((InternalEList<?>)getGitClones()).basicRemove(otherEnd, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } @@ -431,19 +222,11 @@ public class BranchImpl extends ToolInstallationImpl implements Branch switch (featureID) { case SetupPackage.BRANCH__PROJECT: - return getProject(); + if (resolve) + return getProject(); + return basicGetProject(); case SetupPackage.BRANCH__NAME: return getName(); - case SetupPackage.BRANCH__GIT_CLONES: - return getGitClones(); - case SetupPackage.BRANCH__API_BASELINE: - if (resolve) - return getApiBaseline(); - return basicGetApiBaseline(); - case SetupPackage.BRANCH__MSPEC_FILE_PATH: - return getMspecFilePath(); - case SetupPackage.BRANCH__CLONE_VARIABLE_NAME: - return getCloneVariableName(); } return super.eGet(featureID, resolve, coreType); } @@ -453,7 +236,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch * <!-- end-user-doc --> * @generated */ - @SuppressWarnings("unchecked") @Override public void eSet(int featureID, Object newValue) { @@ -465,19 +247,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch case SetupPackage.BRANCH__NAME: setName((String)newValue); return; - case SetupPackage.BRANCH__GIT_CLONES: - getGitClones().clear(); - getGitClones().addAll((Collection<? extends GitClone>)newValue); - return; - case SetupPackage.BRANCH__API_BASELINE: - setApiBaseline((ApiBaseline)newValue); - return; - case SetupPackage.BRANCH__MSPEC_FILE_PATH: - setMspecFilePath((String)newValue); - return; - case SetupPackage.BRANCH__CLONE_VARIABLE_NAME: - setCloneVariableName((String)newValue); - return; } super.eSet(featureID, newValue); } @@ -498,18 +267,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch case SetupPackage.BRANCH__NAME: setName(NAME_EDEFAULT); return; - case SetupPackage.BRANCH__GIT_CLONES: - getGitClones().clear(); - return; - case SetupPackage.BRANCH__API_BASELINE: - setApiBaseline((ApiBaseline)null); - return; - case SetupPackage.BRANCH__MSPEC_FILE_PATH: - setMspecFilePath(MSPEC_FILE_PATH_EDEFAULT); - return; - case SetupPackage.BRANCH__CLONE_VARIABLE_NAME: - setCloneVariableName(CLONE_VARIABLE_NAME_EDEFAULT); - return; } super.eUnset(featureID); } @@ -525,18 +282,9 @@ public class BranchImpl extends ToolInstallationImpl implements Branch switch (featureID) { case SetupPackage.BRANCH__PROJECT: - return getProject() != null; + return basicGetProject() != null; case SetupPackage.BRANCH__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - case SetupPackage.BRANCH__GIT_CLONES: - return gitClones != null && !gitClones.isEmpty(); - case SetupPackage.BRANCH__API_BASELINE: - return apiBaseline != null; - case SetupPackage.BRANCH__MSPEC_FILE_PATH: - return MSPEC_FILE_PATH_EDEFAULT == null ? mspecFilePath != null : !MSPEC_FILE_PATH_EDEFAULT.equals(mspecFilePath); - case SetupPackage.BRANCH__CLONE_VARIABLE_NAME: - return CLONE_VARIABLE_NAME_EDEFAULT == null ? cloneVariableName != null : !CLONE_VARIABLE_NAME_EDEFAULT - .equals(cloneVariableName); } return super.eIsSet(featureID); } @@ -555,10 +303,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch StringBuffer result = new StringBuffer(super.toString()); result.append(" (name: "); result.append(name); - result.append(", mspecFilePath: "); - result.append(mspecFilePath); - result.append(", cloneVariableName: "); - result.append(cloneVariableName); result.append(')'); return result.toString(); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java new file mode 100644 index 0000000000..4755b8a631 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java @@ -0,0 +1,515 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.util.FileUtil; +import org.eclipse.emf.cdo.releng.setup.util.TargetPlatformUtil; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor; + +import org.eclipse.net4j.util.io.FileLock; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.buckminster.core.CorePlugin; +import org.eclipse.buckminster.core.materializer.MaterializationContext; +import org.eclipse.buckminster.core.materializer.MaterializationJob; +import org.eclipse.buckminster.core.metadata.model.BillOfMaterials; +import org.eclipse.buckminster.core.mspec.builder.MaterializationSpecBuilder; +import org.eclipse.buckminster.core.mspec.model.MaterializationSpec; +import org.eclipse.buckminster.core.parser.IParser; +import org.eclipse.buckminster.core.query.model.ComponentQuery; +import org.eclipse.buckminster.core.resolver.IResolver; +import org.eclipse.buckminster.core.resolver.MainResolver; +import org.eclipse.buckminster.core.resolver.ResolutionContext; +import org.eclipse.buckminster.download.DownloadManager; +import org.eclipse.buckminster.runtime.MonitorUtils; +import org.eclipse.core.resources.IWorkspaceDescription; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.equinox.p2.publisher.AbstractPublisherApplication; +import org.eclipse.equinox.p2.publisher.eclipse.FeaturesAndBundlesPublisherApplication; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.net.URL; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Buckminster Import Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl#getMspec <em>Mspec</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl#getTargetPlatform <em>Target Platform</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl#getBundlePool <em>Bundle Pool</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class BuckminsterImportTaskImpl extends SetupTaskImpl implements BuckminsterImportTask +{ + /** + * The default value of the '{@link #getMspec() <em>Mspec</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMspec() + * @generated + * @ordered + */ + protected static final String MSPEC_EDEFAULT = null; + + /** + * The cached value of the '{@link #getMspec() <em>Mspec</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getMspec() + * @generated + * @ordered + */ + protected String mspec = MSPEC_EDEFAULT; + + /** + * The default value of the '{@link #getTargetPlatform() <em>Target Platform</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTargetPlatform() + * @generated + * @ordered + */ + protected static final String TARGET_PLATFORM_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTargetPlatform() <em>Target Platform</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTargetPlatform() + * @generated + * @ordered + */ + protected String targetPlatform = TARGET_PLATFORM_EDEFAULT; + + /** + * The default value of the '{@link #getBundlePool() <em>Bundle Pool</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getBundlePool() + * @generated + * @ordered + */ + protected static final String BUNDLE_POOL_EDEFAULT = null; + + /** + * The cached value of the '{@link #getBundlePool() <em>Bundle Pool</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getBundlePool() + * @generated + * @ordered + */ + protected String bundlePool = BUNDLE_POOL_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected BuckminsterImportTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.BUCKMINSTER_IMPORT_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getMspec() + { + return mspec; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setMspec(String newMspec) + { + String oldMspec = mspec; + mspec = newMspec; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC, oldMspec, + mspec)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getTargetPlatform() + { + return targetPlatform; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTargetPlatform(String newTargetPlatform) + { + String oldTargetPlatform = targetPlatform; + targetPlatform = newTargetPlatform; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM, + oldTargetPlatform, targetPlatform)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getBundlePool() + { + return bundlePool; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setBundlePool(String newBundlePool) + { + String oldBundlePool = bundlePool; + bundlePool = newBundlePool; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL, + oldBundlePool, bundlePool)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC: + return getMspec(); + case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM: + return getTargetPlatform(); + case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL: + return getBundlePool(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC: + setMspec((String)newValue); + return; + case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM: + setTargetPlatform((String)newValue); + return; + case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL: + setBundlePool((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC: + setMspec(MSPEC_EDEFAULT); + return; + case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM: + setTargetPlatform(TARGET_PLATFORM_EDEFAULT); + return; + case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL: + setBundlePool(BUNDLE_POOL_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC: + return MSPEC_EDEFAULT == null ? mspec != null : !MSPEC_EDEFAULT.equals(mspec); + case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM: + return TARGET_PLATFORM_EDEFAULT == null ? targetPlatform != null : !TARGET_PLATFORM_EDEFAULT + .equals(targetPlatform); + case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL: + return BUNDLE_POOL_EDEFAULT == null ? bundlePool != null : !BUNDLE_POOL_EDEFAULT.equals(bundlePool); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (mspec: "); + result.append(mspec); + result.append(", targetPlatform: "); + result.append(targetPlatform); + result.append(", bundlePool: "); + result.append(bundlePool); + result.append(')'); + return result.toString(); + } + + @Override + public Set<Trigger> getValidTriggers() + { + return Trigger.IDE_TRIGGERS; + } + + public boolean isNeeded(SetupTaskContext context) + { + return context.getTrigger() == Trigger.MANUAL + || !TargetPlatformUtil.hasTargetPlatform(context.getTargetPlatformDir().toString(), context); + } + + public void perform(SetupTaskContext context) throws Exception + { + IProgressMonitor monitor = new ProgressLogMonitor(context); + monitor.beginTask("Starting Buckminster import", 160); + + try + { + File tpOld = null; + File tp = context.getTargetPlatformDir(); + if (tp.exists()) + { + tpOld = new File(tp.getParentFile(), tp.getName() + "." + System.currentTimeMillis()); + FileUtil.rename(tp, tpOld); + } + + FileLock tpPoolLock = null; + boolean isAutoBuilding = disableAutoBuilding(); + + try + { + File tpPool = updateTargetPlatformPool(context); + tpPoolLock = FileLock.forWrite(tpPool); + + File targetPlatformLocation = context.getTargetPlatformDir(); + targetPlatformLocation.mkdirs(); + TargetPlatformUtil.setTargetPlatform(targetPlatformLocation.toString(), context.getSetup().getBranch() + .getProject().getName() + + " Target", true, context); + + URL mSpecURL = new URL(context.expandString(getMspec())); + MaterializationSpec mspec = getMSpec(mSpecURL, monitor); // 20 ticks + ComponentQuery cquery = getCQuery(mspec.getResolvedURL(), monitor); // 20 ticks + + IResolver resolver = new MainResolver(new ResolutionContext(mspec, cquery)); + resolver.getContext().setContinueOnError(true); + + monitor.subTask("Resolving components"); + BillOfMaterials bom = resolver.resolve(MonitorUtils.subMonitor(monitor, 40)); + + MaterializationSpecBuilder mspecBuilder = new MaterializationSpecBuilder(); + mspecBuilder.initFrom(mspec); + mspecBuilder.setName(bom.getViewName()); + + bom.addMaterializationNodes(mspecBuilder); + + ResolutionContext resolutionContext = new ResolutionContext(bom.getQuery()); + MaterializationContext materializationContext = new MaterializationContext(bom, mspec, resolutionContext); + + monitor.subTask("Materializing components"); + MaterializationJob job = new MaterializationJob(materializationContext); + job.run(MonitorUtils.subMonitor(monitor, 80)); + + if (tpPoolLock != null) + { + updateBundlePool(context, tp.getAbsolutePath(), tpPool.getAbsolutePath()); + } + + if (context.isCancelled()) + { + throw new InterruptedException(); + } + } + catch (Exception ex) + { + File tpBroken = new File(tp.getParentFile(), tp.getName() + "." + System.currentTimeMillis()); + FileUtil.rename(tp, tpBroken); + if (tpOld != null) + { + FileUtil.rename(tpOld, tp); + } + + FileUtil.deleteAsync(tpBroken); + throw ex; + } + finally + { + try + { + if (tpPoolLock != null) + { + tpPoolLock.release(); + } + } + finally + { + restoreAutoBuilding(isAutoBuilding); + } + } + + if (tpOld != null) + { + FileUtil.deleteAsync(tpOld); + } + } + finally + { + monitor.done(); + } + } + + public static boolean disableAutoBuilding() throws CoreException + { + boolean autoBuilding = ResourcesPlugin.getWorkspace().isAutoBuilding(); + if (autoBuilding) + { + restoreAutoBuilding(false); + } + + return autoBuilding; + } + + public static void restoreAutoBuilding(boolean autoBuilding) throws CoreException + { + if (autoBuilding != ResourcesPlugin.getWorkspace().isAutoBuilding()) + { + IWorkspaceDescription description = ResourcesPlugin.getWorkspace().getDescription(); + description.setAutoBuilding(autoBuilding); + + ResourcesPlugin.getWorkspace().setDescription(description); + } + } + + private static File updateTargetPlatformPool(SetupTaskContext context) throws Exception + { + File installFolder = new File(context.getSetup().getPreferences().getInstallFolder()); + + File idePool = new File(installFolder, ".p2pool-ide"); + idePool.mkdirs(); + + File tpPool = new File(installFolder, ".p2pool-tp"); + tpPool.mkdirs(); + + FileLock idePoolLock = FileLock.forWrite(idePool); + + try + { + updateBundlePool(context, idePool.getAbsolutePath(), tpPool.getAbsolutePath()); + } + finally + { + idePoolLock.release(); + } + + return tpPool; + } + + private static void updateBundlePool(SetupTaskContext context, String source, String bundlePool) throws Exception + { + context.log("Updating bundle pool: " + bundlePool); + + String bundlePoolURL = "file:/" + bundlePool.replace('\\', '/'); + String[] args = { "-source", source, "-metadataRepository", bundlePoolURL, "-artifactRepository", bundlePoolURL, + "-append", "-publishArtifacts" }; + + AbstractPublisherApplication publisher = new FeaturesAndBundlesPublisherApplication(); + publisher.run(args); + } + + private MaterializationSpec getMSpec(URL mspecURL, IProgressMonitor monitor) throws Exception + { + monitor.subTask("Downloading MSpec"); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DownloadManager.readInto(mspecURL, null, baos, MonitorUtils.subMonitor(monitor, 20)); + + monitor.subTask("Parsing MSpec"); + IParser<MaterializationSpec> parser = CorePlugin.getDefault().getParserFactory().getMaterializationSpecParser(true); + return parser.parse(mspecURL.toString(), new ByteArrayInputStream(baos.toByteArray())); + } + + private ComponentQuery getCQuery(URL cqueryURL, IProgressMonitor monitor) throws Exception + { + monitor.subTask("Downloading CQuery"); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DownloadManager.readInto(cqueryURL, null, baos, MonitorUtils.subMonitor(monitor, 20)); + + monitor.subTask("Parsing CQuery"); + return ComponentQuery.fromStream(cqueryURL, null, new ByteArrayInputStream(baos.toByteArray()), true); + } + +} // BuckminsterImportTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java new file mode 100644 index 0000000000..20256976ce --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java @@ -0,0 +1,306 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import java.util.Collection; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Compound Setup Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl#getSetupTasks <em>Setup Tasks</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl#getName <em>Name</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class CompoundSetupTaskImpl extends SetupTaskImpl implements CompoundSetupTask +{ + /** + * The cached value of the '{@link #getSetupTasks() <em>Setup Tasks</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSetupTasks() + * @generated + * @ordered + */ + protected EList<SetupTask> setupTasks; + + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected CompoundSetupTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.COMPOUND_SETUP_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<SetupTask> getSetupTasks() + { + if (setupTasks == null) + { + setupTasks = new EObjectContainmentEList.Resolving<SetupTask>(SetupTask.class, this, + SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS); + } + return setupTasks; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.COMPOUND_SETUP_TASK__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS: + return ((InternalEList<?>)getSetupTasks()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS: + return getSetupTasks(); + case SetupPackage.COMPOUND_SETUP_TASK__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS: + getSetupTasks().clear(); + getSetupTasks().addAll((Collection<? extends SetupTask>)newValue); + return; + case SetupPackage.COMPOUND_SETUP_TASK__NAME: + setName((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS: + getSetupTasks().clear(); + return; + case SetupPackage.COMPOUND_SETUP_TASK__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS: + return setupTasks != null && !setupTasks.isEmpty(); + case SetupPackage.COMPOUND_SETUP_TASK__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) + { + if (baseClass == SetupTaskContainer.class) + { + switch (derivedFeatureID) + { + case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS: + return SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS; + default: + return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) + { + if (baseClass == SetupTaskContainer.class) + { + switch (baseFeatureID) + { + case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS: + return SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS; + default: + return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + + @Override + public Object getOverrideToken() + { + return createToken(getName()); + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + boolean needed = false; + for (SetupTask setupTask : getSetupTasks()) + { + needed |= setupTask.isNeeded(context); + } + + return needed; + } + + public void perform(SetupTaskContext context) throws Exception + { + for (SetupTask setupTask : getSetupTasks()) + { + setupTask.perform(context); + } + } + +} // CompoundSetupTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java new file mode 100644 index 0000000000..00e17e3e6b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java @@ -0,0 +1,42 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.ConfigurableItem; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; + +import org.eclipse.emf.ecore.EClass; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Configurable Item</b></em>'. + * <!-- end-user-doc --> + * <p> + * </p> + * + * @generated + */ +public abstract class ConfigurableItemImpl extends SetupTaskContainerImpl implements ConfigurableItem +{ + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ConfigurableItemImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.CONFIGURABLE_ITEM; + } + +} // ConfigurableItemImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java index bc5b37f887..41d4512821 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java @@ -91,7 +91,7 @@ public class ConfigurationImpl extends MinimalEObjectImpl.Container implements C { if (projects == null) { - projects = new EObjectContainmentWithInverseEList<Project>(Project.class, this, + projects = new EObjectContainmentWithInverseEList.Resolving<Project>(Project.class, this, SetupPackage.CONFIGURATION__PROJECTS, SetupPackage.PROJECT__CONFIGURATION); } return projects; @@ -106,7 +106,7 @@ public class ConfigurationImpl extends MinimalEObjectImpl.Container implements C { if (eclipseVersions == null) { - eclipseVersions = new EObjectContainmentWithInverseEList<EclipseVersion>(EclipseVersion.class, this, + eclipseVersions = new EObjectContainmentWithInverseEList.Resolving<EclipseVersion>(EclipseVersion.class, this, SetupPackage.CONFIGURATION__ECLIPSE_VERSIONS, SetupPackage.ECLIPSE_VERSION__CONFIGURATION); } return eclipseVersions; diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java deleted file mode 100644 index 0c2fed673a..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.impl; - -import org.eclipse.emf.cdo.releng.setup.DirectorCall; -import org.eclipse.emf.cdo.releng.setup.InstallableUnit; -import org.eclipse.emf.cdo.releng.setup.P2Repository; -import org.eclipse.emf.cdo.releng.setup.SetupPackage; - -import org.eclipse.emf.common.notify.NotificationChain; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; -import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; -import org.eclipse.emf.ecore.util.InternalEList; - -import java.util.Collection; - -/** - * <!-- begin-user-doc --> - * An implementation of the model object '<em><b>Director Call</b></em>'. - * <!-- end-user-doc --> - * <p> - * The following features are implemented: - * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl#getInstallableUnits <em>Installable Units</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl#getP2Repositories <em>P2 Repositories</em>}</li> - * </ul> - * </p> - * - * @generated - */ -public class DirectorCallImpl extends MinimalEObjectImpl.Container implements DirectorCall -{ - /** - * The cached value of the '{@link #getInstallableUnits() <em>Installable Units</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getInstallableUnits() - * @generated - * @ordered - */ - protected EList<InstallableUnit> installableUnits; - - /** - * The cached value of the '{@link #getP2Repositories() <em>P2 Repositories</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getP2Repositories() - * @generated - * @ordered - */ - protected EList<P2Repository> p2Repositories; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected DirectorCallImpl() - { - super(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SetupPackage.Literals.DIRECTOR_CALL; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EList<InstallableUnit> getInstallableUnits() - { - if (installableUnits == null) - { - installableUnits = new EObjectContainmentWithInverseEList<InstallableUnit>(InstallableUnit.class, this, - SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS, SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL); - } - return installableUnits; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EList<P2Repository> getP2Repositories() - { - if (p2Repositories == null) - { - p2Repositories = new EObjectContainmentWithInverseEList<P2Repository>(P2Repository.class, this, - SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES, SetupPackage.P2_REPOSITORY__DIRECTOR_CALL); - } - return p2Repositories; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS: - return ((InternalEList<InternalEObject>)(InternalEList<?>)getInstallableUnits()).basicAdd(otherEnd, msgs); - case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES: - return ((InternalEList<InternalEObject>)(InternalEList<?>)getP2Repositories()).basicAdd(otherEnd, msgs); - } - return super.eInverseAdd(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS: - return ((InternalEList<?>)getInstallableUnits()).basicRemove(otherEnd, msgs); - case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES: - return ((InternalEList<?>)getP2Repositories()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS: - return getInstallableUnits(); - case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES: - return getP2Repositories(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS: - getInstallableUnits().clear(); - getInstallableUnits().addAll((Collection<? extends InstallableUnit>)newValue); - return; - case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES: - getP2Repositories().clear(); - getP2Repositories().addAll((Collection<? extends P2Repository>)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS: - getInstallableUnits().clear(); - return; - case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES: - getP2Repositories().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS: - return installableUnits != null && !installableUnits.isEmpty(); - case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES: - return p2Repositories != null && !p2Repositories.isEmpty(); - } - return super.eIsSet(featureID); - } - -} // DirectorCallImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java new file mode 100644 index 0000000000..4d36f17566 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java @@ -0,0 +1,374 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.EclipseIniTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Eclipse Ini Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl#getOption <em>Option</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl#getValue <em>Value</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl#isVm <em>Vm</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class EclipseIniTaskImpl extends SetupTaskImpl implements EclipseIniTask +{ + /** + * The default value of the '{@link #getOption() <em>Option</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getOption() + * @generated + * @ordered + */ + protected static final String OPTION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getOption() <em>Option</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getOption() + * @generated + * @ordered + */ + protected String option = OPTION_EDEFAULT; + + /** + * The default value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected static final String VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected String value = VALUE_EDEFAULT; + + /** + * The default value of the '{@link #isVm() <em>Vm</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isVm() + * @generated + * @ordered + */ + protected static final boolean VM_EDEFAULT = false; + + /** + * The cached value of the '{@link #isVm() <em>Vm</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isVm() + * @generated + * @ordered + */ + protected boolean vm = VM_EDEFAULT; + + private transient File file; + + private transient List<String> contents; + + private transient String expandedValue; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected EclipseIniTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.ECLIPSE_INI_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getOption() + { + return option; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setOption(String newOption) + { + String oldOption = option; + option = newOption; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_INI_TASK__OPTION, oldOption, option)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getValue() + { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setValue(String newValue) + { + String oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_INI_TASK__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean isVm() + { + return vm; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setVm(boolean newVm) + { + boolean oldVm = vm; + vm = newVm; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_INI_TASK__VM, oldVm, vm)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.ECLIPSE_INI_TASK__OPTION: + return getOption(); + case SetupPackage.ECLIPSE_INI_TASK__VALUE: + return getValue(); + case SetupPackage.ECLIPSE_INI_TASK__VM: + return isVm(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.ECLIPSE_INI_TASK__OPTION: + setOption((String)newValue); + return; + case SetupPackage.ECLIPSE_INI_TASK__VALUE: + setValue((String)newValue); + return; + case SetupPackage.ECLIPSE_INI_TASK__VM: + setVm((Boolean)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.ECLIPSE_INI_TASK__OPTION: + setOption(OPTION_EDEFAULT); + return; + case SetupPackage.ECLIPSE_INI_TASK__VALUE: + setValue(VALUE_EDEFAULT); + return; + case SetupPackage.ECLIPSE_INI_TASK__VM: + setVm(VM_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.ECLIPSE_INI_TASK__OPTION: + return OPTION_EDEFAULT == null ? option != null : !OPTION_EDEFAULT.equals(option); + case SetupPackage.ECLIPSE_INI_TASK__VALUE: + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + case SetupPackage.ECLIPSE_INI_TASK__VM: + return vm != VM_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (option: "); + result.append(option); + result.append(", value: "); + result.append(value); + result.append(", vm: "); + result.append(vm); + result.append(')'); + return result.toString(); + } + + public String getLabel(String value) + { + return getOption() + (value == null ? "" : (isVm() ? "" : " ") + value); + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + file = new File(context.getEclipseDir(), context.getOS().getEclipseIni()); + boolean result = !file.exists() || createNewContent(context); + // Ensure that the perform recomputes the contents because they could be modified by other tasks between now and + // when doPeform is called. + contents = null; + return result; + } + + private boolean createNewContent(SetupTaskContext context) + { + List<String> oldContents = context.getOS().readText(file); + contents = new ArrayList<String>(oldContents); + int vmargsIndex = contents.indexOf("-vmargs"); + + String option = getOption(); + expandedValue = context.expandString(getValue()); + + if (isVm()) + { + String line = option + expandedValue; + if (vmargsIndex != -1) + { + for (int i = vmargsIndex + 1; i < contents.size(); i++) + { + String oldLine = contents.get(i); + if (oldLine.startsWith(option)) + { + contents.set(i, line); + line = null; + break; + } + } + } + else + { + contents.add("-vmargs"); + } + + if (line != null) + { + contents.add(line); + } + } + else + { + int optionIndex = contents.indexOf(option); + if (optionIndex != -1) + { + contents.set(optionIndex + 1, expandedValue); + } + else + { + optionIndex = vmargsIndex != -1 ? vmargsIndex : contents.size(); + contents.add(optionIndex, option); + contents.add(optionIndex + 1, expandedValue); + } + } + + return !contents.equals(oldContents); + } + + public void perform(SetupTaskContext context) throws Exception + { + if (contents != null || createNewContent(context)) + { + context.log("Changing " + file + " (" + getLabel(expandedValue) + ")"); + context.getOS().writeText(file, contents); + } + } +} // EclipseIniTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolPreferenceImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java index 1ba24f3678..3beed3cb54 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolPreferenceImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java @@ -1,38 +1,36 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup.impl; +import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.ToolPreference; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.Trigger; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.core.runtime.Platform; +import org.eclipse.ui.PlatformUI; + +import java.util.Set; /** * <!-- begin-user-doc --> - * An implementation of the model object '<em><b>Tool Preference</b></em>'. + * An implementation of the model object '<em><b>Eclipse Preference Task</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl#getKey <em>Key</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl#getValue <em>Value</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl#getKey <em>Key</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl#getValue <em>Value</em>}</li> * </ul> * </p> * * @generated */ -public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements ToolPreference +public class EclipsePreferenceTaskImpl extends SetupTaskImpl implements EclipsePreferenceTask { /** * The default value of the '{@link #getKey() <em>Key</em>}' attribute. @@ -74,12 +72,18 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements */ protected String value = VALUE_EDEFAULT; + private transient Object cachedNode; + + private transient String property; + + private transient String expandedValue; + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected ToolPreferenceImpl() + protected EclipsePreferenceTaskImpl() { super(); } @@ -92,7 +96,7 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements @Override protected EClass eStaticClass() { - return SetupPackage.Literals.TOOL_PREFERENCE; + return SetupPackage.Literals.ECLIPSE_PREFERENCE_TASK; } /** @@ -115,9 +119,7 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements String oldKey = key; key = newKey; if (eNotificationRequired()) - { - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TOOL_PREFERENCE__KEY, oldKey, key)); - } + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY, oldKey, key)); } /** @@ -140,9 +142,8 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements String oldValue = value; value = newValue; if (eNotificationRequired()) - { - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TOOL_PREFERENCE__VALUE, oldValue, value)); - } + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE, oldValue, + value)); } /** @@ -155,9 +156,9 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.TOOL_PREFERENCE__KEY: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY: return getKey(); - case SetupPackage.TOOL_PREFERENCE__VALUE: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE: return getValue(); } return super.eGet(featureID, resolve, coreType); @@ -173,10 +174,10 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.TOOL_PREFERENCE__KEY: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY: setKey((String)newValue); return; - case SetupPackage.TOOL_PREFERENCE__VALUE: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE: setValue((String)newValue); return; } @@ -193,10 +194,10 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.TOOL_PREFERENCE__KEY: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY: setKey(KEY_EDEFAULT); return; - case SetupPackage.TOOL_PREFERENCE__VALUE: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE: setValue(VALUE_EDEFAULT); return; } @@ -213,9 +214,9 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.TOOL_PREFERENCE__KEY: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY: return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key); - case SetupPackage.TOOL_PREFERENCE__VALUE: + case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE: return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); } return super.eIsSet(featureID); @@ -230,9 +231,7 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements public String toString() { if (eIsProxy()) - { return super.toString(); - } StringBuffer result = new StringBuffer(super.toString()); result.append(" (key: "); @@ -243,4 +242,68 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements return result.toString(); } -} // ToolPreferenceImpl + @Override + public Object getOverrideToken() + { + return createToken(getKey()); + } + + @Override + public Set<Trigger> getValidTriggers() + { + return Trigger.IDE_TRIGGERS; + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + org.osgi.service.prefs.Preferences node = Platform.getPreferencesService().getRootNode(); + + String[] segments = key.split("/"); + for (int i = 0; i < segments.length - 1; i++) + { + String segment = segments[i]; + node = node.node(segment); + } + + property = segments[segments.length - 1]; + expandedValue = context.expandString(getValue()); + + String oldValue = node.get(property, null); + if (expandedValue.equals(oldValue)) + { + return false; + } + + cachedNode = node; + return true; + } + + public void perform(SetupTaskContext context) throws Exception + { + context.log("Setting preference " + getKey() + " = " + expandedValue); + + final Exception[] exception = { null }; + PlatformUI.getWorkbench().getWorkbenchWindows()[0].getShell().getDisplay().syncExec(new Runnable() + { + public void run() + { + try + { + org.osgi.service.prefs.Preferences node = (org.osgi.service.prefs.Preferences)cachedNode; + node.put(property, expandedValue); + node.flush(); + } + catch (Exception ex) + { + exception[0] = ex; + } + } + }); + + if (exception[0] != null) + { + throw exception[0]; + } + } + +} // EclipsePreferenceTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java index 41195b31e5..955f010086 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java @@ -11,7 +11,6 @@ package org.eclipse.emf.cdo.releng.setup.impl; import org.eclipse.emf.cdo.releng.setup.Configuration; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; import org.eclipse.emf.cdo.releng.setup.EclipseVersion; import org.eclipse.emf.cdo.releng.setup.SetupPackage; @@ -20,7 +19,6 @@ import org.eclipse.emf.common.notify.NotificationChain; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; import org.eclipse.emf.ecore.util.EcoreUtil; /** @@ -32,13 +30,12 @@ import org.eclipse.emf.ecore.util.EcoreUtil; * <ul> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl#getConfiguration <em>Configuration</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl#getVersion <em>Version</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl#getDirectorCall <em>Director Call</em>}</li> * </ul> * </p> * * @generated */ -public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements EclipseVersion +public class EclipseVersionImpl extends ConfigurableItemImpl implements EclipseVersion { /** * The default value of the '{@link #getVersion() <em>Version</em>}' attribute. @@ -61,16 +58,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements protected String version = VERSION_EDEFAULT; /** - * The cached value of the '{@link #getDirectorCall() <em>Director Call</em>}' containment reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getDirectorCall() - * @generated - * @ordered - */ - protected DirectorCall directorCall; - - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -100,6 +87,18 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements { if (eContainerFeatureID() != SetupPackage.ECLIPSE_VERSION__CONFIGURATION) return null; + return (Configuration)eContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Configuration basicGetConfiguration() + { + if (eContainerFeatureID() != SetupPackage.ECLIPSE_VERSION__CONFIGURATION) + return null; return (Configuration)eInternalContainer(); } @@ -169,62 +168,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements * <!-- end-user-doc --> * @generated */ - public DirectorCall getDirectorCall() - { - return directorCall; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public NotificationChain basicSetDirectorCall(DirectorCall newDirectorCall, NotificationChain msgs) - { - DirectorCall oldDirectorCall = directorCall; - directorCall = newDirectorCall; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, - SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, oldDirectorCall, newDirectorCall); - if (msgs == null) - msgs = notification; - else - msgs.add(notification); - } - return msgs; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setDirectorCall(DirectorCall newDirectorCall) - { - if (newDirectorCall != directorCall) - { - NotificationChain msgs = null; - if (directorCall != null) - msgs = ((InternalEObject)directorCall).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - - SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, null, msgs); - if (newDirectorCall != null) - msgs = ((InternalEObject)newDirectorCall).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - - SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, null, msgs); - msgs = basicSetDirectorCall(newDirectorCall, msgs); - if (msgs != null) - msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, - newDirectorCall, newDirectorCall)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { @@ -250,8 +193,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements { case SetupPackage.ECLIPSE_VERSION__CONFIGURATION: return basicSetConfiguration(null, msgs); - case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL: - return basicSetDirectorCall(null, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } @@ -284,11 +225,11 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements switch (featureID) { case SetupPackage.ECLIPSE_VERSION__CONFIGURATION: - return getConfiguration(); + if (resolve) + return getConfiguration(); + return basicGetConfiguration(); case SetupPackage.ECLIPSE_VERSION__VERSION: return getVersion(); - case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL: - return getDirectorCall(); } return super.eGet(featureID, resolve, coreType); } @@ -309,9 +250,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements case SetupPackage.ECLIPSE_VERSION__VERSION: setVersion((String)newValue); return; - case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL: - setDirectorCall((DirectorCall)newValue); - return; } super.eSet(featureID, newValue); } @@ -332,9 +270,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements case SetupPackage.ECLIPSE_VERSION__VERSION: setVersion(VERSION_EDEFAULT); return; - case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL: - setDirectorCall((DirectorCall)null); - return; } super.eUnset(featureID); } @@ -350,11 +285,9 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements switch (featureID) { case SetupPackage.ECLIPSE_VERSION__CONFIGURATION: - return getConfiguration() != null; + return basicGetConfiguration() != null; case SetupPackage.ECLIPSE_VERSION__VERSION: return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version); - case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL: - return directorCall != null; } return super.eIsSet(featureID); } @@ -376,5 +309,4 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements result.append(')'); return result.toString(); } - } // EclipseVersionImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java deleted file mode 100644 index dae9b0c1db..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java +++ /dev/null @@ -1,411 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.impl; - -import org.eclipse.emf.cdo.releng.setup.Branch; -import org.eclipse.emf.cdo.releng.setup.GitClone; -import org.eclipse.emf.cdo.releng.setup.SetupPackage; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; -import org.eclipse.emf.ecore.util.EcoreUtil; - -/** - * <!-- begin-user-doc --> - * An implementation of the model object '<em><b>Git Clone</b></em>'. - * <!-- end-user-doc --> - * <p> - * The following features are implemented: - * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getBranch <em>Branch</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getName <em>Name</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getRemoteURI <em>Remote URI</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getCheckoutBranch <em>Checkout Branch</em>}</li> - * </ul> - * </p> - * - * @generated - */ -public class GitCloneImpl extends MinimalEObjectImpl.Container implements GitClone -{ - /** - * The default value of the '{@link #getName() <em>Name</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = null; - - /** - * The cached value of the '{@link #getName() <em>Name</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * The default value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getRemoteURI() - * @generated - * @ordered - */ - protected static final String REMOTE_URI_EDEFAULT = null; - - /** - * The cached value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getRemoteURI() - * @generated - * @ordered - */ - protected String remoteURI = REMOTE_URI_EDEFAULT; - - /** - * The default value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getCheckoutBranch() - * @generated - * @ordered - */ - protected static final String CHECKOUT_BRANCH_EDEFAULT = null; - - /** - * The cached value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getCheckoutBranch() - * @generated - * @ordered - */ - protected String checkoutBranch = CHECKOUT_BRANCH_EDEFAULT; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected GitCloneImpl() - { - super(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SetupPackage.Literals.GIT_CLONE; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public Branch getBranch() - { - if (eContainerFeatureID() != SetupPackage.GIT_CLONE__BRANCH) - return null; - return (Branch)eInternalContainer(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public NotificationChain basicSetBranch(Branch newBranch, NotificationChain msgs) - { - msgs = eBasicSetContainer((InternalEObject)newBranch, SetupPackage.GIT_CLONE__BRANCH, msgs); - return msgs; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setBranch(Branch newBranch) - { - if (newBranch != eInternalContainer() - || (eContainerFeatureID() != SetupPackage.GIT_CLONE__BRANCH && newBranch != null)) - { - if (EcoreUtil.isAncestor(this, newBranch)) - throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); - NotificationChain msgs = null; - if (eInternalContainer() != null) - msgs = eBasicRemoveFromContainer(msgs); - if (newBranch != null) - msgs = ((InternalEObject)newBranch).eInverseAdd(this, SetupPackage.BRANCH__GIT_CLONES, Branch.class, msgs); - msgs = basicSetBranch(newBranch, msgs); - if (msgs != null) - msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__BRANCH, newBranch, newBranch)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getName() - { - return name; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setName(String newName) - { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__NAME, oldName, name)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getRemoteURI() - { - return remoteURI; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setRemoteURI(String newRemoteURI) - { - String oldRemoteURI = remoteURI; - remoteURI = newRemoteURI; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__REMOTE_URI, oldRemoteURI, remoteURI)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public String getCheckoutBranch() - { - return checkoutBranch; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setCheckoutBranch(String newCheckoutBranch) - { - String oldCheckoutBranch = checkoutBranch; - checkoutBranch = newCheckoutBranch; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__CHECKOUT_BRANCH, oldCheckoutBranch, - checkoutBranch)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.GIT_CLONE__BRANCH: - if (eInternalContainer() != null) - msgs = eBasicRemoveFromContainer(msgs); - return basicSetBranch((Branch)otherEnd, msgs); - } - return super.eInverseAdd(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.GIT_CLONE__BRANCH: - return basicSetBranch(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) - { - switch (eContainerFeatureID()) - { - case SetupPackage.GIT_CLONE__BRANCH: - return eInternalContainer().eInverseRemove(this, SetupPackage.BRANCH__GIT_CLONES, Branch.class, msgs); - } - return super.eBasicRemoveFromContainerFeature(msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SetupPackage.GIT_CLONE__BRANCH: - return getBranch(); - case SetupPackage.GIT_CLONE__NAME: - return getName(); - case SetupPackage.GIT_CLONE__REMOTE_URI: - return getRemoteURI(); - case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH: - return getCheckoutBranch(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SetupPackage.GIT_CLONE__BRANCH: - setBranch((Branch)newValue); - return; - case SetupPackage.GIT_CLONE__NAME: - setName((String)newValue); - return; - case SetupPackage.GIT_CLONE__REMOTE_URI: - setRemoteURI((String)newValue); - return; - case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH: - setCheckoutBranch((String)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SetupPackage.GIT_CLONE__BRANCH: - setBranch((Branch)null); - return; - case SetupPackage.GIT_CLONE__NAME: - setName(NAME_EDEFAULT); - return; - case SetupPackage.GIT_CLONE__REMOTE_URI: - setRemoteURI(REMOTE_URI_EDEFAULT); - return; - case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH: - setCheckoutBranch(CHECKOUT_BRANCH_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SetupPackage.GIT_CLONE__BRANCH: - return getBranch() != null; - case SetupPackage.GIT_CLONE__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - case SetupPackage.GIT_CLONE__REMOTE_URI: - return REMOTE_URI_EDEFAULT == null ? remoteURI != null : !REMOTE_URI_EDEFAULT.equals(remoteURI); - case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH: - return CHECKOUT_BRANCH_EDEFAULT == null ? checkoutBranch != null : !CHECKOUT_BRANCH_EDEFAULT - .equals(checkoutBranch); - } - return super.eIsSet(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public String toString() - { - if (eIsProxy()) - return super.toString(); - - StringBuffer result = new StringBuffer(super.toString()); - result.append(" (name: "); - result.append(name); - result.append(", remoteURI: "); - result.append(remoteURI); - result.append(", checkoutBranch: "); - result.append(checkoutBranch); - result.append(')'); - return result.toString(); - } - -} // GitCloneImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java new file mode 100644 index 0000000000..1dfbf1aa87 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java @@ -0,0 +1,615 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.GitCloneTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.util.FileUtil; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.jgit.api.CheckoutCommand; +import org.eclipse.jgit.api.CloneCommand; +import org.eclipse.jgit.api.CreateBranchCommand; +import org.eclipse.jgit.api.CreateBranchCommand.SetupUpstreamMode; +import org.eclipse.jgit.api.Git; +import org.eclipse.jgit.api.ResetCommand; +import org.eclipse.jgit.api.ResetCommand.ResetType; +import org.eclipse.jgit.api.StatusCommand; +import org.eclipse.jgit.errors.NoWorkTreeException; +import org.eclipse.jgit.lib.ConfigConstants; +import org.eclipse.jgit.lib.CoreConfig.AutoCRLF; +import org.eclipse.jgit.lib.ProgressMonitor; +import org.eclipse.jgit.lib.Repository; +import org.eclipse.jgit.lib.StoredConfig; +import org.eclipse.jgit.transport.RefSpec; +import org.eclipse.jgit.transport.RemoteConfig; + +import java.io.File; +import java.io.IOException; +import java.util.Collections; +import java.util.List; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Git Clone Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getRemoteName <em>Remote Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getRemoteURI <em>Remote URI</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getCheckoutBranch <em>Checkout Branch</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class GitCloneTaskImpl extends SetupTaskImpl implements GitCloneTask +{ + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The default value of the '{@link #getRemoteName() <em>Remote Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRemoteName() + * @generated + * @ordered + */ + protected static final String REMOTE_NAME_EDEFAULT = "origin"; + + /** + * The cached value of the '{@link #getRemoteName() <em>Remote Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRemoteName() + * @generated + * @ordered + */ + protected String remoteName = REMOTE_NAME_EDEFAULT; + + /** + * The default value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRemoteURI() + * @generated + * @ordered + */ + protected static final String REMOTE_URI_EDEFAULT = null; + + /** + * The cached value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRemoteURI() + * @generated + * @ordered + */ + protected String remoteURI = REMOTE_URI_EDEFAULT; + + /** + * The default value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCheckoutBranch() + * @generated + * @ordered + */ + protected static final String CHECKOUT_BRANCH_EDEFAULT = null; + + /** + * The cached value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getCheckoutBranch() + * @generated + * @ordered + */ + protected String checkoutBranch = CHECKOUT_BRANCH_EDEFAULT; + + private transient Object cachedGit; + + private transient Object cachedRepository; + + private transient File workDir; + + private transient boolean hasCheckout; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected GitCloneTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.GIT_CLONE_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getRemoteName() + { + return remoteName; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRemoteName(String newRemoteName) + { + String oldRemoteName = remoteName; + remoteName = newRemoteName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__REMOTE_NAME, oldRemoteName, + remoteName)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getRemoteURI() + { + return remoteURI; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setRemoteURI(String newRemoteURI) + { + String oldRemoteURI = remoteURI; + remoteURI = newRemoteURI; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__REMOTE_URI, oldRemoteURI, + remoteURI)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getCheckoutBranch() + { + return checkoutBranch; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setCheckoutBranch(String newCheckoutBranch) + { + String oldCheckoutBranch = checkoutBranch; + checkoutBranch = newCheckoutBranch; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH, + oldCheckoutBranch, checkoutBranch)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.GIT_CLONE_TASK__NAME: + return getName(); + case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME: + return getRemoteName(); + case SetupPackage.GIT_CLONE_TASK__REMOTE_URI: + return getRemoteURI(); + case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH: + return getCheckoutBranch(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.GIT_CLONE_TASK__NAME: + setName((String)newValue); + return; + case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME: + setRemoteName((String)newValue); + return; + case SetupPackage.GIT_CLONE_TASK__REMOTE_URI: + setRemoteURI((String)newValue); + return; + case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH: + setCheckoutBranch((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.GIT_CLONE_TASK__NAME: + setName(NAME_EDEFAULT); + return; + case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME: + setRemoteName(REMOTE_NAME_EDEFAULT); + return; + case SetupPackage.GIT_CLONE_TASK__REMOTE_URI: + setRemoteURI(REMOTE_URI_EDEFAULT); + return; + case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH: + setCheckoutBranch(CHECKOUT_BRANCH_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.GIT_CLONE_TASK__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME: + return REMOTE_NAME_EDEFAULT == null ? remoteName != null : !REMOTE_NAME_EDEFAULT.equals(remoteName); + case SetupPackage.GIT_CLONE_TASK__REMOTE_URI: + return REMOTE_URI_EDEFAULT == null ? remoteURI != null : !REMOTE_URI_EDEFAULT.equals(remoteURI); + case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH: + return CHECKOUT_BRANCH_EDEFAULT == null ? checkoutBranch != null : !CHECKOUT_BRANCH_EDEFAULT + .equals(checkoutBranch); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(", remoteName: "); + result.append(remoteName); + result.append(", remoteURI: "); + result.append(remoteURI); + result.append(", checkoutBranch: "); + result.append(checkoutBranch); + result.append(')'); + return result.toString(); + } + + @Override + public Set<Trigger> getValidTriggers() + { + return Trigger.IDE_TRIGGERS; + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + workDir = getWorkDir(context); + if (!workDir.isDirectory()) + { + return true; + } + + context.log("Opening Git clone " + workDir); + + Git git = Git.open(workDir); + if (!hasWorkTree(git)) + { + FileUtil.rename(workDir); + return true; + } + + Repository repository = git.getRepository(); + configureRepository(context, repository); + + hasCheckout = repository.getAllRefs().containsKey("refs/heads/" + getCheckoutBranch()); + if (!hasCheckout) + { + cachedGit = git; + cachedRepository = repository; + return true; + } + + return false; + } + + public void perform(SetupTaskContext context) throws Exception + { + Git git = (Git)cachedGit; + Repository repository = (Repository)cachedRepository; + + if (git == null) + { + git = cloneRepository(context, workDir, getCheckoutBranch()); + repository = git.getRepository(); + configureRepository(context, repository); + } + + if (!hasCheckout) + { + createBranch(context, git, getCheckoutBranch()); + checkout(context, git, getCheckoutBranch()); + resetHard(context, git); + } + } + + @Override + public void dispose() + { + if (cachedRepository != null) + { + ((Repository)cachedRepository).close(); + } + } + + private File getWorkDir(SetupTaskContext context) + { + File gitDir = new File(context.getBranchDir(), "git"); + return new File(gitDir, getName()); + } + + private boolean hasWorkTree(Git git) throws Exception + { + try + { + StatusCommand statusCommand = git.status(); + statusCommand.call(); + return true; + } + catch (NoWorkTreeException ex) + { + return false; + } + } + + private Git cloneRepository(SetupTaskContext context, File workDir, String checkoutBranch) throws Exception + { + URI baseURI = URI.createURI(getRemoteURI()); + String remote = URI.createHierarchicalURI(baseURI.scheme(), + context.getSetup().getPreferences().getUserName() + "@" + baseURI.authority(), baseURI.device(), + baseURI.segments(), baseURI.query(), baseURI.fragment()).toString(); + + context.log("Cloning Git repo " + remote + " to " + workDir); + + CloneCommand command = Git.cloneRepository(); + command.setNoCheckout(true); + command.setURI(remote); + command.setRemote(getRemoteName()); + command.setBranchesToClone(Collections.singleton(checkoutBranch)); + command.setDirectory(workDir); + command.setTimeout(10); + command.setProgressMonitor(new ProgressLogWrapper(context)); + return command.call(); + } + + private void configureRepository(SetupTaskContext context, Repository repository) throws Exception, IOException + { + StoredConfig config = repository.getConfig(); + + boolean changed = false; + changed |= configureLineEndingConversion(context, config); + changed |= addPushRefSpec(context, config); + if (changed) + { + config.save(); + } + } + + private boolean configureLineEndingConversion(SetupTaskContext context, StoredConfig config) throws Exception + { + if (context.getOS().isLineEndingConversionNeeded()) + { + context.log("Setting " + ConfigConstants.CONFIG_KEY_AUTOCRLF + " = true"); + config.setEnum(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_AUTOCRLF, AutoCRLF.TRUE); + return true; + } + + return false; + } + + private boolean addPushRefSpec(SetupTaskContext context, StoredConfig config) throws Exception + { + String gerritQueue = "refs/for/" + getCheckoutBranch(); + for (RemoteConfig remoteConfig : RemoteConfig.getAllRemoteConfigs(config)) + { + if (getRemoteName().equals(remoteConfig.getName())) + { + List<RefSpec> pushRefSpecs = remoteConfig.getPushRefSpecs(); + if (hasGerritPushRefSpec(pushRefSpecs, gerritQueue)) + { + return false; + } + + RefSpec refSpec = new RefSpec("HEAD:" + gerritQueue); + context.log("Adding push ref spec: " + refSpec); + + remoteConfig.addPushRefSpec(refSpec); + remoteConfig.update(config); + return true; + } + } + + return false; + } + + private boolean hasGerritPushRefSpec(List<RefSpec> pushRefSpecs, String gerritQueue) + { + for (RefSpec refSpec : pushRefSpecs) + { + if (refSpec.getDestination().equals(gerritQueue)) + { + return true; + } + } + + return false; + } + + private void createBranch(SetupTaskContext context, Git git, String checkoutBranch) throws Exception + { + context.log("Creating local branch " + checkoutBranch); + + CreateBranchCommand command = git.branchCreate(); + command.setUpstreamMode(SetupUpstreamMode.SET_UPSTREAM); + command.setName(checkoutBranch); + command.setStartPoint("refs/remotes/origin/" + checkoutBranch); + command.call(); + } + + private void checkout(SetupTaskContext context, Git git, String checkoutBranch) throws Exception + { + context.log("Checking out local branch " + checkoutBranch); + + CheckoutCommand command = git.checkout(); + command.setName(checkoutBranch); + command.call(); + } + + private void resetHard(SetupTaskContext context, Git git) throws Exception + { + context.log("Resetting hard"); + + ResetCommand command = git.reset(); + command.setMode(ResetType.HARD); + command.call(); + } + + /** + * @author Eike Stepper + */ + private static final class ProgressLogWrapper implements ProgressMonitor + { + private SetupTaskContext context; + + public ProgressLogWrapper(SetupTaskContext context) + { + this.context = context; + } + + public void update(int completed) + { + } + + public void start(int totalTasks) + { + } + + public boolean isCancelled() + { + return context.isCancelled(); + } + + public void endTask() + { + } + + public void beginTask(String title, int totalWork) + { + context.log(title); + } + } + +} // GitCloneTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java index 23faaea6ce..0e95540e13 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java @@ -10,8 +10,8 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; import org.eclipse.emf.cdo.releng.setup.InstallableUnit; +import org.eclipse.emf.cdo.releng.setup.P2Task; import org.eclipse.emf.cdo.releng.setup.SetupPackage; import org.eclipse.emf.common.notify.Notification; @@ -29,7 +29,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil; * <p> * The following features are implemented: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl#getDirectorCall <em>Director Call</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl#getP2Task <em>P2 Task</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl#getId <em>Id</em>}</li> * </ul> * </p> @@ -84,11 +84,11 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements * <!-- end-user-doc --> * @generated */ - public DirectorCall getDirectorCall() + public P2Task getP2Task() { - if (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL) + if (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__P2_TASK) return null; - return (DirectorCall)eInternalContainer(); + return (P2Task)eContainer(); } /** @@ -96,9 +96,21 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements * <!-- end-user-doc --> * @generated */ - public NotificationChain basicSetDirectorCall(DirectorCall newDirectorCall, NotificationChain msgs) + public P2Task basicGetP2Task() { - msgs = eBasicSetContainer((InternalEObject)newDirectorCall, SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL, msgs); + if (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__P2_TASK) + return null; + return (P2Task)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetP2Task(P2Task newP2Task, NotificationChain msgs) + { + msgs = eBasicSetContainer((InternalEObject)newP2Task, SetupPackage.INSTALLABLE_UNIT__P2_TASK, msgs); return msgs; } @@ -107,26 +119,26 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements * <!-- end-user-doc --> * @generated */ - public void setDirectorCall(DirectorCall newDirectorCall) + public void setP2Task(P2Task newP2Task) { - if (newDirectorCall != eInternalContainer() - || (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL && newDirectorCall != null)) + if (newP2Task != eInternalContainer() + || (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__P2_TASK && newP2Task != null)) { - if (EcoreUtil.isAncestor(this, newDirectorCall)) + if (EcoreUtil.isAncestor(this, newP2Task)) throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); NotificationChain msgs = null; if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); - if (newDirectorCall != null) - msgs = ((InternalEObject)newDirectorCall).eInverseAdd(this, SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS, - DirectorCall.class, msgs); - msgs = basicSetDirectorCall(newDirectorCall, msgs); + if (newP2Task != null) + msgs = ((InternalEObject)newP2Task).eInverseAdd(this, SetupPackage.P2_TASK__INSTALLABLE_UNITS, P2Task.class, + msgs); + msgs = basicSetP2Task(newP2Task, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL, - newDirectorCall, newDirectorCall)); + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.INSTALLABLE_UNIT__P2_TASK, newP2Task, + newP2Task)); } /** @@ -162,10 +174,10 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); - return basicSetDirectorCall((DirectorCall)otherEnd, msgs); + return basicSetP2Task((P2Task)otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } @@ -180,8 +192,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: - return basicSetDirectorCall(null, msgs); + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: + return basicSetP2Task(null, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } @@ -196,9 +208,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (eContainerFeatureID()) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: - return eInternalContainer().eInverseRemove(this, SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS, - DirectorCall.class, msgs); + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: + return eInternalContainer().eInverseRemove(this, SetupPackage.P2_TASK__INSTALLABLE_UNITS, P2Task.class, msgs); } return super.eBasicRemoveFromContainerFeature(msgs); } @@ -213,8 +224,10 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: - return getDirectorCall(); + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: + if (resolve) + return getP2Task(); + return basicGetP2Task(); case SetupPackage.INSTALLABLE_UNIT__ID: return getId(); } @@ -231,8 +244,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: - setDirectorCall((DirectorCall)newValue); + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: + setP2Task((P2Task)newValue); return; case SetupPackage.INSTALLABLE_UNIT__ID: setId((String)newValue); @@ -251,8 +264,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: - setDirectorCall((DirectorCall)null); + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: + setP2Task((P2Task)null); return; case SetupPackage.INSTALLABLE_UNIT__ID: setId(ID_EDEFAULT); @@ -271,8 +284,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements { switch (featureID) { - case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL: - return getDirectorCall() != null; + case SetupPackage.INSTALLABLE_UNIT__P2_TASK: + return basicGetP2Task() != null; case SetupPackage.INSTALLABLE_UNIT__ID: return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationTaskImpl.java index c8c4b97d2e..ac4727ba96 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationTaskImpl.java @@ -1,38 +1,34 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.LinkLocation; +import org.eclipse.emf.cdo.releng.setup.LinkLocationTask; import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import java.io.File; +import java.util.Collections; +import java.util.List; /** * <!-- begin-user-doc --> - * An implementation of the model object '<em><b>Link Location</b></em>'. + * An implementation of the model object '<em><b>Link Location Task</b></em>'. * <!-- end-user-doc --> * <p> * The following features are implemented: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl#getPath <em>Path</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl#getPath <em>Path</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl#getName <em>Name</em>}</li> * </ul> * </p> * * @generated */ -public class LinkLocationImpl extends MinimalEObjectImpl.Container implements LinkLocation +public class LinkLocationTaskImpl extends SetupTaskImpl implements LinkLocationTask { /** * The default value of the '{@link #getPath() <em>Path</em>}' attribute. @@ -74,12 +70,16 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li */ protected String name = NAME_EDEFAULT; + private transient File link; + + private transient File canonicalPath; + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected LinkLocationImpl() + protected LinkLocationTaskImpl() { super(); } @@ -92,7 +92,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li @Override protected EClass eStaticClass() { - return SetupPackage.Literals.LINK_LOCATION; + return SetupPackage.Literals.LINK_LOCATION_TASK; } /** @@ -115,9 +115,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li String oldPath = path; path = newPath; if (eNotificationRequired()) - { - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION__PATH, oldPath, path)); - } + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION_TASK__PATH, oldPath, path)); } /** @@ -140,9 +138,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li String oldName = name; name = newName; if (eNotificationRequired()) - { - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION__NAME, oldName, name)); - } + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION_TASK__NAME, oldName, name)); } /** @@ -155,9 +151,9 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li { switch (featureID) { - case SetupPackage.LINK_LOCATION__PATH: + case SetupPackage.LINK_LOCATION_TASK__PATH: return getPath(); - case SetupPackage.LINK_LOCATION__NAME: + case SetupPackage.LINK_LOCATION_TASK__NAME: return getName(); } return super.eGet(featureID, resolve, coreType); @@ -173,10 +169,10 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li { switch (featureID) { - case SetupPackage.LINK_LOCATION__PATH: + case SetupPackage.LINK_LOCATION_TASK__PATH: setPath((String)newValue); return; - case SetupPackage.LINK_LOCATION__NAME: + case SetupPackage.LINK_LOCATION_TASK__NAME: setName((String)newValue); return; } @@ -193,10 +189,10 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li { switch (featureID) { - case SetupPackage.LINK_LOCATION__PATH: + case SetupPackage.LINK_LOCATION_TASK__PATH: setPath(PATH_EDEFAULT); return; - case SetupPackage.LINK_LOCATION__NAME: + case SetupPackage.LINK_LOCATION_TASK__NAME: setName(NAME_EDEFAULT); return; } @@ -213,9 +209,9 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li { switch (featureID) { - case SetupPackage.LINK_LOCATION__PATH: + case SetupPackage.LINK_LOCATION_TASK__PATH: return PATH_EDEFAULT == null ? path != null : !PATH_EDEFAULT.equals(path); - case SetupPackage.LINK_LOCATION__NAME: + case SetupPackage.LINK_LOCATION_TASK__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); } return super.eIsSet(featureID); @@ -230,9 +226,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li public String toString() { if (eIsProxy()) - { return super.toString(); - } StringBuffer result = new StringBuffer(super.toString()); result.append(" (path: "); @@ -243,4 +237,26 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li return result.toString(); } -} // LinkLocationImpl + public boolean isNeeded(SetupTaskContext context) throws Exception + { + File links = new File(context.getEclipseDir(), "links"); + canonicalPath = new File(context.expandString(getPath())).getCanonicalFile(); + + String name = getName(); + if (name == null || name.length() == 0) + { + name = canonicalPath.getName(); + } + + link = new File(links, name + ".link"); + return link.isFile(); + } + + public void perform(SetupTaskContext context) throws Exception + { + List<String> lines = Collections.singletonList("path=" + canonicalPath.toString().replace("\\", "\\\\")); + context.getOS().writeText(link, lines); + context.setRestartNeeded(); + } + +} // LinkLocationTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java new file mode 100644 index 0000000000..1b6f14c9fc --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java @@ -0,0 +1,215 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import java.util.HashSet; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>One Time Setup Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl#getId <em>Id</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public abstract class OneTimeSetupTaskImpl extends SetupTaskImpl implements OneTimeSetupTask +{ + /** + * The default value of the '{@link #getId() <em>Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getId() + * @generated + * @ordered + */ + protected static final String ID_EDEFAULT = null; + + /** + * The cached value of the '{@link #getId() <em>Id</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getId() + * @generated + * @ordered + */ + protected String id = ID_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected OneTimeSetupTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.ONE_TIME_SETUP_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getId() + { + return id; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setId(String newId) + { + String oldId = id; + id = newId; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ONE_TIME_SETUP_TASK__ID, oldId, id)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.ONE_TIME_SETUP_TASK__ID: + return getId(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.ONE_TIME_SETUP_TASK__ID: + setId((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.ONE_TIME_SETUP_TASK__ID: + setId(ID_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.ONE_TIME_SETUP_TASK__ID: + return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (id: "); + result.append(id); + result.append(')'); + return result.toString(); + } + + public final boolean isNeeded(SetupTaskContext context) throws Exception + { + return !isPerformed(); + } + + public final void perform(SetupTaskContext context) throws Exception + { + doPerform(context); + setPerformed(true); + } + + protected abstract void doPerform(SetupTaskContext context) throws Exception; + + private int xxx; + + private static final Set<String> PERFORMED = new HashSet<String>(); + + protected boolean isPerformed() + { + String id = getId(); + return PERFORMED.contains(id); + } + + protected void setPerformed(boolean performed) + { + String id = getId(); + if (performed) + { + PERFORMED.add(id); + } + else + { + PERFORMED.remove(id); + } + } + +} // OneTimeSetupTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java index ae64c0864f..ea56defc23 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java @@ -10,8 +10,8 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; import org.eclipse.emf.cdo.releng.setup.P2Repository; +import org.eclipse.emf.cdo.releng.setup.P2Task; import org.eclipse.emf.cdo.releng.setup.SetupPackage; import org.eclipse.emf.common.notify.Notification; @@ -29,7 +29,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil; * <p> * The following features are implemented: * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl#getDirectorCall <em>Director Call</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl#getP2Task <em>P2 Task</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl#getUrl <em>Url</em>}</li> * </ul> * </p> @@ -84,11 +84,11 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 * <!-- end-user-doc --> * @generated */ - public DirectorCall getDirectorCall() + public P2Task getP2Task() { - if (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__DIRECTOR_CALL) + if (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__P2_TASK) return null; - return (DirectorCall)eInternalContainer(); + return (P2Task)eContainer(); } /** @@ -96,9 +96,21 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 * <!-- end-user-doc --> * @generated */ - public NotificationChain basicSetDirectorCall(DirectorCall newDirectorCall, NotificationChain msgs) + public P2Task basicGetP2Task() { - msgs = eBasicSetContainer((InternalEObject)newDirectorCall, SetupPackage.P2_REPOSITORY__DIRECTOR_CALL, msgs); + if (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__P2_TASK) + return null; + return (P2Task)eInternalContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetP2Task(P2Task newP2Task, NotificationChain msgs) + { + msgs = eBasicSetContainer((InternalEObject)newP2Task, SetupPackage.P2_REPOSITORY__P2_TASK, msgs); return msgs; } @@ -107,26 +119,25 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 * <!-- end-user-doc --> * @generated */ - public void setDirectorCall(DirectorCall newDirectorCall) + public void setP2Task(P2Task newP2Task) { - if (newDirectorCall != eInternalContainer() - || (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__DIRECTOR_CALL && newDirectorCall != null)) + if (newP2Task != eInternalContainer() + || (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__P2_TASK && newP2Task != null)) { - if (EcoreUtil.isAncestor(this, newDirectorCall)) + if (EcoreUtil.isAncestor(this, newP2Task)) throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); NotificationChain msgs = null; if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); - if (newDirectorCall != null) - msgs = ((InternalEObject)newDirectorCall).eInverseAdd(this, SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES, - DirectorCall.class, msgs); - msgs = basicSetDirectorCall(newDirectorCall, msgs); + if (newP2Task != null) + msgs = ((InternalEObject)newP2Task) + .eInverseAdd(this, SetupPackage.P2_TASK__P2_REPOSITORIES, P2Task.class, msgs); + msgs = basicSetP2Task(newP2Task, msgs); if (msgs != null) msgs.dispatch(); } else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.P2_REPOSITORY__DIRECTOR_CALL, newDirectorCall, - newDirectorCall)); + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.P2_REPOSITORY__P2_TASK, newP2Task, newP2Task)); } /** @@ -162,10 +173,10 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (featureID) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: + case SetupPackage.P2_REPOSITORY__P2_TASK: if (eInternalContainer() != null) msgs = eBasicRemoveFromContainer(msgs); - return basicSetDirectorCall((DirectorCall)otherEnd, msgs); + return basicSetP2Task((P2Task)otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } @@ -180,8 +191,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (featureID) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: - return basicSetDirectorCall(null, msgs); + case SetupPackage.P2_REPOSITORY__P2_TASK: + return basicSetP2Task(null, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } @@ -196,9 +207,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (eContainerFeatureID()) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: - return eInternalContainer().eInverseRemove(this, SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES, DirectorCall.class, - msgs); + case SetupPackage.P2_REPOSITORY__P2_TASK: + return eInternalContainer().eInverseRemove(this, SetupPackage.P2_TASK__P2_REPOSITORIES, P2Task.class, msgs); } return super.eBasicRemoveFromContainerFeature(msgs); } @@ -213,8 +223,10 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (featureID) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: - return getDirectorCall(); + case SetupPackage.P2_REPOSITORY__P2_TASK: + if (resolve) + return getP2Task(); + return basicGetP2Task(); case SetupPackage.P2_REPOSITORY__URL: return getUrl(); } @@ -231,8 +243,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (featureID) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: - setDirectorCall((DirectorCall)newValue); + case SetupPackage.P2_REPOSITORY__P2_TASK: + setP2Task((P2Task)newValue); return; case SetupPackage.P2_REPOSITORY__URL: setUrl((String)newValue); @@ -251,8 +263,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (featureID) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: - setDirectorCall((DirectorCall)null); + case SetupPackage.P2_REPOSITORY__P2_TASK: + setP2Task((P2Task)null); return; case SetupPackage.P2_REPOSITORY__URL: setUrl(URL_EDEFAULT); @@ -271,8 +283,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2 { switch (featureID) { - case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL: - return getDirectorCall() != null; + case SetupPackage.P2_REPOSITORY__P2_TASK: + return basicGetP2Task() != null; case SetupPackage.P2_REPOSITORY__URL: return URL_EDEFAULT == null ? url != null : !URL_EDEFAULT.equals(url); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java new file mode 100644 index 0000000000..b948f95368 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java @@ -0,0 +1,516 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.internal.setup.Activator; +import org.eclipse.emf.cdo.releng.setup.InstallableUnit; +import org.eclipse.emf.cdo.releng.setup.P2Repository; +import org.eclipse.emf.cdo.releng.setup.P2Task; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.SetupTaskScope; +import org.eclipse.emf.cdo.releng.setup.util.FileUtil; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.OperationCanceledException; +import org.eclipse.core.runtime.Platform; +import org.eclipse.equinox.internal.p2.director.app.DirectorApplication; +import org.eclipse.equinox.internal.p2.director.app.ILog; +import org.eclipse.equinox.internal.p2.ui.ProvUI; +import org.eclipse.equinox.p2.engine.IProfile; +import org.eclipse.equinox.p2.engine.ProvisioningContext; +import org.eclipse.equinox.p2.metadata.IInstallableUnit; +import org.eclipse.equinox.p2.metadata.MetadataFactory; +import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitDescription; +import org.eclipse.equinox.p2.operations.InstallOperation; +import org.eclipse.equinox.p2.operations.ProvisioningJob; +import org.eclipse.equinox.p2.operations.ProvisioningSession; +import org.eclipse.equinox.p2.operations.RepositoryTracker; +import org.eclipse.equinox.p2.query.IQuery; +import org.eclipse.equinox.p2.query.IQueryResult; +import org.eclipse.equinox.p2.query.QueryUtil; +import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository; +import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager; +import org.eclipse.equinox.p2.ui.ProvisioningUI; + +import java.io.File; +import java.net.URI; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Install Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl#getP2Repositories <em>P2 Repositories</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl#getInstallableUnits <em>Installable Units</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class P2TaskImpl extends SetupTaskImpl implements P2Task +{ + /** + * The cached value of the '{@link #getP2Repositories() <em>P2 Repositories</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getP2Repositories() + * @generated + * @ordered + */ + protected EList<P2Repository> p2Repositories; + + /** + * The cached value of the '{@link #getInstallableUnits() <em>Installable Units</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getInstallableUnits() + * @generated + * @ordered + */ + protected EList<InstallableUnit> installableUnits; + + private transient Set<String> neededInstallableUnits; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected P2TaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.P2_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<InstallableUnit> getInstallableUnits() + { + if (installableUnits == null) + { + installableUnits = new EObjectContainmentWithInverseEList.Resolving<InstallableUnit>(InstallableUnit.class, this, + SetupPackage.P2_TASK__INSTALLABLE_UNITS, SetupPackage.INSTALLABLE_UNIT__P2_TASK); + } + return installableUnits; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<P2Repository> getP2Repositories() + { + if (p2Repositories == null) + { + p2Repositories = new EObjectContainmentWithInverseEList.Resolving<P2Repository>(P2Repository.class, this, + SetupPackage.P2_TASK__P2_REPOSITORIES, SetupPackage.P2_REPOSITORY__P2_TASK); + } + return p2Repositories; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SetupPackage.P2_TASK__P2_REPOSITORIES: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getP2Repositories()).basicAdd(otherEnd, msgs); + case SetupPackage.P2_TASK__INSTALLABLE_UNITS: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getInstallableUnits()).basicAdd(otherEnd, msgs); + } + return super.eInverseAdd(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SetupPackage.P2_TASK__P2_REPOSITORIES: + return ((InternalEList<?>)getP2Repositories()).basicRemove(otherEnd, msgs); + case SetupPackage.P2_TASK__INSTALLABLE_UNITS: + return ((InternalEList<?>)getInstallableUnits()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.P2_TASK__P2_REPOSITORIES: + return getP2Repositories(); + case SetupPackage.P2_TASK__INSTALLABLE_UNITS: + return getInstallableUnits(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.P2_TASK__P2_REPOSITORIES: + getP2Repositories().clear(); + getP2Repositories().addAll((Collection<? extends P2Repository>)newValue); + return; + case SetupPackage.P2_TASK__INSTALLABLE_UNITS: + getInstallableUnits().clear(); + getInstallableUnits().addAll((Collection<? extends InstallableUnit>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.P2_TASK__P2_REPOSITORIES: + getP2Repositories().clear(); + return; + case SetupPackage.P2_TASK__INSTALLABLE_UNITS: + getInstallableUnits().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.P2_TASK__P2_REPOSITORIES: + return p2Repositories != null && !p2Repositories.isEmpty(); + case SetupPackage.P2_TASK__INSTALLABLE_UNITS: + return installableUnits != null && !installableUnits.isEmpty(); + } + return super.eIsSet(featureID); + } + + private static Set<String> getInstalledUnits() + { + Set<String> result = new HashSet<String>(); + ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI(); + ProvisioningSession session = provisioningUI.getSession(); + String profileId = provisioningUI.getProfileId(); + IProfile profile = ProvUI.getProfileRegistry(session).getProfile(profileId); + IQueryResult<IInstallableUnit> queryResult = profile.query(QueryUtil.createIUAnyQuery(), null); + + for (IInstallableUnit installableUnit : queryResult) + { + result.add(installableUnit.getId()); + } + + return result; + } + + private static Set<String> getKnownRepositories() + { + Set<String> result = new HashSet<String>(); + ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI(); + ProvisioningSession session = provisioningUI.getSession(); + for (URI knowRepository : provisioningUI.getRepositoryTracker().getKnownRepositories(session)) + { + result.add(knowRepository.toString()); + } + return result; + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + if (!Activator.SETUP_IDE) + { + return true; + } + + Set<String> installedUnits = getInstalledUnits(); + for (InstallableUnit installableUnit : getInstallableUnits()) + { + String id = context.expandString(installableUnit.getId()); + if (!installedUnits.contains(id)) + { + if (neededInstallableUnits == null) + { + neededInstallableUnits = new HashSet<String>(); + } + neededInstallableUnits.add(id); + } + } + + Set<String> knownRepositories = getKnownRepositories(); + for (P2Repository p2Repository : getP2Repositories()) + { + String url = context.expandString(p2Repository.getUrl()); + if (!knownRepositories.contains(url)) + { + return true; + } + } + + return neededInstallableUnits != null; + } + + public void perform(SetupTaskContext context) throws Exception + { + if (Activator.SETUP_IDE) + { + ProgressLogMonitor monitor = new ProgressLogMonitor(context); + + ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI(); + ProvisioningSession session = provisioningUI.getSession(); + IMetadataRepositoryManager manager = (IMetadataRepositoryManager)session.getProvisioningAgent().getService( + IMetadataRepositoryManager.SERVICE_NAME); + RepositoryTracker repositoryTracker = provisioningUI.getRepositoryTracker(); + + Set<String> knownRepositories = getKnownRepositories(); + Set<IMetadataRepository> repositories = new HashSet<IMetadataRepository>(); + List<URI> repos = new ArrayList<URI>(); + for (P2Repository p2Repository : getP2Repositories()) + { + String url = context.expandString(p2Repository.getUrl()); + URI uri = new URI(url); + if (neededInstallableUnits == null) + { + if (!knownRepositories.contains(url)) + { + IMetadataRepository repository = manager.loadRepository(uri, monitor); + repositoryTracker.addRepository(uri, repository.getName(), session); + } + } + else + { + repos.add(uri); + + IMetadataRepository repository = manager.loadRepository(uri, monitor); + repositories.add(repository); + + if (!knownRepositories.contains(url)) + { + repositoryTracker.addRepository(uri, repository.getName(), session); + } + } + } + + if (neededInstallableUnits != null) + { + List<IInstallableUnit> toInstall = new ArrayList<IInstallableUnit>(); + for (String installableUnit : neededInstallableUnits) + { + IQuery<IInstallableUnit> iuQuery = QueryUtil.createIUQuery(installableUnit); + IInstallableUnit candidate = null; + for (IMetadataRepository repository : repositories) + { + IQueryResult<IInstallableUnit> queryResult = repository.query(iuQuery, monitor); + for (IInstallableUnit installableUnitMatch : queryResult) + { + if (candidate == null || candidate.getVersion().compareTo(installableUnitMatch.getVersion()) < 0) + { + candidate = installableUnitMatch; + } + break; + } + } + if (candidate != null) + { + toInstall.add(candidate); + } + else + { + // This will fail. + // TODO + InstallableUnitDescription installableUnitDescription = new InstallableUnitDescription(); + installableUnitDescription.setId(installableUnit); + toInstall.add(MetadataFactory.createInstallableUnit(installableUnitDescription)); + } + } + + InstallOperation installOperation = new InstallOperation(session, toInstall); + String profileId = provisioningUI.getProfileId(); + installOperation.setProfileId(profileId); + + ProvisioningContext provisioningContext = makeProvisioningContext(session, repos); + installOperation.setProvisioningContext(provisioningContext); + + IStatus status = installOperation.resolveModal(monitor); + if (status.isOK()) + { + ProvisioningJob provisioningJob = installOperation.getProvisioningJob(null); + provisioningJob.run(monitor); + } + else + { + context.log(status.toString()); + } + } + } + else + { + callDirectorApp(context); + } + context.setRestartNeeded(); + } + + private ProvisioningContext makeProvisioningContext(ProvisioningSession session, Collection<URI> repositories) + { + URI[] repos = repositories.toArray(new URI[repositories.size()]); + ProvisioningContext context = new ProvisioningContext(session.getProvisioningAgent()); + context.setMetadataRepositories(repos); + context.setArtifactRepositories(repos); + return context; + } + + // public void computeRemediationOperation(ProfileChangeOperation op, ProvisioningUI ui, IProgressMonitor monitor) { + // SubMonitor sub = SubMonitor.convert(monitor, ProvUIMessages.ProvisioningOperationWizard_Remediation_Operation, + // RemedyConfig.getAllRemedyConfigs().length); + // monitor.setTaskName(ProvUIMessages.ProvisioningOperationWizard_Remediation_Operation); + // remediationOperation = new RemediationOperation(ui.getSession(), op.getProfileChangeRequest()); + // remediationOperation.resolveModal(monitor); + // sub.done(); + // } + + private void callDirectorApp(final SetupTaskContext context) throws Exception + { + if (getScope() == SetupTaskScope.CONFIGURATION) + + { + FileUtil.delete(context.getP2ProfileDir(), new ProgressLogMonitor(context)); + } + + String destination = context.getEclipseDir().toString(); + String bundlePool = context.getP2PoolDir().toString(); + String bundleAgent = context.getP2AgentDir().toString(); + + String os = Platform.getOS(); + String ws = Platform.getWS(); + String arch = Platform.getOSArch(); + + EList<P2Repository> p2Repositories = getP2Repositories(); + EList<InstallableUnit> installableUnits = getInstallableUnits(); + + context.log("Calling director to install " + installableUnits.size() + + (installableUnits.size() == 1 ? " unit" : " units") + " from " + p2Repositories.size() + + (p2Repositories.size() == 1 ? " repository" : " repositories") + " to " + destination); + + new File(destination).mkdirs(); + + String repositories = makeList(context, p2Repositories, SetupPackage.Literals.P2_REPOSITORY__URL); + String ius = makeList(context, installableUnits, SetupPackage.Literals.INSTALLABLE_UNIT__ID); + + String[] args = { "-destination", destination, "-repository", repositories, "-installIU", ius, "-profile", + context.getP2ProfileName(), "-profileProperties", "org.eclipse.update.install.features=true", "-bundlepool", + bundlePool, "-shared", bundleAgent, "-p2.os", os, "-p2.ws", ws, "-p2.arch", arch }; + + DirectorApplication app = new DirectorApplication(); + app.setLog(new ILog() + { + public void log(String message) + { + if (context.isCancelled()) + { + throw new OperationCanceledException(); + } + + context.log(message); + } + + public void log(IStatus status) + { + log(status.getMessage()); + } + + public void close() + { + } + }); + + app.run(args); + } + + private String makeList(SetupTaskContext context, EList<? extends EObject> objects, EAttribute attribute) + { + StringBuilder builder = new StringBuilder(); + for (EObject object : objects) + { + if (builder.length() > 0) + { + builder.append(','); + } + + String value = (String)object.eGet(attribute); + value = context.expandString(value); + builder.append(value); + } + + return builder.toString(); + } + +} // InstallTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java index f54be8534e..10866085b9 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java @@ -10,18 +10,12 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import java.util.Collection; -import org.eclipse.emf.cdo.releng.setup.LinkLocation; import org.eclipse.emf.cdo.releng.setup.Preferences; import org.eclipse.emf.cdo.releng.setup.SetupPackage; + import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; -import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; /** * <!-- begin-user-doc --> @@ -33,13 +27,12 @@ import org.eclipse.emf.ecore.util.InternalEList; * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getUserName <em>User Name</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getInstallFolder <em>Install Folder</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getGitPrefix <em>Git Prefix</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getLinkLocations <em>Link Locations</em>}</li> * </ul> * </p> * * @generated */ -public class PreferencesImpl extends ToolInstallationImpl implements Preferences +public class PreferencesImpl extends SetupTaskContainerImpl implements Preferences { /** * The default value of the '{@link #getUserName() <em>User Name</em>}' attribute. @@ -102,16 +95,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences protected String gitPrefix = GIT_PREFIX_EDEFAULT; /** - * The cached value of the '{@link #getLinkLocations() <em>Link Locations</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getLinkLocations() - * @generated - * @ordered - */ - protected EList<LinkLocation> linkLocations; - - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -208,37 +191,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences * <!-- end-user-doc --> * @generated */ - public EList<LinkLocation> getLinkLocations() - { - if (linkLocations == null) - { - linkLocations = new EObjectContainmentEList<LinkLocation>(LinkLocation.class, this, - SetupPackage.PREFERENCES__LINK_LOCATIONS); - } - return linkLocations; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.PREFERENCES__LINK_LOCATIONS: - return ((InternalEList<?>)getLinkLocations()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { @@ -250,8 +202,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences return getInstallFolder(); case SetupPackage.PREFERENCES__GIT_PREFIX: return getGitPrefix(); - case SetupPackage.PREFERENCES__LINK_LOCATIONS: - return getLinkLocations(); } return super.eGet(featureID, resolve, coreType); } @@ -261,7 +211,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences * <!-- end-user-doc --> * @generated */ - @SuppressWarnings("unchecked") @Override public void eSet(int featureID, Object newValue) { @@ -276,10 +225,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences case SetupPackage.PREFERENCES__GIT_PREFIX: setGitPrefix((String)newValue); return; - case SetupPackage.PREFERENCES__LINK_LOCATIONS: - getLinkLocations().clear(); - getLinkLocations().addAll((Collection<? extends LinkLocation>)newValue); - return; } super.eSet(featureID, newValue); } @@ -303,9 +248,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences case SetupPackage.PREFERENCES__GIT_PREFIX: setGitPrefix(GIT_PREFIX_EDEFAULT); return; - case SetupPackage.PREFERENCES__LINK_LOCATIONS: - getLinkLocations().clear(); - return; } super.eUnset(featureID); } @@ -326,8 +268,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences return INSTALL_FOLDER_EDEFAULT == null ? installFolder != null : !INSTALL_FOLDER_EDEFAULT.equals(installFolder); case SetupPackage.PREFERENCES__GIT_PREFIX: return GIT_PREFIX_EDEFAULT == null ? gitPrefix != null : !GIT_PREFIX_EDEFAULT.equals(gitPrefix); - case SetupPackage.PREFERENCES__LINK_LOCATIONS: - return linkLocations != null && !linkLocations.isEmpty(); } return super.eIsSet(featureID); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java index 3c0a1fe2af..51902935e0 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java @@ -10,13 +10,11 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; import org.eclipse.emf.cdo.releng.setup.Branch; import org.eclipse.emf.cdo.releng.setup.Configuration; import org.eclipse.emf.cdo.releng.setup.Project; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.NotificationChain; import org.eclipse.emf.common.util.EList; @@ -39,14 +37,12 @@ import java.util.Collection; * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getConfiguration <em>Configuration</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getBranches <em>Branches</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getName <em>Name</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getApiBaselines <em>Api Baselines</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getWorkingSetGroup <em>Working Set Group</em>}</li> * </ul> * </p> * * @generated */ -public class ProjectImpl extends ToolInstallationImpl implements Project +public class ProjectImpl extends ConfigurableItemImpl implements Project { /** * The cached value of the '{@link #getBranches() <em>Branches</em>}' containment reference list. @@ -79,30 +75,10 @@ public class ProjectImpl extends ToolInstallationImpl implements Project protected String name = NAME_EDEFAULT; /** - * The cached value of the '{@link #getApiBaselines() <em>Api Baselines</em>}' containment reference list. * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getApiBaselines() - * @generated - * @ordered - */ - protected EList<ApiBaseline> apiBaselines; - - /** - * The cached value of the '{@link #getWorkingSetGroup() <em>Working Set Group</em>}' containment reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getWorkingSetGroup() + * <!-- end-user-doc --> * @generated - * @ordered */ - protected WorkingSetGroup workingSetGroup; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ protected ProjectImpl() { super(); @@ -128,6 +104,18 @@ public class ProjectImpl extends ToolInstallationImpl implements Project { if (eContainerFeatureID() != SetupPackage.PROJECT__CONFIGURATION) return null; + return (Configuration)eContainer(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Configuration basicGetConfiguration() + { + if (eContainerFeatureID() != SetupPackage.PROJECT__CONFIGURATION) + return null; return (Configuration)eInternalContainer(); } @@ -178,8 +166,8 @@ public class ProjectImpl extends ToolInstallationImpl implements Project { if (branches == null) { - branches = new EObjectContainmentWithInverseEList<Branch>(Branch.class, this, SetupPackage.PROJECT__BRANCHES, - SetupPackage.BRANCH__PROJECT); + branches = new EObjectContainmentWithInverseEList.Resolving<Branch>(Branch.class, this, + SetupPackage.PROJECT__BRANCHES, SetupPackage.BRANCH__PROJECT); } return branches; } @@ -209,80 +197,9 @@ public class ProjectImpl extends ToolInstallationImpl implements Project /** * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EList<ApiBaseline> getApiBaselines() - { - if (apiBaselines == null) - { - apiBaselines = new EObjectContainmentWithInverseEList<ApiBaseline>(ApiBaseline.class, this, - SetupPackage.PROJECT__API_BASELINES, SetupPackage.API_BASELINE__PROJECT); - } - return apiBaselines; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * <!-- end-user-doc --> * @generated */ - public WorkingSetGroup getWorkingSetGroup() - { - return workingSetGroup; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public NotificationChain basicSetWorkingSetGroup(WorkingSetGroup newWorkingSetGroup, NotificationChain msgs) - { - WorkingSetGroup oldWorkingSetGroup = workingSetGroup; - workingSetGroup = newWorkingSetGroup; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, - SetupPackage.PROJECT__WORKING_SET_GROUP, oldWorkingSetGroup, newWorkingSetGroup); - if (msgs == null) - msgs = notification; - else - msgs.add(notification); - } - return msgs; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public void setWorkingSetGroup(WorkingSetGroup newWorkingSetGroup) - { - if (newWorkingSetGroup != workingSetGroup) - { - NotificationChain msgs = null; - if (workingSetGroup != null) - msgs = ((InternalEObject)workingSetGroup).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - - SetupPackage.PROJECT__WORKING_SET_GROUP, null, msgs); - if (newWorkingSetGroup != null) - msgs = ((InternalEObject)newWorkingSetGroup).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - - SetupPackage.PROJECT__WORKING_SET_GROUP, null, msgs); - msgs = basicSetWorkingSetGroup(newWorkingSetGroup, msgs); - if (msgs != null) - msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.PROJECT__WORKING_SET_GROUP, - newWorkingSetGroup, newWorkingSetGroup)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ @SuppressWarnings("unchecked") @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) @@ -295,8 +212,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project return basicSetConfiguration((Configuration)otherEnd, msgs); case SetupPackage.PROJECT__BRANCHES: return ((InternalEList<InternalEObject>)(InternalEList<?>)getBranches()).basicAdd(otherEnd, msgs); - case SetupPackage.PROJECT__API_BASELINES: - return ((InternalEList<InternalEObject>)(InternalEList<?>)getApiBaselines()).basicAdd(otherEnd, msgs); } return super.eInverseAdd(otherEnd, featureID, msgs); } @@ -315,10 +230,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project return basicSetConfiguration(null, msgs); case SetupPackage.PROJECT__BRANCHES: return ((InternalEList<?>)getBranches()).basicRemove(otherEnd, msgs); - case SetupPackage.PROJECT__API_BASELINES: - return ((InternalEList<?>)getApiBaselines()).basicRemove(otherEnd, msgs); - case SetupPackage.PROJECT__WORKING_SET_GROUP: - return basicSetWorkingSetGroup(null, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } @@ -350,15 +261,13 @@ public class ProjectImpl extends ToolInstallationImpl implements Project switch (featureID) { case SetupPackage.PROJECT__CONFIGURATION: - return getConfiguration(); + if (resolve) + return getConfiguration(); + return basicGetConfiguration(); case SetupPackage.PROJECT__BRANCHES: return getBranches(); case SetupPackage.PROJECT__NAME: return getName(); - case SetupPackage.PROJECT__API_BASELINES: - return getApiBaselines(); - case SetupPackage.PROJECT__WORKING_SET_GROUP: - return getWorkingSetGroup(); } return super.eGet(featureID, resolve, coreType); } @@ -384,13 +293,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project case SetupPackage.PROJECT__NAME: setName((String)newValue); return; - case SetupPackage.PROJECT__API_BASELINES: - getApiBaselines().clear(); - getApiBaselines().addAll((Collection<? extends ApiBaseline>)newValue); - return; - case SetupPackage.PROJECT__WORKING_SET_GROUP: - setWorkingSetGroup((WorkingSetGroup)newValue); - return; } super.eSet(featureID, newValue); } @@ -414,12 +316,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project case SetupPackage.PROJECT__NAME: setName(NAME_EDEFAULT); return; - case SetupPackage.PROJECT__API_BASELINES: - getApiBaselines().clear(); - return; - case SetupPackage.PROJECT__WORKING_SET_GROUP: - setWorkingSetGroup((WorkingSetGroup)null); - return; } super.eUnset(featureID); } @@ -435,15 +331,11 @@ public class ProjectImpl extends ToolInstallationImpl implements Project switch (featureID) { case SetupPackage.PROJECT__CONFIGURATION: - return getConfiguration() != null; + return basicGetConfiguration() != null; case SetupPackage.PROJECT__BRANCHES: return branches != null && !branches.isEmpty(); case SetupPackage.PROJECT__NAME: return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - case SetupPackage.PROJECT__API_BASELINES: - return apiBaselines != null && !apiBaselines.isEmpty(); - case SetupPackage.PROJECT__WORKING_SET_GROUP: - return workingSetGroup != null; } return super.eIsSet(featureID); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java new file mode 100644 index 0000000000..c033ee8969 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java @@ -0,0 +1,298 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; + +import org.eclipse.net4j.util.io.IOUtil; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.resource.URIConverter; + +import java.io.InputStream; +import java.io.OutputStream; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Resource Copy Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl#getSourceURL <em>Source URL</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl#getTargetURL <em>Target URL</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class ResourceCopyTaskImpl extends SetupTaskImpl implements ResourceCopyTask +{ + /** + * The default value of the '{@link #getSourceURL() <em>Source URL</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSourceURL() + * @generated + * @ordered + */ + protected static final String SOURCE_URL_EDEFAULT = null; + + /** + * The cached value of the '{@link #getSourceURL() <em>Source URL</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSourceURL() + * @generated + * @ordered + */ + protected String sourceURL = SOURCE_URL_EDEFAULT; + + /** + * The default value of the '{@link #getTargetURL() <em>Target URL</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTargetURL() + * @generated + * @ordered + */ + protected static final String TARGET_URL_EDEFAULT = null; + + /** + * The cached value of the '{@link #getTargetURL() <em>Target URL</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getTargetURL() + * @generated + * @ordered + */ + protected String targetURL = TARGET_URL_EDEFAULT; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected ResourceCopyTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.RESOURCE_COPY_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getSourceURL() + { + return sourceURL; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setSourceURL(String newSourceURL) + { + String oldSourceURL = sourceURL; + sourceURL = newSourceURL; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL, oldSourceURL, + sourceURL)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getTargetURL() + { + return targetURL; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setTargetURL(String newTargetURL) + { + String oldTargetURL = targetURL; + targetURL = newTargetURL; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.RESOURCE_COPY_TASK__TARGET_URL, oldTargetURL, + targetURL)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL: + return getSourceURL(); + case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL: + return getTargetURL(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL: + setSourceURL((String)newValue); + return; + case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL: + setTargetURL((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL: + setSourceURL(SOURCE_URL_EDEFAULT); + return; + case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL: + setTargetURL(TARGET_URL_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL: + return SOURCE_URL_EDEFAULT == null ? sourceURL != null : !SOURCE_URL_EDEFAULT.equals(sourceURL); + case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL: + return TARGET_URL_EDEFAULT == null ? targetURL != null : !TARGET_URL_EDEFAULT.equals(targetURL); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (sourceURL: "); + result.append(sourceURL); + result.append(", targetURL: "); + result.append(targetURL); + result.append(')'); + return result.toString(); + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + URI sourceURI = URI.createURI(context.expandString(getSourceURL())); + URI targetURI = URI.createURI(context.expandString(getTargetURL())); + if (targetURI.hasTrailingPathSeparator()) + { + if (sourceURI.hasTrailingPathSeparator()) + { + // TODO + } + else if (URIConverter.INSTANCE.exists(sourceURI, null)) + { + return !URIConverter.INSTANCE.exists(targetURI.appendSegment(sourceURI.lastSegment()), null); + } + } + else + { + // TODO + } + + return false; + } + + public void perform(SetupTaskContext context) throws Exception + { + URI sourceURI = URI.createURI(context.expandString(getSourceURL())); + URI targetURI = URI.createURI(context.expandString(getTargetURL())); + if (targetURI.hasTrailingPathSeparator()) + { + if (sourceURI.hasTrailingPathSeparator()) + { + // TODO + } + else if (URIConverter.INSTANCE.exists(sourceURI, null)) + { + InputStream input = null; + OutputStream output = null; + + try + { + input = URIConverter.INSTANCE.createInputStream(sourceURI); + output = URIConverter.INSTANCE.createOutputStream(targetURI.appendSegment(sourceURI.lastSegment()), null); + IOUtil.copy(input, output); + } + finally + { + IOUtil.closeSilent(input); + IOUtil.closeSilent(output); + } + } + } + else + { + // TODO + } + } + +} // ResourceCopyTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java index efcd362915..c2baca746b 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java @@ -10,7 +10,31 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.*; +import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask; +import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask; +import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask; +import org.eclipse.emf.cdo.releng.setup.Configuration; +import org.eclipse.emf.cdo.releng.setup.EclipseIniTask; +import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask; +import org.eclipse.emf.cdo.releng.setup.EclipseVersion; +import org.eclipse.emf.cdo.releng.setup.GitCloneTask; +import org.eclipse.emf.cdo.releng.setup.InstallableUnit; +import org.eclipse.emf.cdo.releng.setup.LinkLocationTask; +import org.eclipse.emf.cdo.releng.setup.P2Repository; +import org.eclipse.emf.cdo.releng.setup.P2Task; +import org.eclipse.emf.cdo.releng.setup.Preferences; +import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask; +import org.eclipse.emf.cdo.releng.setup.Setup; +import org.eclipse.emf.cdo.releng.setup.SetupFactory; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskScope; +import org.eclipse.emf.cdo.releng.setup.StringVariableTask; +import org.eclipse.emf.cdo.releng.setup.TextModification; +import org.eclipse.emf.cdo.releng.setup.TextModifyTask; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.WorkingSetTask; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; @@ -18,6 +42,8 @@ import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.impl.EFactoryImpl; import org.eclipse.emf.ecore.plugin.EcorePlugin; +import java.util.HashSet; +import java.util.Set; /** * <!-- begin-user-doc --> @@ -71,32 +97,48 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory { switch (eClass.getClassifierID()) { - case SetupPackage.PREFERENCES: - return createPreferences(); - case SetupPackage.LINK_LOCATION: - return createLinkLocation(); - case SetupPackage.TOOL_PREFERENCE: - return createToolPreference(); case SetupPackage.ECLIPSE_VERSION: return createEclipseVersion(); - case SetupPackage.DIRECTOR_CALL: - return createDirectorCall(); - case SetupPackage.INSTALLABLE_UNIT: - return createInstallableUnit(); - case SetupPackage.P2_REPOSITORY: - return createP2Repository(); case SetupPackage.CONFIGURATION: return createConfiguration(); case SetupPackage.PROJECT: return createProject(); case SetupPackage.BRANCH: return createBranch(); - case SetupPackage.API_BASELINE: - return createApiBaseline(); - case SetupPackage.GIT_CLONE: - return createGitClone(); + case SetupPackage.PREFERENCES: + return createPreferences(); case SetupPackage.SETUP: return createSetup(); + case SetupPackage.COMPOUND_SETUP_TASK: + return createCompoundSetupTask(); + case SetupPackage.ECLIPSE_INI_TASK: + return createEclipseIniTask(); + case SetupPackage.LINK_LOCATION_TASK: + return createLinkLocationTask(); + case SetupPackage.P2_TASK: + return createP2Task(); + case SetupPackage.INSTALLABLE_UNIT: + return createInstallableUnit(); + case SetupPackage.P2_REPOSITORY: + return createP2Repository(); + case SetupPackage.BUCKMINSTER_IMPORT_TASK: + return createBuckminsterImportTask(); + case SetupPackage.API_BASELINE_TASK: + return createApiBaselineTask(); + case SetupPackage.GIT_CLONE_TASK: + return createGitCloneTask(); + case SetupPackage.ECLIPSE_PREFERENCE_TASK: + return createEclipsePreferenceTask(); + case SetupPackage.STRING_VARIABLE_TASK: + return createStringVariableTask(); + case SetupPackage.WORKING_SET_TASK: + return createWorkingSetTask(); + case SetupPackage.RESOURCE_COPY_TASK: + return createResourceCopyTask(); + case SetupPackage.TEXT_MODIFY_TASK: + return createTextModifyTask(); + case SetupPackage.TEXT_MODIFICATION: + return createTextModification(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); } @@ -112,8 +154,16 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory { switch (eDataType.getClassifierID()) { + case SetupPackage.SETUP_TASK_SCOPE: + return createSetupTaskScopeFromString(eDataType, initialValue); + case SetupPackage.TRIGGER: + return createTriggerFromString(eDataType, initialValue); case SetupPackage.URI: return createURIFromString(eDataType, initialValue); + case SetupPackage.EXCEPTION: + return createExceptionFromString(eDataType, initialValue); + case SetupPackage.TRIGGER_SET: + return createTriggerSetFromString(eDataType, initialValue); default: throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); } @@ -129,8 +179,16 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory { switch (eDataType.getClassifierID()) { + case SetupPackage.SETUP_TASK_SCOPE: + return convertSetupTaskScopeToString(eDataType, instanceValue); + case SetupPackage.TRIGGER: + return convertTriggerToString(eDataType, instanceValue); case SetupPackage.URI: return convertURIToString(eDataType, instanceValue); + case SetupPackage.EXCEPTION: + return convertExceptionToString(eDataType, instanceValue); + case SetupPackage.TRIGGER_SET: + return convertTriggerSetToString(eDataType, instanceValue); default: throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); } @@ -174,6 +232,28 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ + public ApiBaselineTask createApiBaselineTask() + { + ApiBaselineTaskImpl apiBaselineTask = new ApiBaselineTaskImpl(); + return apiBaselineTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public GitCloneTask createGitCloneTask() + { + GitCloneTaskImpl gitCloneTask = new GitCloneTaskImpl(); + return gitCloneTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public EclipseVersion createEclipseVersion() { EclipseVersionImpl eclipseVersion = new EclipseVersionImpl(); @@ -185,10 +265,10 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ - public DirectorCall createDirectorCall() + public P2Task createP2Task() { - DirectorCallImpl directorCall = new DirectorCallImpl(); - return directorCall; + P2TaskImpl p2Task = new P2TaskImpl(); + return p2Task; } /** @@ -218,10 +298,10 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ - public ApiBaseline createApiBaseline() + public Setup createSetup() { - ApiBaselineImpl apiBaseline = new ApiBaselineImpl(); - return apiBaseline; + SetupImpl setup = new SetupImpl(); + return setup; } /** @@ -229,10 +309,10 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ - public GitClone createGitClone() + public WorkingSetTask createWorkingSetTask() { - GitCloneImpl gitClone = new GitCloneImpl(); - return gitClone; + WorkingSetTaskImpl workingSetTask = new WorkingSetTaskImpl(); + return workingSetTask; } /** @@ -240,10 +320,43 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ - public Setup createSetup() + public ResourceCopyTask createResourceCopyTask() { - SetupImpl setup = new SetupImpl(); - return setup; + ResourceCopyTaskImpl resourceCopyTask = new ResourceCopyTaskImpl(); + return resourceCopyTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TextModifyTask createTextModifyTask() + { + TextModifyTaskImpl textModifyTask = new TextModifyTaskImpl(); + return textModifyTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public TextModification createTextModification() + { + TextModificationImpl textModification = new TextModificationImpl(); + return textModification; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EclipseIniTask createEclipseIniTask() + { + EclipseIniTaskImpl eclipseIniTask = new EclipseIniTaskImpl(); + return eclipseIniTask; } /** @@ -251,10 +364,13 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ - public ToolPreference createToolPreference() + public SetupTaskScope createSetupTaskScopeFromString(EDataType eDataType, String initialValue) { - ToolPreferenceImpl toolPreference = new ToolPreferenceImpl(); - return toolPreference; + SetupTaskScope result = SetupTaskScope.get(initialValue); + if (result == null) + throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + + eDataType.getName() + "'"); + return result; } /** @@ -262,10 +378,66 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ - public LinkLocation createLinkLocation() + public String convertSetupTaskScopeToString(EDataType eDataType, Object instanceValue) { - LinkLocationImpl linkLocation = new LinkLocationImpl(); - return linkLocation; + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public Trigger createTriggerFromString(EDataType eDataType, String initialValue) + { + Trigger result = Trigger.get(initialValue); + if (result == null) + throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + + eDataType.getName() + "'"); + return result; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String convertTriggerToString(EDataType eDataType, Object instanceValue) + { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public CompoundSetupTask createCompoundSetupTask() + { + CompoundSetupTaskImpl compoundSetupTask = new CompoundSetupTaskImpl(); + return compoundSetupTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public BuckminsterImportTask createBuckminsterImportTask() + { + BuckminsterImportTaskImpl buckminsterImportTask = new BuckminsterImportTaskImpl(); + return buckminsterImportTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public StringVariableTask createStringVariableTask() + { + StringVariableTaskImpl stringVariableTask = new StringVariableTaskImpl(); + return stringVariableTask; } /** @@ -284,6 +456,28 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ + public LinkLocationTask createLinkLocationTask() + { + LinkLocationTaskImpl linkLocationTask = new LinkLocationTaskImpl(); + return linkLocationTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EclipsePreferenceTask createEclipsePreferenceTask() + { + EclipsePreferenceTaskImpl eclipsePreferenceTask = new EclipsePreferenceTaskImpl(); + return eclipsePreferenceTask; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public URI createURIFromString(EDataType eDataType, String initialValue) { return (URI)super.createFromString(eDataType, initialValue); @@ -304,6 +498,64 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory * <!-- end-user-doc --> * @generated */ + public Exception createExceptionFromString(EDataType eDataType, String initialValue) + { + return (Exception)super.createFromString(eDataType, initialValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String convertExceptionToString(EDataType eDataType, Object instanceValue) + { + return super.convertToString(eDataType, instanceValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public Set<Trigger> createTriggerSetFromString(EDataType eDataType, String initialValue) + { + if (initialValue == null) + { + return null; + } + + Set<Trigger> result = new HashSet<Trigger>(); + for (String value : split(initialValue)) + { + result.add(Trigger.get(value)); + } + + return Trigger.intern(result); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public String convertTriggerSetToString(EDataType eDataType, Object instanceValue) + { + if (instanceValue == null) + { + return null; + } + + @SuppressWarnings("unchecked") + Set<Trigger> triggerSet = (Set<Trigger>)instanceValue; + return Trigger.LITERALS.get(triggerSet); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public SetupPackage getSetupPackage() { return (SetupPackage)getEPackage(); diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java index c61306de5d..b4bb261357 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java @@ -10,23 +10,24 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import java.util.Collection; import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.ConfigurableItem; import org.eclipse.emf.cdo.releng.setup.EclipseVersion; -import org.eclipse.emf.cdo.releng.setup.P2Repository; import org.eclipse.emf.cdo.releng.setup.Preferences; +import org.eclipse.emf.cdo.releng.setup.Project; import org.eclipse.emf.cdo.releng.setup.Setup; import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer; +import org.eclipse.emf.cdo.releng.setup.Trigger; import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.BasicEList; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; /** * <!-- begin-user-doc --> @@ -38,7 +39,6 @@ import org.eclipse.emf.ecore.util.InternalEList; * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getBranch <em>Branch</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getEclipseVersion <em>Eclipse Version</em>}</li> * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getPreferences <em>Preferences</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getUpdateLocations <em>Update Locations</em>}</li> * </ul> * </p> * @@ -67,7 +67,7 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup protected EclipseVersion eclipseVersion; /** - * The cached value of the '{@link #getPreferences() <em>Preferences</em>}' containment reference. + * The cached value of the '{@link #getPreferences() <em>Preferences</em>}' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @see #getPreferences() @@ -77,16 +77,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup protected Preferences preferences; /** - * The cached value of the '{@link #getUpdateLocations() <em>Update Locations</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getUpdateLocations() - * @generated - * @ordered - */ - protected EList<P2Repository> updateLocations; - - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated @@ -202,6 +192,17 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup */ public Preferences getPreferences() { + if (preferences != null && preferences.eIsProxy()) + { + InternalEObject oldPreferences = (InternalEObject)preferences; + preferences = (Preferences)eResolveProxy(oldPreferences); + if (preferences != oldPreferences) + { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, SetupPackage.SETUP__PREFERENCES, oldPreferences, + preferences)); + } + } return preferences; } @@ -210,20 +211,9 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup * <!-- end-user-doc --> * @generated */ - public NotificationChain basicSetPreferences(Preferences newPreferences, NotificationChain msgs) + public Preferences basicGetPreferences() { - Preferences oldPreferences = preferences; - preferences = newPreferences; - if (eNotificationRequired()) - { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP__PREFERENCES, - oldPreferences, newPreferences); - if (msgs == null) - msgs = notification; - else - msgs.add(notification); - } - return msgs; + return preferences; } /** @@ -233,55 +223,59 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup */ public void setPreferences(Preferences newPreferences) { - if (newPreferences != preferences) - { - NotificationChain msgs = null; - if (preferences != null) - msgs = ((InternalEObject)preferences).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - - SetupPackage.SETUP__PREFERENCES, null, msgs); - if (newPreferences != null) - msgs = ((InternalEObject)newPreferences).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - - SetupPackage.SETUP__PREFERENCES, null, msgs); - msgs = basicSetPreferences(newPreferences, msgs); - if (msgs != null) - msgs.dispatch(); - } - else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP__PREFERENCES, newPreferences, - newPreferences)); + Preferences oldPreferences = preferences; + preferences = newPreferences; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP__PREFERENCES, oldPreferences, + preferences)); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @generated + * @generated NOT */ - public EList<P2Repository> getUpdateLocations() + public EList<SetupTask> getSetupTasks(boolean filterRestrictions, Trigger trigger) { - if (updateLocations == null) - { - updateLocations = new EObjectContainmentEList<P2Repository>(P2Repository.class, this, - SetupPackage.SETUP__UPDATE_LOCATIONS); - } - return updateLocations; + EList<SetupTask> setupTasks = new BasicEList<SetupTask>(); + + Preferences preferences = getPreferences(); + getSetupTasks(filterRestrictions, trigger, setupTasks, preferences); + + Branch branch = getBranch(); + getSetupTasks(filterRestrictions, trigger, setupTasks, branch); + + Project project = branch.getProject(); + getSetupTasks(filterRestrictions, trigger, setupTasks, project); + + EclipseVersion eclipseVersion = getEclipseVersion(); + getSetupTasks(filterRestrictions, trigger, setupTasks, eclipseVersion); + + return setupTasks; } - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + private void getSetupTasks(boolean filterRestrictions, Trigger trigger, EList<SetupTask> setupTasks, + SetupTaskContainer setupTaskContainer) { - switch (featureID) + Branch branch = getBranch(); + Project project = branch.getProject(); + + for (SetupTask setupTask : setupTaskContainer.getSetupTasks()) { - case SetupPackage.SETUP__PREFERENCES: - return basicSetPreferences(null, msgs); - case SetupPackage.SETUP__UPDATE_LOCATIONS: - return ((InternalEList<?>)getUpdateLocations()).basicRemove(otherEnd, msgs); + if (setupTask.getTriggers().contains(trigger)) + { + EList<ConfigurableItem> restrictions = setupTask.getRestrictions(); + if (!restrictions.isEmpty()) + { + if (!restrictions.contains(branch) && !restrictions.contains(project)) + { + continue; + } + } + + setupTasks.add(setupTask); + } } - return super.eInverseRemove(otherEnd, featureID, msgs); } /** @@ -303,9 +297,9 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup return getEclipseVersion(); return basicGetEclipseVersion(); case SetupPackage.SETUP__PREFERENCES: - return getPreferences(); - case SetupPackage.SETUP__UPDATE_LOCATIONS: - return getUpdateLocations(); + if (resolve) + return getPreferences(); + return basicGetPreferences(); } return super.eGet(featureID, resolve, coreType); } @@ -315,7 +309,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup * <!-- end-user-doc --> * @generated */ - @SuppressWarnings("unchecked") @Override public void eSet(int featureID, Object newValue) { @@ -330,10 +323,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup case SetupPackage.SETUP__PREFERENCES: setPreferences((Preferences)newValue); return; - case SetupPackage.SETUP__UPDATE_LOCATIONS: - getUpdateLocations().clear(); - getUpdateLocations().addAll((Collection<? extends P2Repository>)newValue); - return; } super.eSet(featureID, newValue); } @@ -357,9 +346,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup case SetupPackage.SETUP__PREFERENCES: setPreferences((Preferences)null); return; - case SetupPackage.SETUP__UPDATE_LOCATIONS: - getUpdateLocations().clear(); - return; } super.eUnset(featureID); } @@ -380,8 +366,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup return eclipseVersion != null; case SetupPackage.SETUP__PREFERENCES: return preferences != null; - case SetupPackage.SETUP__UPDATE_LOCATIONS: - return updateLocations != null && !updateLocations.isEmpty(); } return super.eIsSet(featureID); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java index d08b90ff97..4305ebc213 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java @@ -10,31 +10,48 @@ */ package org.eclipse.emf.cdo.releng.setup.impl; -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; +import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask; import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask; +import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask; +import org.eclipse.emf.cdo.releng.setup.ConfigurableItem; import org.eclipse.emf.cdo.releng.setup.Configuration; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; +import org.eclipse.emf.cdo.releng.setup.EclipseIniTask; +import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask; import org.eclipse.emf.cdo.releng.setup.EclipseVersion; -import org.eclipse.emf.cdo.releng.setup.GitClone; +import org.eclipse.emf.cdo.releng.setup.GitCloneTask; import org.eclipse.emf.cdo.releng.setup.InstallableUnit; -import org.eclipse.emf.cdo.releng.setup.LinkLocation; +import org.eclipse.emf.cdo.releng.setup.LinkLocationTask; +import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask; import org.eclipse.emf.cdo.releng.setup.P2Repository; +import org.eclipse.emf.cdo.releng.setup.P2Task; import org.eclipse.emf.cdo.releng.setup.Preferences; import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask; import org.eclipse.emf.cdo.releng.setup.Setup; import org.eclipse.emf.cdo.releng.setup.SetupFactory; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.ToolInstallation; -import org.eclipse.emf.cdo.releng.setup.ToolPreference; +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer; +import org.eclipse.emf.cdo.releng.setup.SetupTaskScope; +import org.eclipse.emf.cdo.releng.setup.StringVariableTask; +import org.eclipse.emf.cdo.releng.setup.TextModification; +import org.eclipse.emf.cdo.releng.setup.TextModifyTask; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.WorkingSetTask; import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage; + import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EEnum; import org.eclipse.emf.ecore.EOperation; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.impl.EPackageImpl; +import java.util.Set; + /** * <!-- begin-user-doc --> * An implementation of the model <b>Package</b>. @@ -69,7 +86,14 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - private EClass toolInstallationEClass = null; + private EClass apiBaselineTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass gitCloneTaskEClass = null; /** * <!-- begin-user-doc --> @@ -83,7 +107,14 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - private EClass directorCallEClass = null; + private EClass p2TaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass stringVariableTaskEClass = null; /** * <!-- begin-user-doc --> @@ -104,35 +135,91 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - private EClass apiBaselineEClass = null; + private EClass setupEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - private EClass gitCloneEClass = null; + private EClass setupTaskEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - private EClass setupEClass = null; + private EClass workingSetTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass resourceCopyTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass textModifyTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass textModificationEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass eclipseIniTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EEnum setupTaskScopeEEnum = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EEnum triggerEEnum = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass compoundSetupTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass oneTimeSetupTaskEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - private EClass toolPreferenceEClass = null; + private EClass configurableItemEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - private EClass linkLocationEClass = null; + private EClass buckminsterImportTaskEClass = null; /** * <!-- begin-user-doc --> @@ -146,9 +233,44 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ + private EClass linkLocationTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass setupTaskContainerEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EClass eclipsePreferenceTaskEClass = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ private EDataType uriEDataType = null; /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EDataType exceptionEDataType = null; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + private EDataType triggerSetEDataType = null; + + /** * Creates an instance of the model <b>Package</b>, registered with * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package * package URI value. @@ -157,7 +279,7 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * initialization of the package, or returns the registered package, * if one already exists. * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * <!-- end-user-doc --> * @see org.eclipse.emf.ecore.EPackage.Registry * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#eNS_URI * @see #init() @@ -287,12 +409,12 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage /** * <!-- begin-user-doc --> - * <!-- end-user-doc --> + * <!-- end-user-doc --> * @generated */ - public EReference getProject_ApiBaselines() + public EClass getBranch() { - return (EReference)projectEClass.getEStructuralFeatures().get(3); + return branchEClass; } /** @@ -300,19 +422,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getProject_WorkingSetGroup() - { - return (EReference)projectEClass.getEStructuralFeatures().get(4); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EClass getBranch() + public EReference getBranch_Project() { - return branchEClass; + return (EReference)branchEClass.getEStructuralFeatures().get(0); } /** @@ -320,9 +432,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getBranch_Project() + public EAttribute getBranch_Name() { - return (EReference)branchEClass.getEStructuralFeatures().get(0); + return (EAttribute)branchEClass.getEStructuralFeatures().get(1); } /** @@ -330,9 +442,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getBranch_Name() + public EClass getApiBaselineTask() { - return (EAttribute)branchEClass.getEStructuralFeatures().get(1); + return apiBaselineTaskEClass; } /** @@ -340,9 +452,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getBranch_GitClones() + public EAttribute getApiBaselineTask_Version() { - return (EReference)branchEClass.getEStructuralFeatures().get(2); + return (EAttribute)apiBaselineTaskEClass.getEStructuralFeatures().get(0); } /** @@ -350,9 +462,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getBranch_ApiBaseline() + public EAttribute getApiBaselineTask_ZipLocation() { - return (EReference)branchEClass.getEStructuralFeatures().get(3); + return (EAttribute)apiBaselineTaskEClass.getEStructuralFeatures().get(1); } /** @@ -360,9 +472,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getBranch_MspecFilePath() + public EClass getGitCloneTask() { - return (EAttribute)branchEClass.getEStructuralFeatures().get(4); + return gitCloneTaskEClass; } /** @@ -370,9 +482,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getBranch_CloneVariableName() + public EAttribute getGitCloneTask_Name() { - return (EAttribute)branchEClass.getEStructuralFeatures().get(5); + return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(0); } /** @@ -380,9 +492,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getToolInstallation() + public EAttribute getGitCloneTask_RemoteName() { - return toolInstallationEClass; + return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(1); } /** @@ -390,9 +502,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getToolInstallation_DirectorCalls() + public EAttribute getGitCloneTask_RemoteURI() { - return (EReference)toolInstallationEClass.getEStructuralFeatures().get(0); + return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(2); } /** @@ -400,9 +512,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getToolInstallation_ToolPreferences() + public EAttribute getGitCloneTask_CheckoutBranch() { - return (EReference)toolInstallationEClass.getEStructuralFeatures().get(1); + return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(3); } /** @@ -440,9 +552,19 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getEclipseVersion_DirectorCall() + public EClass getP2Task() + { + return p2TaskEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getP2Task_InstallableUnits() { - return (EReference)eclipseVersionEClass.getEStructuralFeatures().get(2); + return (EReference)p2TaskEClass.getEStructuralFeatures().get(1); } /** @@ -450,9 +572,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getDirectorCall() + public EReference getP2Task_P2Repositories() { - return directorCallEClass; + return (EReference)p2TaskEClass.getEStructuralFeatures().get(0); } /** @@ -460,9 +582,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getDirectorCall_InstallableUnits() + public EClass getStringVariableTask() { - return (EReference)directorCallEClass.getEStructuralFeatures().get(0); + return stringVariableTaskEClass; } /** @@ -470,9 +592,29 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getDirectorCall_P2Repositories() + public EAttribute getStringVariableTask_Name() { - return (EReference)directorCallEClass.getEStructuralFeatures().get(1); + return (EAttribute)stringVariableTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getStringVariableTask_Value() + { + return (EAttribute)stringVariableTaskEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getStringVariableTask_Description() + { + return (EAttribute)stringVariableTaskEClass.getEStructuralFeatures().get(2); } /** @@ -490,7 +632,7 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getInstallableUnit_DirectorCall() + public EReference getInstallableUnit_P2Task() { return (EReference)installableUnitEClass.getEStructuralFeatures().get(0); } @@ -520,7 +662,7 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getP2Repository_DirectorCall() + public EReference getP2Repository_P2Task() { return (EReference)p2RepositoryEClass.getEStructuralFeatures().get(0); } @@ -540,9 +682,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getApiBaseline() + public EClass getSetup() { - return apiBaselineEClass; + return setupEClass; } /** @@ -550,9 +692,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getApiBaseline_Project() + public EReference getSetup_Branch() { - return (EReference)apiBaselineEClass.getEStructuralFeatures().get(0); + return (EReference)setupEClass.getEStructuralFeatures().get(0); } /** @@ -560,9 +702,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getApiBaseline_Version() + public EReference getSetup_EclipseVersion() { - return (EAttribute)apiBaselineEClass.getEStructuralFeatures().get(1); + return (EReference)setupEClass.getEStructuralFeatures().get(1); } /** @@ -570,9 +712,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getApiBaseline_ZipLocation() + public EReference getSetup_Preferences() { - return (EAttribute)apiBaselineEClass.getEStructuralFeatures().get(2); + return (EReference)setupEClass.getEStructuralFeatures().get(2); } /** @@ -580,9 +722,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getGitClone() + public EClass getSetupTask() { - return gitCloneEClass; + return setupTaskEClass; } /** @@ -590,9 +732,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getGitClone_Branch() + public EReference getSetupTask_Requirements() { - return (EReference)gitCloneEClass.getEStructuralFeatures().get(0); + return (EReference)setupTaskEClass.getEStructuralFeatures().get(0); } /** @@ -600,9 +742,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getGitClone_Name() + public EReference getSetupTask_Restrictions() { - return (EAttribute)gitCloneEClass.getEStructuralFeatures().get(1); + return (EReference)setupTaskEClass.getEStructuralFeatures().get(1); } /** @@ -610,9 +752,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getGitClone_RemoteURI() + public EAttribute getSetupTask_Scope() { - return (EAttribute)gitCloneEClass.getEStructuralFeatures().get(2); + return (EAttribute)setupTaskEClass.getEStructuralFeatures().get(2); } /** @@ -620,9 +762,19 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getGitClone_CheckoutBranch() + public EAttribute getSetupTask_ExcludedTriggers() + { + return (EAttribute)setupTaskEClass.getEStructuralFeatures().get(3); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getWorkingSetTask() { - return (EAttribute)gitCloneEClass.getEStructuralFeatures().get(3); + return workingSetTaskEClass; } /** @@ -630,9 +782,109 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getSetup() + public EReference getWorkingSetTask_WorkingSets() { - return setupEClass; + return (EReference)workingSetTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getResourceCopyTask() + { + return resourceCopyTaskEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getResourceCopyTask_SourceURL() + { + return (EAttribute)resourceCopyTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getResourceCopyTask_TargetURL() + { + return (EAttribute)resourceCopyTaskEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getTextModifyTask() + { + return textModifyTaskEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getTextModifyTask_Url() + { + return (EAttribute)textModifyTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getTextModifyTask_Modifications() + { + return (EReference)textModifyTaskEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getTextModification() + { + return textModificationEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getTextModification_Pattern() + { + return (EAttribute)textModificationEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getTextModification_Substitutions() + { + return (EAttribute)textModificationEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getEclipseIniTask() + { + return eclipseIniTaskEClass; } /** @@ -640,9 +892,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getSetup_Branch() + public EAttribute getEclipseIniTask_Option() { - return (EReference)setupEClass.getEStructuralFeatures().get(0); + return (EAttribute)eclipseIniTaskEClass.getEStructuralFeatures().get(0); } /** @@ -650,9 +902,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getSetup_EclipseVersion() + public EAttribute getEclipseIniTask_Value() { - return (EReference)setupEClass.getEStructuralFeatures().get(1); + return (EAttribute)eclipseIniTaskEClass.getEStructuralFeatures().get(1); } /** @@ -660,9 +912,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getSetup_Preferences() + public EAttribute getEclipseIniTask_Vm() { - return (EReference)setupEClass.getEStructuralFeatures().get(2); + return (EAttribute)eclipseIniTaskEClass.getEStructuralFeatures().get(2); } /** @@ -670,9 +922,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getSetup_UpdateLocations() + public EEnum getSetupTaskScope() { - return (EReference)setupEClass.getEStructuralFeatures().get(3); + return setupTaskScopeEEnum; } /** @@ -680,9 +932,19 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getToolPreference() + public EEnum getTrigger() { - return toolPreferenceEClass; + return triggerEEnum; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getCompoundSetupTask() + { + return compoundSetupTaskEClass; } /** @@ -690,9 +952,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getToolPreference_Key() + public EAttribute getCompoundSetupTask_Name() { - return (EAttribute)toolPreferenceEClass.getEStructuralFeatures().get(0); + return (EAttribute)compoundSetupTaskEClass.getEStructuralFeatures().get(0); } /** @@ -700,9 +962,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getToolPreference_Value() + public EClass getOneTimeSetupTask() { - return (EAttribute)toolPreferenceEClass.getEStructuralFeatures().get(1); + return oneTimeSetupTaskEClass; } /** @@ -710,9 +972,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EClass getLinkLocation() + public EAttribute getOneTimeSetupTask_Id() { - return linkLocationEClass; + return (EAttribute)oneTimeSetupTaskEClass.getEStructuralFeatures().get(0); } /** @@ -720,9 +982,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getLinkLocation_Path() + public EClass getConfigurableItem() { - return (EAttribute)linkLocationEClass.getEStructuralFeatures().get(0); + return configurableItemEClass; } /** @@ -730,9 +992,39 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EAttribute getLinkLocation_Name() + public EClass getBuckminsterImportTask() { - return (EAttribute)linkLocationEClass.getEStructuralFeatures().get(1); + return buckminsterImportTaskEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getBuckminsterImportTask_Mspec() + { + return (EAttribute)buckminsterImportTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getBuckminsterImportTask_TargetPlatform() + { + return (EAttribute)buckminsterImportTaskEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getBuckminsterImportTask_BundlePool() + { + return (EAttribute)buckminsterImportTaskEClass.getEStructuralFeatures().get(2); } /** @@ -780,9 +1072,79 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ - public EReference getPreferences_LinkLocations() + public EClass getLinkLocationTask() + { + return linkLocationTaskEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getLinkLocationTask_Path() + { + return (EAttribute)linkLocationTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getLinkLocationTask_Name() + { + return (EAttribute)linkLocationTaskEClass.getEStructuralFeatures().get(1); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getSetupTaskContainer() + { + return setupTaskContainerEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EReference getSetupTaskContainer_SetupTasks() + { + return (EReference)setupTaskContainerEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EClass getEclipsePreferenceTask() + { + return eclipsePreferenceTaskEClass; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getEclipsePreferenceTask_Key() { - return (EReference)preferencesEClass.getEStructuralFeatures().get(3); + return (EAttribute)eclipsePreferenceTaskEClass.getEStructuralFeatures().get(0); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EAttribute getEclipsePreferenceTask_Value() + { + return (EAttribute)eclipsePreferenceTaskEClass.getEStructuralFeatures().get(1); } /** @@ -800,6 +1162,26 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage * <!-- end-user-doc --> * @generated */ + public EDataType getException() + { + return exceptionEDataType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EDataType getTriggerSet() + { + return triggerSetEDataType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ public SetupFactory getSetupFactory() { return (SetupFactory)getEFactoryInstance(); @@ -826,79 +1208,118 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage isCreated = true; // Create classes and their features - preferencesEClass = createEClass(PREFERENCES); - createEAttribute(preferencesEClass, PREFERENCES__USER_NAME); - createEAttribute(preferencesEClass, PREFERENCES__INSTALL_FOLDER); - createEAttribute(preferencesEClass, PREFERENCES__GIT_PREFIX); - createEReference(preferencesEClass, PREFERENCES__LINK_LOCATIONS); - - linkLocationEClass = createEClass(LINK_LOCATION); - createEAttribute(linkLocationEClass, LINK_LOCATION__PATH); - createEAttribute(linkLocationEClass, LINK_LOCATION__NAME); - - toolInstallationEClass = createEClass(TOOL_INSTALLATION); - createEReference(toolInstallationEClass, TOOL_INSTALLATION__DIRECTOR_CALLS); - createEReference(toolInstallationEClass, TOOL_INSTALLATION__TOOL_PREFERENCES); - - toolPreferenceEClass = createEClass(TOOL_PREFERENCE); - createEAttribute(toolPreferenceEClass, TOOL_PREFERENCE__KEY); - createEAttribute(toolPreferenceEClass, TOOL_PREFERENCE__VALUE); - eclipseVersionEClass = createEClass(ECLIPSE_VERSION); createEReference(eclipseVersionEClass, ECLIPSE_VERSION__CONFIGURATION); createEAttribute(eclipseVersionEClass, ECLIPSE_VERSION__VERSION); - createEReference(eclipseVersionEClass, ECLIPSE_VERSION__DIRECTOR_CALL); - - directorCallEClass = createEClass(DIRECTOR_CALL); - createEReference(directorCallEClass, DIRECTOR_CALL__INSTALLABLE_UNITS); - createEReference(directorCallEClass, DIRECTOR_CALL__P2_REPOSITORIES); - - installableUnitEClass = createEClass(INSTALLABLE_UNIT); - createEReference(installableUnitEClass, INSTALLABLE_UNIT__DIRECTOR_CALL); - createEAttribute(installableUnitEClass, INSTALLABLE_UNIT__ID); - - p2RepositoryEClass = createEClass(P2_REPOSITORY); - createEReference(p2RepositoryEClass, P2_REPOSITORY__DIRECTOR_CALL); - createEAttribute(p2RepositoryEClass, P2_REPOSITORY__URL); configurationEClass = createEClass(CONFIGURATION); createEReference(configurationEClass, CONFIGURATION__PROJECTS); createEReference(configurationEClass, CONFIGURATION__ECLIPSE_VERSIONS); + configurableItemEClass = createEClass(CONFIGURABLE_ITEM); + projectEClass = createEClass(PROJECT); createEReference(projectEClass, PROJECT__CONFIGURATION); createEReference(projectEClass, PROJECT__BRANCHES); createEAttribute(projectEClass, PROJECT__NAME); - createEReference(projectEClass, PROJECT__API_BASELINES); - createEReference(projectEClass, PROJECT__WORKING_SET_GROUP); branchEClass = createEClass(BRANCH); createEReference(branchEClass, BRANCH__PROJECT); createEAttribute(branchEClass, BRANCH__NAME); - createEReference(branchEClass, BRANCH__GIT_CLONES); - createEReference(branchEClass, BRANCH__API_BASELINE); - createEAttribute(branchEClass, BRANCH__MSPEC_FILE_PATH); - createEAttribute(branchEClass, BRANCH__CLONE_VARIABLE_NAME); - - apiBaselineEClass = createEClass(API_BASELINE); - createEReference(apiBaselineEClass, API_BASELINE__PROJECT); - createEAttribute(apiBaselineEClass, API_BASELINE__VERSION); - createEAttribute(apiBaselineEClass, API_BASELINE__ZIP_LOCATION); - - gitCloneEClass = createEClass(GIT_CLONE); - createEReference(gitCloneEClass, GIT_CLONE__BRANCH); - createEAttribute(gitCloneEClass, GIT_CLONE__NAME); - createEAttribute(gitCloneEClass, GIT_CLONE__REMOTE_URI); - createEAttribute(gitCloneEClass, GIT_CLONE__CHECKOUT_BRANCH); + + preferencesEClass = createEClass(PREFERENCES); + createEAttribute(preferencesEClass, PREFERENCES__USER_NAME); + createEAttribute(preferencesEClass, PREFERENCES__INSTALL_FOLDER); + createEAttribute(preferencesEClass, PREFERENCES__GIT_PREFIX); setupEClass = createEClass(SETUP); createEReference(setupEClass, SETUP__BRANCH); createEReference(setupEClass, SETUP__ECLIPSE_VERSION); createEReference(setupEClass, SETUP__PREFERENCES); - createEReference(setupEClass, SETUP__UPDATE_LOCATIONS); + + setupTaskEClass = createEClass(SETUP_TASK); + createEReference(setupTaskEClass, SETUP_TASK__REQUIREMENTS); + createEReference(setupTaskEClass, SETUP_TASK__RESTRICTIONS); + createEAttribute(setupTaskEClass, SETUP_TASK__SCOPE); + createEAttribute(setupTaskEClass, SETUP_TASK__EXCLUDED_TRIGGERS); + + setupTaskContainerEClass = createEClass(SETUP_TASK_CONTAINER); + createEReference(setupTaskContainerEClass, SETUP_TASK_CONTAINER__SETUP_TASKS); + + compoundSetupTaskEClass = createEClass(COMPOUND_SETUP_TASK); + createEAttribute(compoundSetupTaskEClass, COMPOUND_SETUP_TASK__NAME); + + oneTimeSetupTaskEClass = createEClass(ONE_TIME_SETUP_TASK); + createEAttribute(oneTimeSetupTaskEClass, ONE_TIME_SETUP_TASK__ID); + + eclipseIniTaskEClass = createEClass(ECLIPSE_INI_TASK); + createEAttribute(eclipseIniTaskEClass, ECLIPSE_INI_TASK__OPTION); + createEAttribute(eclipseIniTaskEClass, ECLIPSE_INI_TASK__VALUE); + createEAttribute(eclipseIniTaskEClass, ECLIPSE_INI_TASK__VM); + + linkLocationTaskEClass = createEClass(LINK_LOCATION_TASK); + createEAttribute(linkLocationTaskEClass, LINK_LOCATION_TASK__PATH); + createEAttribute(linkLocationTaskEClass, LINK_LOCATION_TASK__NAME); + + p2TaskEClass = createEClass(P2_TASK); + createEReference(p2TaskEClass, P2_TASK__P2_REPOSITORIES); + createEReference(p2TaskEClass, P2_TASK__INSTALLABLE_UNITS); + + installableUnitEClass = createEClass(INSTALLABLE_UNIT); + createEReference(installableUnitEClass, INSTALLABLE_UNIT__P2_TASK); + createEAttribute(installableUnitEClass, INSTALLABLE_UNIT__ID); + + p2RepositoryEClass = createEClass(P2_REPOSITORY); + createEReference(p2RepositoryEClass, P2_REPOSITORY__P2_TASK); + createEAttribute(p2RepositoryEClass, P2_REPOSITORY__URL); + + buckminsterImportTaskEClass = createEClass(BUCKMINSTER_IMPORT_TASK); + createEAttribute(buckminsterImportTaskEClass, BUCKMINSTER_IMPORT_TASK__MSPEC); + createEAttribute(buckminsterImportTaskEClass, BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM); + createEAttribute(buckminsterImportTaskEClass, BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL); + + apiBaselineTaskEClass = createEClass(API_BASELINE_TASK); + createEAttribute(apiBaselineTaskEClass, API_BASELINE_TASK__VERSION); + createEAttribute(apiBaselineTaskEClass, API_BASELINE_TASK__ZIP_LOCATION); + + gitCloneTaskEClass = createEClass(GIT_CLONE_TASK); + createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__NAME); + createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__REMOTE_NAME); + createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__REMOTE_URI); + createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__CHECKOUT_BRANCH); + + eclipsePreferenceTaskEClass = createEClass(ECLIPSE_PREFERENCE_TASK); + createEAttribute(eclipsePreferenceTaskEClass, ECLIPSE_PREFERENCE_TASK__KEY); + createEAttribute(eclipsePreferenceTaskEClass, ECLIPSE_PREFERENCE_TASK__VALUE); + + stringVariableTaskEClass = createEClass(STRING_VARIABLE_TASK); + createEAttribute(stringVariableTaskEClass, STRING_VARIABLE_TASK__NAME); + createEAttribute(stringVariableTaskEClass, STRING_VARIABLE_TASK__VALUE); + createEAttribute(stringVariableTaskEClass, STRING_VARIABLE_TASK__DESCRIPTION); + + workingSetTaskEClass = createEClass(WORKING_SET_TASK); + createEReference(workingSetTaskEClass, WORKING_SET_TASK__WORKING_SETS); + + resourceCopyTaskEClass = createEClass(RESOURCE_COPY_TASK); + createEAttribute(resourceCopyTaskEClass, RESOURCE_COPY_TASK__SOURCE_URL); + createEAttribute(resourceCopyTaskEClass, RESOURCE_COPY_TASK__TARGET_URL); + + textModifyTaskEClass = createEClass(TEXT_MODIFY_TASK); + createEAttribute(textModifyTaskEClass, TEXT_MODIFY_TASK__URL); + createEReference(textModifyTaskEClass, TEXT_MODIFY_TASK__MODIFICATIONS); + + textModificationEClass = createEClass(TEXT_MODIFICATION); + createEAttribute(textModificationEClass, TEXT_MODIFICATION__PATTERN); + createEAttribute(textModificationEClass, TEXT_MODIFICATION__SUBSTITUTIONS); + + // Create enums + setupTaskScopeEEnum = createEEnum(SETUP_TASK_SCOPE); + triggerEEnum = createEEnum(TRIGGER); // Create data types uriEDataType = createEDataType(URI); + exceptionEDataType = createEDataType(EXCEPTION); + triggerSetEDataType = createEDataType(TRIGGER_SET); } /** @@ -935,11 +1356,65 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage // Set bounds for type parameters // Add supertypes to classes - preferencesEClass.getESuperTypes().add(this.getToolInstallation()); - projectEClass.getESuperTypes().add(this.getToolInstallation()); - branchEClass.getESuperTypes().add(this.getToolInstallation()); + eclipseVersionEClass.getESuperTypes().add(this.getConfigurableItem()); + configurableItemEClass.getESuperTypes().add(this.getSetupTaskContainer()); + projectEClass.getESuperTypes().add(this.getConfigurableItem()); + branchEClass.getESuperTypes().add(this.getConfigurableItem()); + preferencesEClass.getESuperTypes().add(this.getSetupTaskContainer()); + compoundSetupTaskEClass.getESuperTypes().add(this.getSetupTask()); + compoundSetupTaskEClass.getESuperTypes().add(this.getSetupTaskContainer()); + oneTimeSetupTaskEClass.getESuperTypes().add(this.getSetupTask()); + eclipseIniTaskEClass.getESuperTypes().add(this.getSetupTask()); + linkLocationTaskEClass.getESuperTypes().add(this.getSetupTask()); + p2TaskEClass.getESuperTypes().add(this.getSetupTask()); + buckminsterImportTaskEClass.getESuperTypes().add(this.getSetupTask()); + apiBaselineTaskEClass.getESuperTypes().add(this.getSetupTask()); + gitCloneTaskEClass.getESuperTypes().add(this.getSetupTask()); + eclipsePreferenceTaskEClass.getESuperTypes().add(this.getSetupTask()); + stringVariableTaskEClass.getESuperTypes().add(this.getSetupTask()); + workingSetTaskEClass.getESuperTypes().add(this.getSetupTask()); + resourceCopyTaskEClass.getESuperTypes().add(this.getSetupTask()); + textModifyTaskEClass.getESuperTypes().add(this.getSetupTask()); // Initialize classes and features; add operations and parameters + initEClass(eclipseVersionEClass, EclipseVersion.class, "EclipseVersion", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEReference(getEclipseVersion_Configuration(), this.getConfiguration(), this.getConfiguration_EclipseVersions(), + "configuration", null, 0, 1, EclipseVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, + IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getEclipseVersion_Version(), ecorePackage.getEString(), "version", null, 0, 1, EclipseVersion.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEReference(getConfiguration_Projects(), this.getProject(), this.getProject_Configuration(), "projects", null, + 1, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getConfiguration_EclipseVersions(), this.getEclipseVersion(), + this.getEclipseVersion_Configuration(), "eclipseVersions", null, 1, -1, Configuration.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, + IS_ORDERED); + + initEClass(configurableItemEClass, ConfigurableItem.class, "ConfigurableItem", IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + + initEClass(projectEClass, Project.class, "Project", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getProject_Configuration(), this.getConfiguration(), this.getConfiguration_Projects(), + "configuration", null, 0, 1, Project.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, + IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getProject_Branches(), this.getBranch(), this.getBranch_Project(), "branches", null, 1, -1, + Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getProject_Name(), ecorePackage.getEString(), "name", null, 0, 1, Project.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(branchEClass, Branch.class, "Branch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getBranch_Project(), this.getProject(), this.getProject_Branches(), "project", null, 0, 1, + Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getBranch_Name(), ecorePackage.getEString(), "name", null, 0, 1, Branch.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(preferencesEClass, Preferences.class, "Preferences", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getPreferences_UserName(), ecorePackage.getEString(), "userName", null, 0, 1, Preferences.class, @@ -949,160 +1424,204 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage IS_ORDERED); initEAttribute(getPreferences_GitPrefix(), ecorePackage.getEString(), "gitPrefix", null, 0, 1, Preferences.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getPreferences_LinkLocations(), this.getLinkLocation(), null, "linkLocations", null, 0, -1, - Preferences.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, + + initEClass(setupEClass, Setup.class, "Setup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSetup_Branch(), this.getBranch(), null, "branch", null, 1, 1, Setup.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, + IS_ORDERED); + initEReference(getSetup_EclipseVersion(), this.getEclipseVersion(), null, "eclipseVersion", null, 1, 1, + Setup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getSetup_Preferences(), this.getPreferences(), null, "preferences", null, 1, 1, Setup.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + + EOperation op = addEOperation(setupEClass, this.getSetupTask(), "getSetupTasks", 0, -1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, ecorePackage.getEBoolean(), "filterRestrictions", 0, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getTrigger(), "trigger", 0, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(setupTaskEClass, SetupTask.class, "SetupTask", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getSetupTask_Requirements(), this.getSetupTask(), null, "requirements", null, 0, -1, + SetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getSetupTask_Restrictions(), this.getConfigurableItem(), null, "restrictions", null, 0, -1, + SetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getSetupTask_Scope(), this.getSetupTaskScope(), "scope", null, 0, 1, SetupTask.class, IS_TRANSIENT, + IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED); + initEAttribute(getSetupTask_ExcludedTriggers(), this.getTriggerSet(), "excludedTriggers", "", 1, 1, + SetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, + IS_ORDERED); + + op = addEOperation(setupTaskEClass, ecorePackage.getEBoolean(), "requires", 0, 1, IS_UNIQUE, IS_ORDERED); + addEParameter(op, this.getSetupTask(), "setupTask", 0, 1, IS_UNIQUE, IS_ORDERED); + + addEOperation(setupTaskEClass, this.getTriggerSet(), "getValidTriggers", 1, 1, IS_UNIQUE, IS_ORDERED); + + addEOperation(setupTaskEClass, this.getTriggerSet(), "getTriggers", 1, 1, IS_UNIQUE, IS_ORDERED); + + initEClass(setupTaskContainerEClass, SetupTaskContainer.class, "SetupTaskContainer", IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEReference(getSetupTaskContainer_SetupTasks(), this.getSetupTask(), null, "setupTasks", null, 0, -1, + SetupTaskContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(linkLocationEClass, LinkLocation.class, "LinkLocation", !IS_ABSTRACT, !IS_INTERFACE, + initEClass(compoundSetupTaskEClass, CompoundSetupTask.class, "CompoundSetupTask", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getLinkLocation_Path(), ecorePackage.getEString(), "path", null, 0, 1, LinkLocation.class, - !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getLinkLocation_Name(), ecorePackage.getEString(), "name", null, 0, 1, LinkLocation.class, + initEAttribute(getCompoundSetupTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, CompoundSetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(toolInstallationEClass, ToolInstallation.class, "ToolInstallation", IS_ABSTRACT, !IS_INTERFACE, + initEClass(oneTimeSetupTaskEClass, OneTimeSetupTask.class, "OneTimeSetupTask", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getToolInstallation_DirectorCalls(), this.getDirectorCall(), null, "directorCalls", null, 0, -1, - ToolInstallation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getToolInstallation_ToolPreferences(), this.getToolPreference(), null, "toolPreferences", null, 0, - -1, ToolInstallation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getOneTimeSetupTask_Id(), ecorePackage.getEString(), "id", null, 1, 1, OneTimeSetupTask.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(toolPreferenceEClass, ToolPreference.class, "ToolPreference", !IS_ABSTRACT, !IS_INTERFACE, + initEClass(eclipseIniTaskEClass, EclipseIniTask.class, "EclipseIniTask", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEAttribute(getToolPreference_Key(), ecorePackage.getEString(), "key", null, 0, 1, ToolPreference.class, + initEAttribute(getEclipseIniTask_Option(), ecorePackage.getEString(), "option", null, 0, 1, EclipseIniTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getToolPreference_Value(), ecorePackage.getEString(), "value", null, 0, 1, ToolPreference.class, + initEAttribute(getEclipseIniTask_Value(), ecorePackage.getEString(), "value", null, 0, 1, EclipseIniTask.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getEclipseIniTask_Vm(), ecorePackage.getEBoolean(), "vm", null, 0, 1, EclipseIniTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(eclipseVersionEClass, EclipseVersion.class, "EclipseVersion", !IS_ABSTRACT, !IS_INTERFACE, + initEClass(linkLocationTaskEClass, LinkLocationTask.class, "LinkLocationTask", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getEclipseVersion_Configuration(), this.getConfiguration(), this.getConfiguration_EclipseVersions(), - "configuration", null, 0, 1, EclipseVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, - !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getEclipseVersion_Version(), ecorePackage.getEString(), "version", null, 0, 1, EclipseVersion.class, + initEAttribute(getLinkLocationTask_Path(), ecorePackage.getEString(), "path", null, 0, 1, LinkLocationTask.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getLinkLocationTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, LinkLocationTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getEclipseVersion_DirectorCall(), this.getDirectorCall(), null, "directorCall", null, 1, 1, - EclipseVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(directorCallEClass, DirectorCall.class, "DirectorCall", !IS_ABSTRACT, !IS_INTERFACE, - IS_GENERATED_INSTANCE_CLASS); - initEReference(getDirectorCall_InstallableUnits(), this.getInstallableUnit(), - this.getInstallableUnit_DirectorCall(), "installableUnits", null, 1, -1, DirectorCall.class, !IS_TRANSIENT, - !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, - IS_ORDERED); - initEReference(getDirectorCall_P2Repositories(), this.getP2Repository(), this.getP2Repository_DirectorCall(), - "p2Repositories", null, 1, -1, DirectorCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, - !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(p2TaskEClass, P2Task.class, "P2Task", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getP2Task_P2Repositories(), this.getP2Repository(), this.getP2Repository_P2Task(), "p2Repositories", + null, 1, -1, P2Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getP2Task_InstallableUnits(), this.getInstallableUnit(), this.getInstallableUnit_P2Task(), + "installableUnits", null, 1, -1, P2Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, + IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(installableUnitEClass, InstallableUnit.class, "InstallableUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getInstallableUnit_DirectorCall(), this.getDirectorCall(), this.getDirectorCall_InstallableUnits(), - "directorCall", null, 0, 1, InstallableUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, - !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getInstallableUnit_P2Task(), this.getP2Task(), this.getP2Task_InstallableUnits(), "p2Task", null, 0, + 1, InstallableUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getInstallableUnit_Id(), ecorePackage.getEString(), "id", null, 0, 1, InstallableUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(p2RepositoryEClass, P2Repository.class, "P2Repository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getP2Repository_DirectorCall(), this.getDirectorCall(), this.getDirectorCall_P2Repositories(), - "directorCall", null, 0, 1, P2Repository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, - !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getP2Repository_P2Task(), this.getP2Task(), this.getP2Task_P2Repositories(), "p2Task", null, 0, 1, + P2Repository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getP2Repository_Url(), ecorePackage.getEString(), "url", null, 0, 1, P2Repository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE, - IS_GENERATED_INSTANCE_CLASS); - initEReference(getConfiguration_Projects(), this.getProject(), this.getProject_Configuration(), "projects", null, - 1, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getConfiguration_EclipseVersions(), this.getEclipseVersion(), - this.getEclipseVersion_Configuration(), "eclipseVersions", null, 1, -1, Configuration.class, !IS_TRANSIENT, - !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, - IS_ORDERED); - - initEClass(projectEClass, Project.class, "Project", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getProject_Configuration(), this.getConfiguration(), this.getConfiguration_Projects(), - "configuration", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, - !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getProject_Branches(), this.getBranch(), this.getBranch_Project(), "branches", null, 1, -1, - Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, - IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getProject_Name(), ecorePackage.getEString(), "name", null, 0, 1, Project.class, !IS_TRANSIENT, - !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getProject_ApiBaselines(), this.getApiBaseline(), this.getApiBaseline_Project(), "apiBaselines", - null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getProject_WorkingSetGroup(), theWorkingSetsPackage.getWorkingSetGroup(), null, "workingSetGroup", - null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(buckminsterImportTaskEClass, BuckminsterImportTask.class, "BuckminsterImportTask", !IS_ABSTRACT, + !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getBuckminsterImportTask_Mspec(), ecorePackage.getEString(), "mspec", null, 0, 1, + BuckminsterImportTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getBuckminsterImportTask_TargetPlatform(), ecorePackage.getEString(), "targetPlatform", null, 0, 1, + BuckminsterImportTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getBuckminsterImportTask_BundlePool(), ecorePackage.getEString(), "bundlePool", null, 0, 1, + BuckminsterImportTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); - initEClass(branchEClass, Branch.class, "Branch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getBranch_Project(), this.getProject(), this.getProject_Branches(), "project", null, 0, 1, - Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, - IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getBranch_Name(), ecorePackage.getEString(), "name", null, 0, 1, Branch.class, !IS_TRANSIENT, - !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getBranch_GitClones(), this.getGitClone(), this.getGitClone_Branch(), "gitClones", null, 1, -1, - Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, - IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getBranch_ApiBaseline(), this.getApiBaseline(), null, "apiBaseline", null, 0, 1, Branch.class, - !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, + initEClass(apiBaselineTaskEClass, ApiBaselineTask.class, "ApiBaselineTask", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getApiBaselineTask_Version(), ecorePackage.getEString(), "version", null, 0, 1, + ApiBaselineTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getApiBaselineTask_ZipLocation(), ecorePackage.getEString(), "zipLocation", null, 0, 1, + ApiBaselineTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getBranch_MspecFilePath(), ecorePackage.getEString(), "mspecFilePath", null, 0, 1, Branch.class, + + initEClass(gitCloneTaskEClass, GitCloneTask.class, "GitCloneTask", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getGitCloneTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, GitCloneTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getBranch_CloneVariableName(), ecorePackage.getEString(), "cloneVariableName", null, 0, 1, - Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, + initEAttribute(getGitCloneTask_RemoteName(), ecorePackage.getEString(), "remoteName", "origin", 0, 1, + GitCloneTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, + IS_ORDERED); + initEAttribute(getGitCloneTask_RemoteURI(), ecorePackage.getEString(), "remoteURI", null, 0, 1, GitCloneTask.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getGitCloneTask_CheckoutBranch(), ecorePackage.getEString(), "checkoutBranch", null, 0, 1, + GitCloneTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - EOperation op = addEOperation(branchEClass, ecorePackage.getEBoolean(), "isInstalled", 0, 1, IS_UNIQUE, IS_ORDERED); - addEParameter(op, ecorePackage.getEString(), "installFolder", 0, 1, IS_UNIQUE, IS_ORDERED); + initEClass(eclipsePreferenceTaskEClass, EclipsePreferenceTask.class, "EclipsePreferenceTask", !IS_ABSTRACT, + !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getEclipsePreferenceTask_Key(), ecorePackage.getEString(), "key", null, 0, 1, + EclipsePreferenceTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getEclipsePreferenceTask_Value(), ecorePackage.getEString(), "value", null, 0, 1, + EclipsePreferenceTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); - op = addEOperation(branchEClass, this.getURI(), "getURI", 0, 1, IS_UNIQUE, IS_ORDERED); - addEParameter(op, ecorePackage.getEString(), "installFolder", 0, 1, IS_UNIQUE, IS_ORDERED); + initEClass(stringVariableTaskEClass, StringVariableTask.class, "StringVariableTask", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getStringVariableTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, + StringVariableTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getStringVariableTask_Value(), ecorePackage.getEString(), "value", null, 0, 1, + StringVariableTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getStringVariableTask_Description(), ecorePackage.getEString(), "description", null, 0, 1, + StringVariableTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); - initEClass(apiBaselineEClass, ApiBaseline.class, "ApiBaseline", !IS_ABSTRACT, !IS_INTERFACE, + initEClass(workingSetTaskEClass, WorkingSetTask.class, "WorkingSetTask", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getApiBaseline_Project(), this.getProject(), this.getProject_ApiBaselines(), "project", null, 0, 1, - ApiBaseline.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, + initEReference(getWorkingSetTask_WorkingSets(), theWorkingSetsPackage.getWorkingSet(), null, "workingSets", null, + 0, -1, WorkingSetTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getApiBaseline_Version(), ecorePackage.getEString(), "version", null, 0, 1, ApiBaseline.class, - !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getApiBaseline_ZipLocation(), ecorePackage.getEString(), "zipLocation", null, 0, 1, - ApiBaseline.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, - IS_ORDERED); - initEClass(gitCloneEClass, GitClone.class, "GitClone", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getGitClone_Branch(), this.getBranch(), this.getBranch_GitClones(), "branch", null, 0, 1, - GitClone.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, - IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGitClone_Name(), ecorePackage.getEString(), "name", null, 0, 1, GitClone.class, !IS_TRANSIENT, - !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGitClone_RemoteURI(), ecorePackage.getEString(), "remoteURI", null, 0, 1, GitClone.class, + initEClass(resourceCopyTaskEClass, ResourceCopyTask.class, "ResourceCopyTask", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getResourceCopyTask_SourceURL(), ecorePackage.getEString(), "sourceURL", null, 0, 1, + ResourceCopyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getResourceCopyTask_TargetURL(), ecorePackage.getEString(), "targetURL", null, 0, 1, + ResourceCopyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + + initEClass(textModifyTaskEClass, TextModifyTask.class, "TextModifyTask", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getTextModifyTask_Url(), ecorePackage.getEString(), "url", null, 0, 1, TextModifyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEAttribute(getGitClone_CheckoutBranch(), ecorePackage.getEString(), "checkoutBranch", null, 0, 1, - GitClone.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, - IS_ORDERED); + initEReference(getTextModifyTask_Modifications(), this.getTextModification(), null, "modifications", null, 0, -1, + TextModifyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEClass(setupEClass, Setup.class, "Setup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getSetup_Branch(), this.getBranch(), null, "branch", null, 1, 1, Setup.class, !IS_TRANSIENT, - !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, - IS_ORDERED); - initEReference(getSetup_EclipseVersion(), this.getEclipseVersion(), null, "eclipseVersion", null, 1, 1, - Setup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, - IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getSetup_Preferences(), this.getPreferences(), null, "preferences", null, 0, 1, Setup.class, - !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, + initEClass(textModificationEClass, TextModification.class, "TextModification", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getTextModification_Pattern(), ecorePackage.getEString(), "pattern", null, 0, 1, + TextModification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getSetup_UpdateLocations(), this.getP2Repository(), null, "updateLocations", null, 0, -1, - Setup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, - IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getTextModification_Substitutions(), ecorePackage.getEString(), "substitutions", null, 0, -1, + TextModification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + + // Initialize enums and add enum literals + initEEnum(setupTaskScopeEEnum, SetupTaskScope.class, "SetupTaskScope"); + addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.NONE); + addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.CONFIGURATION); + addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.PROJECT); + addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.BRANCH); + addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.USER); + + initEEnum(triggerEEnum, Trigger.class, "Trigger"); + addEEnumLiteral(triggerEEnum, Trigger.BOOTSTRAP); + addEEnumLiteral(triggerEEnum, Trigger.STARTUP); + addEEnumLiteral(triggerEEnum, Trigger.MANUAL); // Initialize data types initEDataType(uriEDataType, org.eclipse.emf.common.util.URI.class, "URI", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); + initEDataType(exceptionEDataType, Exception.class, "Exception", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); + initEDataType(triggerSetEDataType, Set.class, "TriggerSet", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS, + "java.util.Set<org.eclipse.emf.cdo.releng.setup.Trigger>"); // Create resource createResource(eNS_URI); diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java new file mode 100644 index 0000000000..3a5df4b135 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java @@ -0,0 +1,164 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import java.util.Collection; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Task Container</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl#getSetupTasks <em>Setup Tasks</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public abstract class SetupTaskContainerImpl extends MinimalEObjectImpl.Container implements SetupTaskContainer +{ + /** + * The cached value of the '{@link #getSetupTasks() <em>Setup Tasks</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSetupTasks() + * @generated + * @ordered + */ + protected EList<SetupTask> setupTasks; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SetupTaskContainerImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.SETUP_TASK_CONTAINER; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<SetupTask> getSetupTasks() + { + if (setupTasks == null) + { + setupTasks = new EObjectContainmentEList.Resolving<SetupTask>(SetupTask.class, this, + SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS); + } + return setupTasks; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS: + return ((InternalEList<?>)getSetupTasks()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS: + return getSetupTasks(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS: + getSetupTasks().clear(); + getSetupTasks().addAll((Collection<? extends SetupTask>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS: + getSetupTasks().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS: + return setupTasks != null && !setupTasks.isEmpty(); + } + return super.eIsSet(featureID); + } + +} // SetupTaskContainerImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java new file mode 100644 index 0000000000..c33d040385 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java @@ -0,0 +1,471 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.ConfigurableItem; +import org.eclipse.emf.cdo.releng.setup.Configuration; +import org.eclipse.emf.cdo.releng.setup.Preferences; +import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskScope; +import org.eclipse.emf.cdo.releng.setup.Trigger; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getRequirements <em>Requirements</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getRestrictions <em>Restrictions</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getScope <em>Scope</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getExcludedTriggers <em>Excluded Triggers</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public abstract class SetupTaskImpl extends MinimalEObjectImpl.Container implements SetupTask +{ + /** + * The cached value of the '{@link #getRequirements() <em>Requirements</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRequirements() + * @generated + * @ordered + */ + protected EList<SetupTask> requirements; + + /** + * The cached value of the '{@link #getRestrictions() <em>Restrictions</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRestrictions() + * @generated + * @ordered + */ + protected EList<ConfigurableItem> restrictions; + + /** + * The default value of the '{@link #getScope() <em>Scope</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getScope() + * @generated + * @ordered + */ + protected static final SetupTaskScope SCOPE_EDEFAULT = SetupTaskScope.NONE; + + /** + * The cached value of the '{@link #getExcludedTriggers() <em>Excluded Triggers</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getExcludedTriggers() + * @generated + * @ordered + */ + protected Set<Trigger> excludedTriggers; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected SetupTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.SETUP_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<SetupTask> getRequirements() + { + if (requirements == null) + { + requirements = new EObjectResolvingEList<SetupTask>(SetupTask.class, this, SetupPackage.SETUP_TASK__REQUIREMENTS); + } + return requirements; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<ConfigurableItem> getRestrictions() + { + if (restrictions == null) + { + restrictions = new EObjectResolvingEList<ConfigurableItem>(ConfigurableItem.class, this, + SetupPackage.SETUP_TASK__RESTRICTIONS); + } + return restrictions; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public SetupTaskScope getScope() + { + return getScope(this); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public Set<Trigger> getExcludedTriggers() + { + return excludedTriggers == null ? Collections.<Trigger> emptySet() : excludedTriggers; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setExcludedTriggersGen(Set<Trigger> newExcludedTriggers) + { + Set<Trigger> oldExcludedTriggers = excludedTriggers; + excludedTriggers = newExcludedTriggers; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS, + oldExcludedTriggers, excludedTriggers)); + } + + public void setExcludedTriggers(Set<Trigger> newExcludedTriggers) + { + setExcludedTriggersGen(newExcludedTriggers == null || newExcludedTriggers.isEmpty() ? null : newExcludedTriggers); + } + + private SetupTaskScope getScope(EObject object) + { + if (object instanceof Configuration) + { + return SetupTaskScope.CONFIGURATION; + } + + if (object instanceof Project) + { + return SetupTaskScope.PROJECT; + } + + if (object instanceof Branch) + { + return SetupTaskScope.BRANCH; + } + + if (object instanceof Preferences) + { + return SetupTaskScope.USER; + } + + EObject container = object.eContainer(); + if (container == null) + { + return SetupTaskScope.NONE; + } + + return getScope(container); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public boolean requires(SetupTask setupTask) + { + Set<SetupTask> visited = new HashSet<SetupTask>(); + return requires(setupTask, visited); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public Set<Trigger> getValidTriggers() + { + return Trigger.ALL_TRIGGERS; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + public final Set<Trigger> getTriggers() + { + Set<Trigger> excludedTriggers = getExcludedTriggers(); + if (excludedTriggers == null || excludedTriggers.isEmpty()) + { + return getValidTriggers(); + } + + Set<Trigger> result = new HashSet<Trigger>(getValidTriggers()); + result.removeAll(excludedTriggers); + return Trigger.intern(result); + } + + private boolean requires(SetupTask setupTask, Set<SetupTask> visited) + { + if (visited.add(setupTask)) + { + if (setupTask == this) + { + return true; + } + + for (SetupTask requirement : getRequirements()) + { + if (((SetupTaskImpl)requirement).requires(setupTask, visited)) + { + return true; + } + } + } + + return false; + } + + protected final Object createToken(String value) + { + return new TypedStringToken(eClass(), value); + } + + /** + * Subclasses may override to indicate that this task overrides another task with the same token. + * + * @see #createToken(String) + */ + public Object getOverrideToken() + { + return this; + } + + /** + * Subclasses may override to reset this task to its initial state. + */ + public void dispose() + { + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK__REQUIREMENTS: + return getRequirements(); + case SetupPackage.SETUP_TASK__RESTRICTIONS: + return getRestrictions(); + case SetupPackage.SETUP_TASK__SCOPE: + return getScope(); + case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS: + return getExcludedTriggers(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK__REQUIREMENTS: + getRequirements().clear(); + getRequirements().addAll((Collection<? extends SetupTask>)newValue); + return; + case SetupPackage.SETUP_TASK__RESTRICTIONS: + getRestrictions().clear(); + getRestrictions().addAll((Collection<? extends ConfigurableItem>)newValue); + return; + case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS: + setExcludedTriggers((Set<Trigger>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK__REQUIREMENTS: + getRequirements().clear(); + return; + case SetupPackage.SETUP_TASK__RESTRICTIONS: + getRestrictions().clear(); + return; + case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS: + setExcludedTriggers((Set<Trigger>)null); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.SETUP_TASK__REQUIREMENTS: + return requirements != null && !requirements.isEmpty(); + case SetupPackage.SETUP_TASK__RESTRICTIONS: + return restrictions != null && !restrictions.isEmpty(); + case SetupPackage.SETUP_TASK__SCOPE: + return getScope() != SCOPE_EDEFAULT; + case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS: + return excludedTriggers != null; + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (excludedTriggers: "); + result.append(excludedTriggers); + result.append(')'); + return result.toString(); + } + + /** + * @author Eike Stepper + */ + protected static final class TypedStringToken + { + private final Object type; + + private final String value; + + public TypedStringToken(Object type, String value) + { + this.type = type; + this.value = value; + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + (type == null ? 0 : type.hashCode()); + result = prime * result + (value == null ? 0 : value.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) + { + if (this == obj) + { + return true; + } + + if (obj == null) + { + return false; + } + + if (getClass() != obj.getClass()) + { + return false; + } + + TypedStringToken other = (TypedStringToken)obj; + if (type == null) + { + if (other.type != null) + { + return false; + } + } + else if (!type.equals(other.type)) + { + return false; + } + + if (value == null) + { + if (other.value != null) + { + return false; + } + } + else if (!value.equals(other.value)) + { + return false; + } + + return true; + } + } + +} // SetupTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java new file mode 100644 index 0000000000..f3c5461fc6 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java @@ -0,0 +1,355 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.StringVariableTask; +import org.eclipse.emf.cdo.releng.setup.Trigger; + +import org.eclipse.net4j.util.StringUtil; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.core.variables.IStringVariableManager; +import org.eclipse.core.variables.IValueVariable; +import org.eclipse.core.variables.VariablesPlugin; + +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>String Variable Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl#getValue <em>Value</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl#getDescription <em>Description</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class StringVariableTaskImpl extends SetupTaskImpl implements StringVariableTask +{ + /** + * The default value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() <em>Name</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * The default value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected static final String VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getValue() <em>Value</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getValue() + * @generated + * @ordered + */ + protected String value = VALUE_EDEFAULT; + + /** + * The default value of the '{@link #getDescription() <em>Description</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDescription() + * @generated + * @ordered + */ + protected static final String DESCRIPTION_EDEFAULT = null; + + /** + * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getDescription() + * @generated + * @ordered + */ + protected String description = DESCRIPTION_EDEFAULT; + + private transient Object cachedVariable; + + private transient String expandedValue; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected StringVariableTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.STRING_VARIABLE_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getName() + { + return name; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setName(String newName) + { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.STRING_VARIABLE_TASK__NAME, oldName, name)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getValue() + { + return value; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setValue(String newValue) + { + String oldValue = value; + value = newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.STRING_VARIABLE_TASK__VALUE, oldValue, value)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getDescription() + { + return description; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setDescription(String newDescription) + { + String oldDescription = description; + description = newDescription; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION, + oldDescription, description)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.STRING_VARIABLE_TASK__NAME: + return getName(); + case SetupPackage.STRING_VARIABLE_TASK__VALUE: + return getValue(); + case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION: + return getDescription(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.STRING_VARIABLE_TASK__NAME: + setName((String)newValue); + return; + case SetupPackage.STRING_VARIABLE_TASK__VALUE: + setValue((String)newValue); + return; + case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION: + setDescription((String)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.STRING_VARIABLE_TASK__NAME: + setName(NAME_EDEFAULT); + return; + case SetupPackage.STRING_VARIABLE_TASK__VALUE: + setValue(VALUE_EDEFAULT); + return; + case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION: + setDescription(DESCRIPTION_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.STRING_VARIABLE_TASK__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case SetupPackage.STRING_VARIABLE_TASK__VALUE: + return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value); + case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION: + return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(", value: "); + result.append(value); + result.append(", description: "); + result.append(description); + result.append(')'); + return result.toString(); + } + + @Override + public Object getOverrideToken() + { + return createToken(getName()); + } + + @Override + public Set<Trigger> getValidTriggers() + { + return Trigger.IDE_TRIGGERS; + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager(); + IValueVariable variable = manager.getValueVariable(getName()); + + cachedVariable = variable; + expandedValue = context.expandString(getValue()); + + if (variable == null) + { + return true; + } + + if (!expandedValue.equals(variable.getValue())) + { + return true; + } + + if (!StringUtil.safe(getDescription()).equals(StringUtil.safe(variable.getDescription()))) + { + return true; + } + + return false; + } + + public void perform(SetupTaskContext context) throws Exception + { + context.log("Setting string substitution variable " + getName() + " = " + expandedValue); + + IValueVariable variable = (IValueVariable)cachedVariable; + if (variable == null) + { + IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager(); + variable = manager.newValueVariable(getName(), null); + manager.addVariables(new IValueVariable[] { variable }); + } + + variable.setDescription(getDescription()); + variable.setValue(expandedValue); + } +} // StringVariableTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java new file mode 100644 index 0000000000..15125bc0b7 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java @@ -0,0 +1,221 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.TextModification; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.EDataTypeUniqueEList; + +import java.util.Collection; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Text Modification</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl#getPattern <em>Pattern</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl#getSubstitutions <em>Substitutions</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class TextModificationImpl extends MinimalEObjectImpl.Container implements TextModification +{ + /** + * The default value of the '{@link #getPattern() <em>Pattern</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPattern() + * @generated + * @ordered + */ + protected static final String PATTERN_EDEFAULT = null; + + /** + * The cached value of the '{@link #getPattern() <em>Pattern</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getPattern() + * @generated + * @ordered + */ + protected String pattern = PATTERN_EDEFAULT; + + /** + * The cached value of the '{@link #getSubstitutions() <em>Substitutions</em>}' attribute list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getSubstitutions() + * @generated + * @ordered + */ + protected EList<String> substitutions; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TextModificationImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.TEXT_MODIFICATION; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getPattern() + { + return pattern; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setPattern(String newPattern) + { + String oldPattern = pattern; + pattern = newPattern; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TEXT_MODIFICATION__PATTERN, oldPattern, + pattern)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<String> getSubstitutions() + { + if (substitutions == null) + { + substitutions = new EDataTypeUniqueEList<String>(String.class, this, + SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS); + } + return substitutions; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFICATION__PATTERN: + return getPattern(); + case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS: + return getSubstitutions(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFICATION__PATTERN: + setPattern((String)newValue); + return; + case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS: + getSubstitutions().clear(); + getSubstitutions().addAll((Collection<? extends String>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFICATION__PATTERN: + setPattern(PATTERN_EDEFAULT); + return; + case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS: + getSubstitutions().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFICATION__PATTERN: + return PATTERN_EDEFAULT == null ? pattern != null : !PATTERN_EDEFAULT.equals(pattern); + case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS: + return substitutions != null && !substitutions.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (pattern: "); + result.append(pattern); + result.append(", substitutions: "); + result.append(substitutions); + result.append(')'); + return result.toString(); + } + +} //TextModificationImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java new file mode 100644 index 0000000000..6ede46e41e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java @@ -0,0 +1,250 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.TextModification; +import org.eclipse.emf.cdo.releng.setup.TextModifyTask; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import java.util.Collection; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Text Modify Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl#getUrl <em>Url</em>}</li> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl#getModifications <em>Modifications</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class TextModifyTaskImpl extends SetupTaskImpl implements TextModifyTask +{ + /** + * The default value of the '{@link #getUrl() <em>Url</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getUrl() + * @generated + * @ordered + */ + protected static final String URL_EDEFAULT = null; + + /** + * The cached value of the '{@link #getUrl() <em>Url</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getUrl() + * @generated + * @ordered + */ + protected String url = URL_EDEFAULT; + + /** + * The cached value of the '{@link #getModifications() <em>Modifications</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getModifications() + * @generated + * @ordered + */ + protected EList<TextModification> modifications; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected TextModifyTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.TEXT_MODIFY_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public String getUrl() + { + return url; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public void setUrl(String newUrl) + { + String oldUrl = url; + url = newUrl; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TEXT_MODIFY_TASK__URL, oldUrl, url)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<TextModification> getModifications() + { + if (modifications == null) + { + modifications = new EObjectContainmentEList.Resolving<TextModification>(TextModification.class, this, + SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS); + } + return modifications; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS: + return ((InternalEList<?>)getModifications()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFY_TASK__URL: + return getUrl(); + case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS: + return getModifications(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFY_TASK__URL: + setUrl((String)newValue); + return; + case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS: + getModifications().clear(); + getModifications().addAll((Collection<? extends TextModification>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFY_TASK__URL: + setUrl(URL_EDEFAULT); + return; + case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS: + getModifications().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.TEXT_MODIFY_TASK__URL: + return URL_EDEFAULT == null ? url != null : !URL_EDEFAULT.equals(url); + case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS: + return modifications != null && !modifications.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public String toString() + { + if (eIsProxy()) + return super.toString(); + + StringBuffer result = new StringBuffer(super.toString()); + result.append(" (url: "); + result.append(url); + result.append(')'); + return result.toString(); + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + // TODO + throw new UnsupportedOperationException(); + } + + public void perform(SetupTaskContext context) throws Exception + { + // TODO + throw new UnsupportedOperationException(); + } + +} // TextModifyTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java deleted file mode 100644 index eac9bd8e7d..0000000000 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.releng.setup.impl; - -import org.eclipse.emf.cdo.releng.setup.DirectorCall; -import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.ToolInstallation; - -import org.eclipse.emf.cdo.releng.setup.ToolPreference; -import org.eclipse.emf.common.notify.NotificationChain; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; -import org.eclipse.emf.ecore.util.EObjectContainmentEList; -import org.eclipse.emf.ecore.util.InternalEList; - -import java.util.Collection; - -/** - * <!-- begin-user-doc --> - * An implementation of the model object '<em><b>Tool Installation</b></em>'. - * <!-- end-user-doc --> - * <p> - * The following features are implemented: - * <ul> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl#getDirectorCalls <em>Director Calls</em>}</li> - * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl#getToolPreferences <em>Tool Preferences</em>}</li> - * </ul> - * </p> - * - * @generated - */ -public abstract class ToolInstallationImpl extends MinimalEObjectImpl.Container implements ToolInstallation -{ - /** - * The cached value of the '{@link #getDirectorCalls() <em>Director Calls</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getDirectorCalls() - * @generated - * @ordered - */ - protected EList<DirectorCall> directorCalls; - - /** - * The cached value of the '{@link #getToolPreferences() <em>Tool Preferences</em>}' containment reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getToolPreferences() - * @generated - * @ordered - */ - protected EList<ToolPreference> toolPreferences; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected ToolInstallationImpl() - { - super(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EClass eStaticClass() - { - return SetupPackage.Literals.TOOL_INSTALLATION; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EList<DirectorCall> getDirectorCalls() - { - if (directorCalls == null) - { - directorCalls = new EObjectContainmentEList<DirectorCall>(DirectorCall.class, this, - SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS); - } - return directorCalls; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public EList<ToolPreference> getToolPreferences() - { - if (toolPreferences == null) - { - toolPreferences = new EObjectContainmentEList<ToolPreference>(ToolPreference.class, this, - SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES); - } - return toolPreferences; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) - { - switch (featureID) - { - case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS: - return ((InternalEList<?>)getDirectorCalls()).basicRemove(otherEnd, msgs); - case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES: - return ((InternalEList<?>)getToolPreferences()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) - { - switch (featureID) - { - case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS: - return getDirectorCalls(); - case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES: - return getToolPreferences(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @SuppressWarnings("unchecked") - @Override - public void eSet(int featureID, Object newValue) - { - switch (featureID) - { - case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS: - getDirectorCalls().clear(); - getDirectorCalls().addAll((Collection<? extends DirectorCall>)newValue); - return; - case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES: - getToolPreferences().clear(); - getToolPreferences().addAll((Collection<? extends ToolPreference>)newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void eUnset(int featureID) - { - switch (featureID) - { - case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS: - getDirectorCalls().clear(); - return; - case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES: - getToolPreferences().clear(); - return; - } - super.eUnset(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean eIsSet(int featureID) - { - switch (featureID) - { - case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS: - return directorCalls != null && !directorCalls.isEmpty(); - case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES: - return toolPreferences != null && !toolPreferences.isEmpty(); - } - return super.eIsSet(featureID); - } - -} // ToolInstallationImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java new file mode 100644 index 0000000000..c45a4b1f7b --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java @@ -0,0 +1,289 @@ +/** + */ +package org.eclipse.emf.cdo.releng.setup.impl; + +import org.eclipse.emf.cdo.releng.internal.setup.Activator; +import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.Preferences; +import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.SetupPackage; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; +import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.emf.cdo.releng.setup.WorkingSetTask; +import org.eclipse.emf.cdo.releng.workingsets.WorkingSet; +import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup; +import org.eclipse.emf.cdo.releng.workingsets.util.WorkingSetsUtil; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; + +/** + * <!-- begin-user-doc --> + * An implementation of the model object '<em><b>Set Working Task</b></em>'. + * <!-- end-user-doc --> + * <p> + * The following features are implemented: + * <ul> + * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl#getWorkingSets <em>Working Sets</em>}</li> + * </ul> + * </p> + * + * @generated + */ +public class WorkingSetTaskImpl extends SetupTaskImpl implements WorkingSetTask +{ + /** + * The cached value of the '{@link #getWorkingSets() <em>Working Sets</em>}' containment reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getWorkingSets() + * @generated + * @ordered + */ + protected EList<WorkingSet> workingSets; + + private static final String PACKAGE_EXPLORER_ID = "org.eclipse.jdt.ui.PackageExplorer"; + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected WorkingSetTaskImpl() + { + super(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + protected EClass eStaticClass() + { + return SetupPackage.Literals.WORKING_SET_TASK; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public EList<WorkingSet> getWorkingSets() + { + if (workingSets == null) + { + workingSets = new EObjectContainmentEList.Resolving<WorkingSet>(WorkingSet.class, this, + SetupPackage.WORKING_SET_TASK__WORKING_SETS); + } + return workingSets; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) + { + switch (featureID) + { + case SetupPackage.WORKING_SET_TASK__WORKING_SETS: + return ((InternalEList<?>)getWorkingSets()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) + { + switch (featureID) + { + case SetupPackage.WORKING_SET_TASK__WORKING_SETS: + return getWorkingSets(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) + { + switch (featureID) + { + case SetupPackage.WORKING_SET_TASK__WORKING_SETS: + getWorkingSets().clear(); + getWorkingSets().addAll((Collection<? extends WorkingSet>)newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void eUnset(int featureID) + { + switch (featureID) + { + case SetupPackage.WORKING_SET_TASK__WORKING_SETS: + getWorkingSets().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean eIsSet(int featureID) + { + switch (featureID) + { + case SetupPackage.WORKING_SET_TASK__WORKING_SETS: + return workingSets != null && !workingSets.isEmpty(); + } + return super.eIsSet(featureID); + } + + @Override + public Set<Trigger> getValidTriggers() + { + return Trigger.IDE_TRIGGERS; + } + + public boolean isNeeded(SetupTaskContext context) throws Exception + { + WorkingSetGroup defaultWorkingSetGroup = WorkingSetsUtil.getWorkingSetGroup(); + Set<String> existingIds = new HashSet<String>(); + for (WorkingSet workingSet : defaultWorkingSetGroup.getWorkingSets()) + { + existingIds.add(workingSet.getId()); + } + + String prefix = ""; + for (EObject eContainer = eContainer(); eContainer != null; eContainer = eContainer.eContainer()) + { + if (eContainer instanceof Project) + { + prefix += ((Project)eContainer).getName() + " "; + } + else if (eContainer instanceof Branch) + { + prefix += ((Branch)eContainer).getName() + " "; + } + else if (eContainer instanceof Preferences) + { + prefix += ((Preferences)eContainer).getUserName() + " "; + } + } + + Set<String> newIds = new HashSet<String>(); + for (WorkingSet workingSet : getWorkingSets()) + { + String id = prefix + workingSet.getName(); + workingSet.setId(id); + newIds.add(id); + } + + return !existingIds.containsAll(newIds); + } + + public void perform(SetupTaskContext context) throws Exception + { + initPackageExplorer(); + + WorkingSetGroup defaultWorkingSetGroup = WorkingSetsUtil.getWorkingSetGroup(); + Set<String> existingIds = new HashSet<String>(); + EList<WorkingSet> workingSets = defaultWorkingSetGroup.getWorkingSets(); + for (WorkingSet workingSet : workingSets) + { + existingIds.add(workingSet.getId()); + } + + EList<WorkingSet> newWorkingSetGroups = getWorkingSets(); + int index = 0; + for (WorkingSet workingSet : new ArrayList<WorkingSet>(newWorkingSetGroups)) + { + String id = workingSet.getId(); + if (!existingIds.contains(id)) + { + workingSets.add(index++, workingSet); + } + else + { + for (int i = 0, size = workingSets.size(); i < size; ++i) + { + if (id.equals(workingSets.get(i).getId())) + { + index = i + 1; + break; + } + } + } + } + + Resource resource = defaultWorkingSetGroup.eResource(); + resource.save(null); + } + + private static void initPackageExplorer() + { + final IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getWorkbenchWindows()[0]; + workbenchWindow.getShell().getDisplay().asyncExec(new Runnable() + { + public void run() + { + try + { + IViewPart view = workbenchWindow.getActivePage().showView(PACKAGE_EXPLORER_ID, null, + IWorkbenchPage.VIEW_CREATE); + if (view != null) + { + Method method = view.getClass().getMethod("rootModeChanged", int.class); + method.invoke(view, 2); + } + } + catch (Exception ex) + { + Activator.log(ex); + } + } + }); + } +} // SetWorkingTaskImpl diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Downloads.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/DownloadUtil.java index a5d15fda65..9c19526c1c 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Downloads.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/DownloadUtil.java @@ -8,7 +8,9 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util; + +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog; import java.io.BufferedInputStream; import java.io.File; @@ -21,11 +23,11 @@ import java.net.URLConnection; /** * @author Eike Stepper */ -public final class Downloads +public final class DownloadUtil { private static final int BUFFER_SIZE = 4096; - public static File downloadURL(String url) + public static File downloadURL(String url, ProgressLog progress) { if (url.endsWith("/")) { @@ -39,7 +41,7 @@ public final class Downloads File file = new File(tmp.getParentFile(), name + ".zip"); if (!file.exists()) { - downloadURL(url, tmp); + downloadURL(url, tmp, progress); tmp.renameTo(file); } @@ -51,7 +53,7 @@ public final class Downloads } } - private static void downloadURL(String url, File file) + private static void downloadURL(String url, File file, ProgressLog progress) { final byte data[] = new byte[BUFFER_SIZE]; BufferedInputStream in = null; @@ -89,7 +91,7 @@ public final class Downloads int percent = Math.round(factor * read); if (percent != lastPercent) { - Progress.log().addLine("Downloading " + fileName + " (" + percent + "%)"); + progress.log("Downloading " + fileName + " (" + percent + "%)"); } } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Files.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/FileUtil.java index ca4bc423c0..1e584cca9e 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Files.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/FileUtil.java @@ -8,7 +8,9 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util; + +import org.eclipse.emf.cdo.releng.internal.setup.Activator; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; @@ -25,22 +27,12 @@ import java.util.List; /** * @author Eike Stepper */ -public final class Files +public final class FileUtil { public static void rename(File from) throws IOException, InterruptedException { File to = new File(from.getParentFile(), from.getName() + "." + System.currentTimeMillis()); - for (int i = 0; i < 1000; i++) - { - if (from.renameTo(to)) - { - return; - } - - Thread.sleep(5); - } - - throw new IOException("Could not rename '" + from.getAbsolutePath() + "' to '" + to.getAbsolutePath() + "'"); + rename(from, to); } public static void rename(File from, File to) throws IOException, InterruptedException diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/OS.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/OS.java index 3b5032793d..158e84f017 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/OS.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/OS.java @@ -8,7 +8,7 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util; import org.eclipse.core.runtime.Platform; @@ -74,6 +74,8 @@ public abstract class OS try { + file.getParentFile().mkdirs(); + out = new FileOutputStream(file); Writer writer = new OutputStreamWriter(out); @SuppressWarnings("resource") @@ -99,6 +101,8 @@ public abstract class OS public abstract String getEclipseExecutable(); + public abstract String getEclipseIni(); + public abstract String getGitPrefix(); public abstract String getJREsRoot(); @@ -158,6 +162,12 @@ public abstract class OS } @Override + public String getEclipseIni() + { + return "eclipse.ini"; + } + + @Override public String getGitPrefix() { return "C:\\Program Files (x86)\\Git"; @@ -182,6 +192,12 @@ public abstract class OS } @Override + public String getEclipseIni() + { + return "Contents/MacOS/eclipse.ini"; + } + + @Override public String getGitPrefix() { return "/"; @@ -206,6 +222,12 @@ public abstract class OS } @Override + public String getEclipseIni() + { + return "eclipse.ini"; + } + + @Override public String getGitPrefix() { return ""; diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java new file mode 100644 index 0000000000..c4fa29fd7f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.setup.util; + +import org.eclipse.emf.cdo.releng.internal.setup.Activator; + +import org.eclipse.core.runtime.Plugin; + +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; + +import java.util.IdentityHashMap; +import java.util.Map; + +/** + * @author Eike Stepper + */ +public final class ServiceUtil extends Plugin +{ + private static BundleContext bundleContext = Activator.getBundleContext(); + + private static Map<Object, ServiceReference<?>> services = new IdentityHashMap<Object, ServiceReference<?>>(); + + public static <T> T getService(Class<T> serviceClass) + { + String serviceName = serviceClass.getName(); + ServiceReference<?> serviceRef = bundleContext.getServiceReference(serviceName); + if (serviceRef == null) + { + throw new IllegalStateException("Missing OSGi service " + serviceName); + } + + @SuppressWarnings("unchecked") + T service = (T)bundleContext.getService(serviceRef); + services.put(service, serviceRef); + return service; + } + + public static void ungetService(Object service) + { + if (service != null) + { + ServiceReference<?> serviceRef = services.remove(service); + if (serviceRef != null) + { + bundleContext.ungetService(serviceRef); + } + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java index ecd94719cb..8867ca7292 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java @@ -10,21 +10,32 @@ */ package org.eclipse.emf.cdo.releng.setup.util; -import org.eclipse.emf.cdo.releng.setup.*; -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; +import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask; import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask; +import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask; +import org.eclipse.emf.cdo.releng.setup.ConfigurableItem; import org.eclipse.emf.cdo.releng.setup.Configuration; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; +import org.eclipse.emf.cdo.releng.setup.EclipseIniTask; +import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask; import org.eclipse.emf.cdo.releng.setup.EclipseVersion; -import org.eclipse.emf.cdo.releng.setup.GitClone; +import org.eclipse.emf.cdo.releng.setup.GitCloneTask; import org.eclipse.emf.cdo.releng.setup.InstallableUnit; +import org.eclipse.emf.cdo.releng.setup.LinkLocationTask; +import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask; import org.eclipse.emf.cdo.releng.setup.P2Repository; +import org.eclipse.emf.cdo.releng.setup.P2Task; import org.eclipse.emf.cdo.releng.setup.Preferences; import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask; import org.eclipse.emf.cdo.releng.setup.Setup; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.ToolInstallation; - +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer; +import org.eclipse.emf.cdo.releng.setup.StringVariableTask; +import org.eclipse.emf.cdo.releng.setup.TextModification; +import org.eclipse.emf.cdo.releng.setup.TextModifyTask; +import org.eclipse.emf.cdo.releng.setup.WorkingSetTask; import org.eclipse.emf.common.notify.Adapter; import org.eclipse.emf.common.notify.Notifier; import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; @@ -93,39 +104,87 @@ public class SetupAdapterFactory extends AdapterFactoryImpl protected SetupSwitch<Adapter> modelSwitch = new SetupSwitch<Adapter>() { @Override + public Adapter caseEclipseVersion(EclipseVersion object) + { + return createEclipseVersionAdapter(); + } + + @Override + public Adapter caseConfiguration(Configuration object) + { + return createConfigurationAdapter(); + } + + @Override + public Adapter caseConfigurableItem(ConfigurableItem object) + { + return createConfigurableItemAdapter(); + } + + @Override + public Adapter caseProject(Project object) + { + return createProjectAdapter(); + } + + @Override + public Adapter caseBranch(Branch object) + { + return createBranchAdapter(); + } + + @Override public Adapter casePreferences(Preferences object) { return createPreferencesAdapter(); } @Override - public Adapter caseLinkLocation(LinkLocation object) + public Adapter caseSetup(Setup object) + { + return createSetupAdapter(); + } + + @Override + public Adapter caseSetupTask(SetupTask object) { - return createLinkLocationAdapter(); + return createSetupTaskAdapter(); } @Override - public Adapter caseToolInstallation(ToolInstallation object) + public Adapter caseSetupTaskContainer(SetupTaskContainer object) { - return createToolInstallationAdapter(); + return createSetupTaskContainerAdapter(); } @Override - public Adapter caseToolPreference(ToolPreference object) + public Adapter caseCompoundSetupTask(CompoundSetupTask object) { - return createToolPreferenceAdapter(); + return createCompoundSetupTaskAdapter(); } @Override - public Adapter caseEclipseVersion(EclipseVersion object) + public Adapter caseOneTimeSetupTask(OneTimeSetupTask object) { - return createEclipseVersionAdapter(); + return createOneTimeSetupTaskAdapter(); } @Override - public Adapter caseDirectorCall(DirectorCall object) + public Adapter caseEclipseIniTask(EclipseIniTask object) { - return createDirectorCallAdapter(); + return createEclipseIniTaskAdapter(); + } + + @Override + public Adapter caseLinkLocationTask(LinkLocationTask object) + { + return createLinkLocationTaskAdapter(); + } + + @Override + public Adapter caseP2Task(P2Task object) + { + return createP2TaskAdapter(); } @Override @@ -141,39 +200,57 @@ public class SetupAdapterFactory extends AdapterFactoryImpl } @Override - public Adapter caseConfiguration(Configuration object) + public Adapter caseBuckminsterImportTask(BuckminsterImportTask object) { - return createConfigurationAdapter(); + return createBuckminsterImportTaskAdapter(); } @Override - public Adapter caseProject(Project object) + public Adapter caseApiBaselineTask(ApiBaselineTask object) { - return createProjectAdapter(); + return createApiBaselineTaskAdapter(); } @Override - public Adapter caseBranch(Branch object) + public Adapter caseGitCloneTask(GitCloneTask object) { - return createBranchAdapter(); + return createGitCloneTaskAdapter(); } @Override - public Adapter caseApiBaseline(ApiBaseline object) + public Adapter caseEclipsePreferenceTask(EclipsePreferenceTask object) { - return createApiBaselineAdapter(); + return createEclipsePreferenceTaskAdapter(); } @Override - public Adapter caseGitClone(GitClone object) + public Adapter caseStringVariableTask(StringVariableTask object) { - return createGitCloneAdapter(); + return createStringVariableTaskAdapter(); } @Override - public Adapter caseSetup(Setup object) + public Adapter caseWorkingSetTask(WorkingSetTask object) { - return createSetupAdapter(); + return createWorkingSetTaskAdapter(); + } + + @Override + public Adapter caseResourceCopyTask(ResourceCopyTask object) + { + return createResourceCopyTaskAdapter(); + } + + @Override + public Adapter caseTextModifyTask(TextModifyTask object) + { + return createTextModifyTaskAdapter(); + } + + @Override + public Adapter caseTextModification(TextModification object) + { + return createTextModificationAdapter(); } @Override @@ -243,16 +320,31 @@ public class SetupAdapterFactory extends AdapterFactoryImpl } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation <em>Tool Installation</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask <em>Api Baseline Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask + * @generated + */ + public Adapter createApiBaselineTaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask <em>Git Clone Task</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation + * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask * @generated */ - public Adapter createToolInstallationAdapter() + public Adapter createGitCloneTaskAdapter() { return null; } @@ -273,16 +365,31 @@ public class SetupAdapterFactory extends AdapterFactoryImpl } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall <em>Director Call</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.P2Task <em>P2 Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.P2Task + * @generated + */ + public Adapter createP2TaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask <em>String Variable Task</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.DirectorCall + * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask * @generated */ - public Adapter createDirectorCallAdapter() + public Adapter createStringVariableTaskAdapter() { return null; } @@ -318,76 +425,166 @@ public class SetupAdapterFactory extends AdapterFactoryImpl } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline <em>Api Baseline</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline + * @see org.eclipse.emf.cdo.releng.setup.Setup * @generated */ - public Adapter createApiBaselineAdapter() + public Adapter createSetupAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.GitClone <em>Git Clone</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.SetupTask <em>Task</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.GitClone + * @see org.eclipse.emf.cdo.releng.setup.SetupTask * @generated */ - public Adapter createGitCloneAdapter() + public Adapter createSetupTaskAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask <em>Working Set Task</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.Setup + * @see org.eclipse.emf.cdo.releng.setup.WorkingSetTask * @generated */ - public Adapter createSetupAdapter() + public Adapter createWorkingSetTaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask <em>Resource Copy Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask + * @generated + */ + public Adapter createResourceCopyTaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask <em>Text Modify Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask + * @generated + */ + public Adapter createTextModifyTaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.TextModification <em>Text Modification</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.TextModification + * @generated + */ + public Adapter createTextModificationAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask <em>Eclipse Ini Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask + * @generated + */ + public Adapter createEclipseIniTaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask <em>Compound Setup Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.CompoundSetupTask + * @generated + */ + public Adapter createCompoundSetupTaskAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference <em>Tool Preference</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask <em>One Time Setup Task</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.ToolPreference + * @see org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask * @generated */ - public Adapter createToolPreferenceAdapter() + public Adapter createOneTimeSetupTaskAdapter() { return null; } /** - * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation <em>Link Location</em>}'. + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem <em>Configurable Item</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; * it's useful to ignore a case when inheritance will catch all the cases anyway. * <!-- end-user-doc --> * @return the new adapter. - * @see org.eclipse.emf.cdo.releng.setup.LinkLocation + * @see org.eclipse.emf.cdo.releng.setup.ConfigurableItem * @generated */ - public Adapter createLinkLocationAdapter() + public Adapter createConfigurableItemAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask <em>Buckminster Import Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask + * @generated + */ + public Adapter createBuckminsterImportTaskAdapter() { return null; } @@ -408,6 +605,51 @@ public class SetupAdapterFactory extends AdapterFactoryImpl } /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask <em>Link Location Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask + * @generated + */ + public Adapter createLinkLocationTaskAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer <em>Task Container</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.SetupTaskContainer + * @generated + */ + public Adapter createSetupTaskContainerAdapter() + { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask <em>Eclipse Preference Task</em>}'. + * <!-- begin-user-doc --> + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * <!-- end-user-doc --> + * @return the new adapter. + * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask + * @generated + */ + public Adapter createEclipsePreferenceTaskAdapter() + { + return null; + } + + /** * Creates a new adapter for the default case. * <!-- begin-user-doc --> * This default implementation returns null. diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java index 1ab1628d62..44af8cb514 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java @@ -1,34 +1,35 @@ -/* - * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: - * Eike Stepper - initial API and implementation +/** */ package org.eclipse.emf.cdo.releng.setup.util; -import org.eclipse.emf.cdo.releng.setup.ApiBaseline; +import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask; import org.eclipse.emf.cdo.releng.setup.Branch; +import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask; +import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask; +import org.eclipse.emf.cdo.releng.setup.ConfigurableItem; import org.eclipse.emf.cdo.releng.setup.Configuration; -import org.eclipse.emf.cdo.releng.setup.DirectorCall; +import org.eclipse.emf.cdo.releng.setup.EclipseIniTask; +import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask; import org.eclipse.emf.cdo.releng.setup.EclipseVersion; -import org.eclipse.emf.cdo.releng.setup.GitClone; +import org.eclipse.emf.cdo.releng.setup.GitCloneTask; import org.eclipse.emf.cdo.releng.setup.InstallableUnit; -import org.eclipse.emf.cdo.releng.setup.LinkLocation; +import org.eclipse.emf.cdo.releng.setup.LinkLocationTask; +import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask; import org.eclipse.emf.cdo.releng.setup.P2Repository; +import org.eclipse.emf.cdo.releng.setup.P2Task; import org.eclipse.emf.cdo.releng.setup.Preferences; import org.eclipse.emf.cdo.releng.setup.Project; +import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask; import org.eclipse.emf.cdo.releng.setup.Setup; import org.eclipse.emf.cdo.releng.setup.SetupPackage; -import org.eclipse.emf.cdo.releng.setup.ToolInstallation; -import org.eclipse.emf.cdo.releng.setup.ToolPreference; - +import org.eclipse.emf.cdo.releng.setup.SetupTask; +import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer; +import org.eclipse.emf.cdo.releng.setup.StringVariableTask; +import org.eclipse.emf.cdo.releng.setup.TextModification; +import org.eclipse.emf.cdo.releng.setup.TextModifyTask; +import org.eclipse.emf.cdo.releng.setup.WorkingSetTask; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; - import java.util.List; /** @@ -108,68 +109,144 @@ public class SetupSwitch<T> { switch (classifierID) { + case SetupPackage.ECLIPSE_VERSION: + { + EclipseVersion eclipseVersion = (EclipseVersion)theEObject; + T result = caseEclipseVersion(eclipseVersion); + if (result == null) + result = caseConfigurableItem(eclipseVersion); + if (result == null) + result = caseSetupTaskContainer(eclipseVersion); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.CONFIGURATION: + { + Configuration configuration = (Configuration)theEObject; + T result = caseConfiguration(configuration); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.CONFIGURABLE_ITEM: + { + ConfigurableItem configurableItem = (ConfigurableItem)theEObject; + T result = caseConfigurableItem(configurableItem); + if (result == null) + result = caseSetupTaskContainer(configurableItem); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.PROJECT: + { + Project project = (Project)theEObject; + T result = caseProject(project); + if (result == null) + result = caseConfigurableItem(project); + if (result == null) + result = caseSetupTaskContainer(project); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.BRANCH: + { + Branch branch = (Branch)theEObject; + T result = caseBranch(branch); + if (result == null) + result = caseConfigurableItem(branch); + if (result == null) + result = caseSetupTaskContainer(branch); + if (result == null) + result = defaultCase(theEObject); + return result; + } case SetupPackage.PREFERENCES: { Preferences preferences = (Preferences)theEObject; T result = casePreferences(preferences); if (result == null) - { - result = caseToolInstallation(preferences); - } + result = caseSetupTaskContainer(preferences); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.SETUP: + { + Setup setup = (Setup)theEObject; + T result = caseSetup(setup); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.LINK_LOCATION: + case SetupPackage.SETUP_TASK: { - LinkLocation linkLocation = (LinkLocation)theEObject; - T result = caseLinkLocation(linkLocation); + SetupTask setupTask = (SetupTask)theEObject; + T result = caseSetupTask(setupTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.TOOL_INSTALLATION: + case SetupPackage.SETUP_TASK_CONTAINER: { - ToolInstallation toolInstallation = (ToolInstallation)theEObject; - T result = caseToolInstallation(toolInstallation); + SetupTaskContainer setupTaskContainer = (SetupTaskContainer)theEObject; + T result = caseSetupTaskContainer(setupTaskContainer); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.TOOL_PREFERENCE: + case SetupPackage.COMPOUND_SETUP_TASK: { - ToolPreference toolPreference = (ToolPreference)theEObject; - T result = caseToolPreference(toolPreference); + CompoundSetupTask compoundSetupTask = (CompoundSetupTask)theEObject; + T result = caseCompoundSetupTask(compoundSetupTask); + if (result == null) + result = caseSetupTask(compoundSetupTask); + if (result == null) + result = caseSetupTaskContainer(compoundSetupTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.ECLIPSE_VERSION: + case SetupPackage.ONE_TIME_SETUP_TASK: { - EclipseVersion eclipseVersion = (EclipseVersion)theEObject; - T result = caseEclipseVersion(eclipseVersion); + OneTimeSetupTask oneTimeSetupTask = (OneTimeSetupTask)theEObject; + T result = caseOneTimeSetupTask(oneTimeSetupTask); + if (result == null) + result = caseSetupTask(oneTimeSetupTask); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.ECLIPSE_INI_TASK: + { + EclipseIniTask eclipseIniTask = (EclipseIniTask)theEObject; + T result = caseEclipseIniTask(eclipseIniTask); + if (result == null) + result = caseSetupTask(eclipseIniTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.DIRECTOR_CALL: + case SetupPackage.LINK_LOCATION_TASK: { - DirectorCall directorCall = (DirectorCall)theEObject; - T result = caseDirectorCall(directorCall); + LinkLocationTask linkLocationTask = (LinkLocationTask)theEObject; + T result = caseLinkLocationTask(linkLocationTask); + if (result == null) + result = caseSetupTask(linkLocationTask); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.P2_TASK: + { + P2Task p2Task = (P2Task)theEObject; + T result = caseP2Task(p2Task); + if (result == null) + result = caseSetupTask(p2Task); if (result == null) - { result = defaultCase(theEObject); - } return result; } case SetupPackage.INSTALLABLE_UNIT: @@ -177,9 +254,7 @@ public class SetupSwitch<T> InstallableUnit installableUnit = (InstallableUnit)theEObject; T result = caseInstallableUnit(installableUnit); if (result == null) - { result = defaultCase(theEObject); - } return result; } case SetupPackage.P2_REPOSITORY: @@ -187,77 +262,95 @@ public class SetupSwitch<T> P2Repository p2Repository = (P2Repository)theEObject; T result = caseP2Repository(p2Repository); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.CONFIGURATION: + case SetupPackage.BUCKMINSTER_IMPORT_TASK: { - Configuration configuration = (Configuration)theEObject; - T result = caseConfiguration(configuration); + BuckminsterImportTask buckminsterImportTask = (BuckminsterImportTask)theEObject; + T result = caseBuckminsterImportTask(buckminsterImportTask); + if (result == null) + result = caseSetupTask(buckminsterImportTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.PROJECT: + case SetupPackage.API_BASELINE_TASK: { - Project project = (Project)theEObject; - T result = caseProject(project); + ApiBaselineTask apiBaselineTask = (ApiBaselineTask)theEObject; + T result = caseApiBaselineTask(apiBaselineTask); if (result == null) - { - result = caseToolInstallation(project); - } + result = caseSetupTask(apiBaselineTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.BRANCH: + case SetupPackage.GIT_CLONE_TASK: { - Branch branch = (Branch)theEObject; - T result = caseBranch(branch); + GitCloneTask gitCloneTask = (GitCloneTask)theEObject; + T result = caseGitCloneTask(gitCloneTask); if (result == null) - { - result = caseToolInstallation(branch); - } + result = caseSetupTask(gitCloneTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.API_BASELINE: + case SetupPackage.ECLIPSE_PREFERENCE_TASK: { - ApiBaseline apiBaseline = (ApiBaseline)theEObject; - T result = caseApiBaseline(apiBaseline); + EclipsePreferenceTask eclipsePreferenceTask = (EclipsePreferenceTask)theEObject; + T result = caseEclipsePreferenceTask(eclipsePreferenceTask); + if (result == null) + result = caseSetupTask(eclipsePreferenceTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.GIT_CLONE: + case SetupPackage.STRING_VARIABLE_TASK: { - GitClone gitClone = (GitClone)theEObject; - T result = caseGitClone(gitClone); + StringVariableTask stringVariableTask = (StringVariableTask)theEObject; + T result = caseStringVariableTask(stringVariableTask); + if (result == null) + result = caseSetupTask(stringVariableTask); if (result == null) - { result = defaultCase(theEObject); - } return result; } - case SetupPackage.SETUP: + case SetupPackage.WORKING_SET_TASK: { - Setup setup = (Setup)theEObject; - T result = caseSetup(setup); + WorkingSetTask workingSetTask = (WorkingSetTask)theEObject; + T result = caseWorkingSetTask(workingSetTask); + if (result == null) + result = caseSetupTask(workingSetTask); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.RESOURCE_COPY_TASK: + { + ResourceCopyTask resourceCopyTask = (ResourceCopyTask)theEObject; + T result = caseResourceCopyTask(resourceCopyTask); + if (result == null) + result = caseSetupTask(resourceCopyTask); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.TEXT_MODIFY_TASK: + { + TextModifyTask textModifyTask = (TextModifyTask)theEObject; + T result = caseTextModifyTask(textModifyTask); + if (result == null) + result = caseSetupTask(textModifyTask); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case SetupPackage.TEXT_MODIFICATION: + { + TextModification textModification = (TextModification)theEObject; + T result = caseTextModification(textModification); if (result == null) - { result = defaultCase(theEObject); - } return result; } default: @@ -282,6 +375,54 @@ public class SetupSwitch<T> } /** + * Returns the result of interpreting the object as an instance of '<em>Link Location Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Link Location Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLinkLocationTask(LinkLocationTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Task Container</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Task Container</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseSetupTaskContainer(SetupTaskContainer object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Eclipse Preference Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Eclipse Preference Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEclipsePreferenceTask(EclipsePreferenceTask object) + { + return null; + } + + /** * Returns the result of interpreting the object as an instance of '<em>Eclipse Version</em>'. * <!-- begin-user-doc --> * This implementation returns null; @@ -298,17 +439,17 @@ public class SetupSwitch<T> } /** - * Returns the result of interpreting the object as an instance of '<em>Director Call</em>'. + * Returns the result of interpreting the object as an instance of '<em>P2 Task</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Director Call</em>'. + * @return the result of interpreting the object as an instance of '<em>P2 Task</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseDirectorCall(DirectorCall object) + public T caseP2Task(P2Task object) { return null; } @@ -362,129 +503,257 @@ public class SetupSwitch<T> } /** - * Returns the result of interpreting the object as an instance of '<em>Tool Installation</em>'. + * Returns the result of interpreting the object as an instance of '<em>Project</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Tool Installation</em>'. + * @return the result of interpreting the object as an instance of '<em>Project</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseToolInstallation(ToolInstallation object) + public T caseProject(Project object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Project</em>'. + * Returns the result of interpreting the object as an instance of '<em>Branch</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Project</em>'. + * @return the result of interpreting the object as an instance of '<em>Branch</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseProject(Project object) + public T caseBranch(Branch object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Branch</em>'. + * Returns the result of interpreting the object as an instance of '<em>Api Baseline Task</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Branch</em>'. + * @return the result of interpreting the object as an instance of '<em>Api Baseline Task</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseBranch(Branch object) + public T caseApiBaselineTask(ApiBaselineTask object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Api Baseline</em>'. + * Returns the result of interpreting the object as an instance of '<em>Git Clone Task</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Api Baseline</em>'. + * @return the result of interpreting the object as an instance of '<em>Git Clone Task</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseApiBaseline(ApiBaseline object) + public T caseGitCloneTask(GitCloneTask object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Git Clone</em>'. + * Returns the result of interpreting the object as an instance of '<em>Setup</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Git Clone</em>'. + * @return the result of interpreting the object as an instance of '<em>Setup</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseGitClone(GitClone object) + public T caseSetup(Setup object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Setup</em>'. + * Returns the result of interpreting the object as an instance of '<em>Task</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Setup</em>'. + * @return the result of interpreting the object as an instance of '<em>Task</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseSetup(Setup object) + public T caseSetupTask(SetupTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Working Set Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Working Set Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseWorkingSetTask(WorkingSetTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Resource Copy Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Resource Copy Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseResourceCopyTask(ResourceCopyTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Text Modify Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Text Modify Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTextModifyTask(TextModifyTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Text Modification</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Text Modification</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTextModification(TextModification object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Eclipse Ini Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Eclipse Ini Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseEclipseIniTask(EclipseIniTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Compound Setup Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Compound Setup Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseCompoundSetupTask(CompoundSetupTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>One Time Setup Task</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>One Time Setup Task</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseOneTimeSetupTask(OneTimeSetupTask object) + { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '<em>Configurable Item</em>'. + * <!-- begin-user-doc --> + * This implementation returns null; + * returning a non-null result will terminate the switch. + * <!-- end-user-doc --> + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of '<em>Configurable Item</em>'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConfigurableItem(ConfigurableItem object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Tool Preference</em>'. + * Returns the result of interpreting the object as an instance of '<em>Buckminster Import Task</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Tool Preference</em>'. + * @return the result of interpreting the object as an instance of '<em>Buckminster Import Task</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseToolPreference(ToolPreference object) + public T caseBuckminsterImportTask(BuckminsterImportTask object) { return null; } /** - * Returns the result of interpreting the object as an instance of '<em>Link Location</em>'. + * Returns the result of interpreting the object as an instance of '<em>String Variable Task</em>'. * <!-- begin-user-doc --> * This implementation returns null; * returning a non-null result will terminate the switch. * <!-- end-user-doc --> * @param object the target of the switch. - * @return the result of interpreting the object as an instance of '<em>Link Location</em>'. + * @return the result of interpreting the object as an instance of '<em>String Variable Task</em>'. * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) * @generated */ - public T caseLinkLocation(LinkLocation object) + public T caseStringVariableTask(StringVariableTask object) { return null; } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java new file mode 100644 index 0000000000..9213edf21f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.setup.util; + +/** + * @author Eike Stepper + */ +public interface StringExpander +{ + public String expandString(String string); +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java new file mode 100644 index 0000000000..2ac501ded0 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java @@ -0,0 +1,155 @@ +/* + * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.releng.setup.util; + +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog; +import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor; + +import org.eclipse.buckminster.runtime.MonitorUtils; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.pde.core.target.ITargetDefinition; +import org.eclipse.pde.core.target.ITargetHandle; +import org.eclipse.pde.core.target.ITargetLocation; +import org.eclipse.pde.core.target.ITargetPlatformService; +import org.eclipse.pde.core.target.LoadTargetDefinitionJob; + +import java.io.File; +import java.io.IOException; + +/** + * @author Eike Stepper + */ +public final class TargetPlatformUtil +{ + public static boolean hasTargetPlatform(String targetPlatformPath, ProgressLog progress) + { + ITargetPlatformService service = null; + + try + { + service = ServiceUtil.getService(ITargetPlatformService.class); + for (ITargetHandle targetHandle : service.getTargets(new ProgressLogMonitor(progress))) + { + try + { + ITargetDefinition candidate = targetHandle.getTargetDefinition(); + ITargetLocation[] containers = candidate.getTargetLocations(); + if (containers == null || containers.length != 1) + { + continue; + } + + String location = containers[0].getLocation(true); + if (targetPlatformPath.equals(location)) + { + File file = new File(location); + // Check that it's a directory that contains not only "." and ".." + return file.isDirectory() && file.listFiles().length > 2; + } + } + catch (CoreException ex) + { + // Ignore + } + } + } + finally + { + ServiceUtil.ungetService(service); + } + + return false; + } + + public static void setTargetPlatform(String targetPlatformPath, String name, boolean active, ProgressLog progress) + throws Exception + { + ITargetPlatformService service = null; + + try + { + service = ServiceUtil.getService(ITargetPlatformService.class); + ITargetDefinition target = null; + for (ITargetHandle targetHandle : service.getTargets(new ProgressLogMonitor(progress))) + { + ITargetDefinition candidate = targetHandle.getTargetDefinition(); + ITargetLocation[] containers = candidate.getTargetLocations(); + if (containers == null || containers.length != 1) + { + continue; + } + + if (targetPlatformPath.equals(containers[0].getLocation(true))) + { + ITargetHandle activeHandle = service.getWorkspaceTargetHandle(); + if (activeHandle != null && activeHandle.equals(targetHandle)) + { + // This target is already active. Nothing left to do here + return; + } + + target = candidate; + break; + } + } + + if (target == null) + { + target = service.newTarget(); + ITargetLocation container = service.newDirectoryLocation(targetPlatformPath); + target.setTargetLocations(new ITargetLocation[] { container }); + target.setName(name); + File tpDir = new File(targetPlatformPath); + if (!tpDir.isDirectory()) + { + tpDir.mkdirs(); + if (!tpDir.isDirectory()) + { + throw new IOException("Unable to create target platform directory: " + tpDir); + } + } + } + + service.saveTargetDefinition(target); + if (active) + { + setTargetActive(target, new ProgressLogMonitor(progress)); + } + } + finally + { + ServiceUtil.ungetService(service); + } + } + + public static void setTargetActive(ITargetDefinition target, IProgressMonitor monitor) throws Exception + { + MonitorUtils.begin(monitor, 100); + + try + { + target.resolve(MonitorUtils.subMonitor(monitor, 50)); + + LoadTargetDefinitionJob job = new LoadTargetDefinitionJob(target); + IStatus status = job.run(MonitorUtils.subMonitor(monitor, 50)); + if (status.getSeverity() == IStatus.ERROR) + { + throw new CoreException(status); + } + } + finally + { + MonitorUtils.done(monitor); + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLog.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLog.java index 98fd11f850..3123c0f59f 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLog.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLog.java @@ -8,7 +8,7 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util.log; import java.util.concurrent.atomic.AtomicReference; @@ -21,5 +21,5 @@ public interface ProgressLog public boolean isCancelled(); - public void addLine(String line); + public void log(String line); } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogMonitor.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogMonitor.java index 2632d50b79..0999d3e609 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogMonitor.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogMonitor.java @@ -8,7 +8,7 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util.log; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.NullProgressMonitor; @@ -42,20 +42,20 @@ public class ProgressLogMonitor extends ProgressMonitorWrapper public void beginTask(String name, int totalWork) { super.beginTask(name, totalWork); - log.addLine(name); + log.log(name); } @Override public void setTaskName(String name) { super.setTaskName(name); - log.addLine(name); + log.log(name); } @Override public void subTask(String name) { super.subTask(name); - log.addLine(name); + log.log(name); } } diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogProvider.java index 40622966b3..02d15d6c34 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogProvider.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogProvider.java @@ -8,7 +8,7 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util.log; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.jobs.Job; diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogRunnable.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogRunnable.java index 84283cec9f..99dd18c9a3 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogRunnable.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogRunnable.java @@ -8,7 +8,7 @@ * Contributors: * Eike Stepper - initial API and implementation */ -package org.eclipse.emf.cdo.releng.setup.helper; +package org.eclipse.emf.cdo.releng.setup.util.log; /** * @author Eike Stepper |