]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.export.core/src/org/simantics/export/core/intf/ExportClass.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.export.core / src / org / simantics / export / core / intf / ExportClass.java
1 package org.simantics.export.core.intf;\r
2 \r
3 import java.util.Collection;\r
4 import java.util.List;\r
5 \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
14 \r
15 public interface ExportClass {\r
16         \r
17         /**\r
18          * Get extension specific options.\r
19          * \r
20          * @param ctx\r
21          * @param contentUris\r
22          * @return a record type describing options \r
23          */\r
24         RecordType options( ExportContext ctx, Collection<String> contentUris ) throws ExportException;\r
25         \r
26         /**\r
27          * Validate that the content can be exported. If not, an exception is thrown. \r
28          * \r
29          * @param contentUri\r
30          * @param writer\r
31          * @param context\r
32          * @param monitor\r
33          * @param options\r
34          * @return list of errors  \r
35          */\r
36         List<String> validate(\r
37                         String contentUri, \r
38                         ExportContext context,\r
39                         Variant options);\r
40         \r
41         /**\r
42          * Write format specific content to a content writer. \r
43          * \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
48          * @param monitor\r
49          * @param attachmentMap (optional) attachments \r
50          * @throws ExportException\r
51          */\r
52         void export(\r
53                         List<Content> contents, \r
54                         Object writer, \r
55                         ExportContext ctx,\r
56                         Variant options,\r
57                         IProgressMonitor monitor, \r
58                         MapList<Content, Content> attachmentMap\r
59                         ) throws ExportException;\r
60 \r
61         /**\r
62          * Fill the options object with default values.\r
63          * \r
64          * @param ctx \r
65          * @param options\r
66          */\r
67         void fillDefaultPrefs( ExportContext ctx, Variant options ) throws ExportException;\r
68 \r
69         /**\r
70          * Save export options to preferences node(s).\r
71          * \r
72          * @param options\r
73          * @param contentScopePrefs\r
74          * @param workspaceScopePrefs\r
75          * @throws ExportException\r
76          */\r
77         void savePref( Variant options, Preferences contentScopePrefs, Preferences workspaceScopePrefs ) throws ExportException;\r
78         \r
79         /**\r
80          * Load export options from preferences node(s).\r
81          * \r
82          * @param options\r
83          * @param contentScopeNode\r
84          * @param workspaceScopePrefs\r
85          * @throws ExportException\r
86          */\r
87         void loadPref( Variant options, Preferences contentScopeNode, Preferences workspaceScopePrefs ) throws ExportException;\r
88         \r
89 }\r