/******************************************************************************* | |
* Copyright (c) 2008-2011 Chair for Applied Software Engineering, | |
* Technische Universitaet Muenchen. | |
* 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: | |
* emueller | |
******************************************************************************/ | |
package org.eclipse.emf.emfstore.internal.client.importexport; | |
import java.io.File; | |
import java.io.IOException; | |
import org.eclipse.core.runtime.IProgressMonitor; | |
/** | |
* Generic interface that is used for both export and import. | |
* | |
* @author emueller | |
* | |
*/ | |
public interface IExportImportController { | |
/** | |
* The label that should be shown while exporting/importing. | |
* | |
* @return a label that best describes the export/import process | |
*/ | |
String getLabel(); | |
/** | |
* Returns an array of names that should be filtered in the export/import dialog. | |
* | |
* @return an array of filtered names | |
*/ | |
String[] getFilteredNames(); | |
/** | |
* Returns an array of extensions that should be filtered in the export/import dialog. | |
* | |
* @return an array of file extensions | |
*/ | |
String[] getFilteredExtensions(); | |
/** | |
* Returns the key that is used to cache the last location of the export/import performed. | |
* | |
* @return a property key identifier | |
*/ | |
String getParentFolderPropertyKey(); | |
/** | |
* Executes the controller. | |
* | |
* @param file | |
* the {@link File} that is either exported to or imported | |
* @param progressMonitor | |
* an {@link IProgressMonitor} that is used to inform about the progress | |
* of the export/import process | |
* @throws IOException | |
* in case an error occurs during export/import | |
*/ | |
void execute(File file, IProgressMonitor progressMonitor) throws IOException; | |
/** | |
* Returns the file name that is used for export/import. | |
* | |
* @return the file name | |
*/ | |
String getFilename(); | |
/** | |
* Whether this controller is an export controller. | |
* | |
* @return true, if this controller exports an entity of type <code>T</code>, | |
* otherwise this controller imports an entity of type <code>T</code> | |
*/ | |
boolean isExport(); | |
} |