]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.export.core/src/org/simantics/export/core/manager/TransferableGraphWriter.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.export.core / src / org / simantics / export / core / manager / TransferableGraphWriter.java
1 package org.simantics.export.core.manager;\r
2 \r
3 import java.io.File;\r
4 import java.io.IOException;\r
5 import java.util.TreeMap;\r
6 \r
7 import org.simantics.databoard.binding.Binding;\r
8 import org.simantics.databoard.binding.mutable.Variant;\r
9 import org.simantics.databoard.container.DataContainer;\r
10 import org.simantics.databoard.container.DataContainers;\r
11 import org.simantics.db.RequestProcessor;\r
12 import org.simantics.export.core.error.ExportException;\r
13 import org.simantics.graph.db.TransferableGraphSource;\r
14 import org.simantics.graph.db.TransferableGraphs;\r
15 \r
16 public class TransferableGraphWriter {\r
17 \r
18         public final File file;         \r
19         public final String format;\r
20         public final int version;\r
21         \r
22         public TransferableGraphWriter(File file, String format, int version) {\r
23                 this.file = file;\r
24                 this.format = format;\r
25                 this.version = version;\r
26         }\r
27         \r
28         /**\r
29          * Write TG to the file that is associated with this writer.\r
30          * \r
31          * @param tgBinding\r
32          * @param tg\r
33          * @throws ExportException\r
34          */\r
35         public void writeFile(Binding tgBinding, Object tg) throws ExportException {\r
36         try {\r
37                 Variant variant = new Variant(tgBinding, tg);\r
38                 DataContainer dataContainer = new DataContainer(format, version, variant);\r
39                         DataContainers.writeFile(file, dataContainer);\r
40                 } catch (IOException e) {\r
41                         throw new ExportException( "I/O Error occured: "+e.getMessage() );\r
42                 }                               \r
43         }\r
44         \r
45         /**\r
46          * Write from TG Source to the file that is associated with this writer.\r
47          *  \r
48          * @param session request processor to be used for reading the source\r
49          * @param source TG source\r
50          * @throws ExportException\r
51          */\r
52         public void writeFile(RequestProcessor session, TransferableGraphSource source) throws ExportException\r
53         {\r
54                 writeFile(session, source, new TreeMap<String, Variant>());\r
55         }\r
56 \r
57         /**\r
58          * Write from TG Source to the file that is associated with this writer.\r
59          *  \r
60          * @param session request processor to be used for reading the source\r
61          * @param source TG source\r
62          * @throws ExportException\r
63          */\r
64         public void writeFile(RequestProcessor session, TransferableGraphSource source, TreeMap<String,Variant> metadata) throws ExportException\r
65         {\r
66                 try {\r
67                         TransferableGraphs.writeTransferableGraph(\r
68                                         session, \r
69                                         format, \r
70                                         version, \r
71                                         metadata, \r
72                                         source, \r
73                                         file);\r
74                 } catch (Exception e) {\r
75                         throw new ExportException(e);\r
76                 }\r
77         }\r
78 \r
79 }\r