1 package org.simantics.export.core.intf;
\r
4 import java.util.List;
\r
6 import org.osgi.service.prefs.Preferences;
\r
7 import org.simantics.databoard.binding.mutable.Variant;
\r
8 import org.simantics.databoard.type.RecordType;
\r
9 import org.simantics.export.core.ExportContext;
\r
10 import org.simantics.export.core.error.ExportException;
\r
11 import org.simantics.export.core.manager.Content;
\r
14 * Format class contains format related code.
\r
16 * @author toni.kalajainen@semantum.fi
\r
18 public interface FormatClass {
\r
21 * Create a new file. Return a format specific writer object.
\r
23 * @param context contextual data
\r
27 * @throws ExportException
\r
29 Object createFile( ExportContext context, File outputFile, Variant options ) throws ExportException;
\r
32 * Open a file for reading.
\r
37 * @throws ExportException
\r
39 Object openFile( ExportContext context, File inputFile, Variant options ) throws ExportException;
\r
42 * Close a reader or writer object.
\r
44 * ExportException is thrown if flushing of the file fails. This is a signal that
\r
45 * the file is corrupted. The file is closed in all cases how ever.
\r
49 * @throws ExportException
\r
51 void closeFile( ExportContext context, Object handle ) throws ExportException;
\r
54 * Add attachments to an open file handle. This method applies only to
\r
59 * @param attachements
\r
60 * @throws ExportException
\r
62 void addAttachment( ExportContext context, Object handle, List<Content> attachments ) throws ExportException;
\r
65 * Get file format specific options.
\r
68 * @return a record type describing options
\r
70 RecordType options( ExportContext context ) throws ExportException;
\r
73 * Validate that the options are usable for export.
\r
77 * @return a list of errors
\r
78 * @throws ExportException
\r
80 List<String> validate( ExportContext context, Variant options ) throws ExportException;
\r
83 * Fill options with default values.
\r
86 * @throws ExportException
\r
88 void fillDefaultPrefs( ExportContext context, Variant options ) throws ExportException;
\r
91 * Save format options to preferences node(s).
\r
93 * A preference value may or may not exist in the options object.
\r
96 * @param contentScopeNode
\r
97 * @param workbenchScopeNode
\r
98 * @throws ExportException
\r
100 void savePref( Variant options, Preferences contentScopeNode, Preferences workbenchScopeNode ) throws ExportException;
\r
103 * Load format options from preferences node(s).
\r
106 * @param contentScopeNode
\r
107 * @param workbenchScopeNode
\r
108 * @throws ExportException
\r
110 void loadPref( Variant options, Preferences contentScopeNode, Preferences workbenchScopeNode ) throws ExportException;
\r