1 package org.simantics.export.core.intf;
\r
3 import java.util.Collection;
\r
4 import java.util.List;
\r
6 import org.eclipse.core.runtime.IProgressMonitor;
\r
7 import org.osgi.service.prefs.Preferences;
\r
8 import org.simantics.databoard.binding.mutable.Variant;
\r
9 import org.simantics.databoard.type.RecordType;
\r
10 import org.simantics.export.core.ExportContext;
\r
11 import org.simantics.export.core.error.ExportException;
\r
12 import org.simantics.export.core.manager.Content;
\r
13 import org.simantics.utils.datastructures.MapList;
\r
15 public interface ExportClass {
\r
18 * Get extension specific options.
\r
21 * @param contentUris
\r
22 * @return a record type describing options
\r
24 RecordType options( ExportContext ctx, Collection<String> contentUris ) throws ExportException;
\r
27 * Validate that the content can be exported. If not, an exception is thrown.
\r
34 * @return list of errors
\r
36 List<String> validate(
\r
38 ExportContext context,
\r
42 * Write format specific content to a content writer.
\r
44 * @param contentUris a list of uris
\r
45 * @param writer a writer object that is created with format extension
\r
46 * @param ctx export context
\r
47 * @param options all export options in a variant
\r
49 * @param attachmentMap (optional) attachments
\r
50 * @throws ExportException
\r
53 List<Content> contents,
\r
57 IProgressMonitor monitor,
\r
58 MapList<Content, Content> attachmentMap
\r
59 ) throws ExportException;
\r
62 * Fill the options object with default values.
\r
67 void fillDefaultPrefs( ExportContext ctx, Variant options ) throws ExportException;
\r
70 * Save export options to preferences node(s).
\r
73 * @param contentScopePrefs
\r
74 * @param workspaceScopePrefs
\r
75 * @throws ExportException
\r
77 void savePref( Variant options, Preferences contentScopePrefs, Preferences workspaceScopePrefs ) throws ExportException;
\r
80 * Load export options from preferences node(s).
\r
83 * @param contentScopeNode
\r
84 * @param workspaceScopePrefs
\r
85 * @throws ExportException
\r
87 void loadPref( Variant options, Preferences contentScopeNode, Preferences workspaceScopePrefs ) throws ExportException;
\r