/******************************************************************************* | |
* Copyright 2011 Chair for Applied Software Engineering, | |
* Technische Universitaet Muenchen. | |
* All rights reserved. This program and the accompanying materials | |
* are made available under the Eclipse Public License v1.0 | |
* which accompanies this distribution, and is available at | |
* http://www.eclipse.org/legal/epl-v10.html | |
* | |
* Contributors: | |
******************************************************************************/ | |
package org.eclipse.emf.emfstore.client.model.importexport.impl; | |
import java.io.File; | |
import java.io.IOException; | |
import org.eclipse.core.runtime.IProgressMonitor; | |
import org.eclipse.emf.emfstore.client.model.ProjectSpace; | |
import org.eclipse.emf.emfstore.client.model.importexport.ExportImportDataUnits; | |
import org.eclipse.emf.emfstore.client.model.util.ResourceHelper; | |
import org.eclipse.emf.emfstore.common.model.util.FileUtil; | |
/** | |
* Exports pending changes on a given {@link ProjectSpace}. | |
* | |
* @author emueller | |
*/ | |
public class ExportChangesController extends ProjectSpaceBasedExportController { | |
/** | |
* Constructor. | |
* | |
* @param projectSpace the {@link ProjectSpace} whose local changes should be exported | |
*/ | |
public ExportChangesController(ProjectSpace projectSpace) { | |
super(projectSpace); | |
} | |
/** | |
* | |
* {@inheritDoc} | |
* | |
* @see org.eclipse.emf.emfstore.client.model.controller.importexport.IExportImportController#getFilteredNames() | |
*/ | |
public String[] getFilteredNames() { | |
return new String[] { "EMFStore change package (" + ExportImportDataUnits.Change.getExtension() + ")", | |
"All Files (*.*)" }; | |
} | |
/** | |
* | |
* {@inheritDoc} | |
* | |
* @see org.eclipse.emf.emfstore.client.model.controller.importexport.IExportImportController#getFilteredExtensions() | |
*/ | |
public String[] getFilteredExtensions() { | |
return new String[] { "*" + ExportImportDataUnits.Change.getExtension(), "*.*" }; | |
} | |
/** | |
* | |
* {@inheritDoc} | |
* | |
* @see org.eclipse.emf.emfstore.client.model.controller.importexport.IExportImportController#getLabel() | |
*/ | |
public String getLabel() { | |
return "changes"; | |
} | |
/** | |
* | |
* {@inheritDoc} | |
* | |
* @see org.eclipse.emf.emfstore.client.model.controller.importexport.impl.IExportController#getFilename() | |
*/ | |
public String getFilename() { | |
return "LocalChanges_" + getProjectSpace().getProjectName() + "@" | |
+ getProjectSpace().getBaseVersion().getIdentifier(); | |
} | |
/** | |
* | |
* {@inheritDoc} | |
* | |
* @see org.eclipse.emf.emfstore.client.model.controller.importexport.impl.IExportController#getParentFolderPropertyKey() | |
*/ | |
public String getParentFolderPropertyKey() { | |
return null; | |
} | |
/** | |
* | |
* {@inheritDoc} | |
* | |
* @see org.eclipse.emf.emfstore.client.model.controller.importexport.IExportImportController#execute(java.io.File, | |
* org.eclipse.core.runtime.IProgressMonitor) | |
*/ | |
public void execute(File file, IProgressMonitor progressMonitor) throws IOException { | |
if (!FileUtil.getExtension(file).equals(ExportImportDataUnits.Change.getExtension())) { | |
file = new File(file.getAbsoluteFile() + ExportImportDataUnits.Change.getExtension()); | |
} | |
ResourceHelper.putElementIntoNewResourceWithProject(file.getAbsolutePath(), getProjectSpace() | |
.getLocalChangePackage(false), getProjectSpace().getProject()); | |
} | |
/** | |
* | |
* {@inheritDoc} | |
* | |
* @see org.eclipse.emf.emfstore.client.model.controller.importexport.IExportImportController#isExport() | |
*/ | |
public boolean isExport() { | |
return true; | |
} | |
} |