Added more TransferableGraphs.writeTransferableGraph methods 39/1439/1
authorTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Fri, 9 Feb 2018 08:26:29 +0000 (10:26 +0200)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Fri, 9 Feb 2018 08:29:35 +0000 (10:29 +0200)
* writeTransferableGraph(RequestProcessor,
                         TransferableGraphSource,
                         File,
                         TGStatusMonitor)
  writes the specified TG source into the specified file as a variant
  (i.e. datatype + data)
* writeTransferableGraphVariant(RequestProcessor,
                                TransferableGraphSource,
                                RandomAccessBinary,
                                TGStatusMonitor)
  writes the specified TG source into the specified output binary file
  as a variant (i.e. datatype + data)

refs #7758

Change-Id: Ia50a1ce9c461681ac10be73674fa0e5e9c22b404

bundles/org.simantics.graph.db/src/org/simantics/graph/db/TransferableGraphs.java

index 67689ff46320c44b71de5e2a19a404f42376f16b..0841e1455569ed08e0f184c750c5125e9fe55aa3 100644 (file)
@@ -440,15 +440,23 @@ public class TransferableGraphs {
        }
 
        public static void writeTransferableGraph(RequestProcessor processor, String format, int version, TreeMap<String, Variant> metadata, TransferableGraphSource source, File target, TGStatusMonitor monitor) throws Exception {
-               final Serializer datatypeSerializer = Bindings.getSerializerUnchecked(Datatype.class);
                try (RandomAccessBinary out = new BinaryFile(target, 128*1024)) {
-                       DataContainer container = new DataContainer(format, version, metadata, null);
-                       DataContainers.writeHeader(out, container);
-                       datatypeSerializer.serialize((DataOutput) out, Datatypes.getDatatypeUnchecked(TransferableGraph1.class));
-                       writeTransferableGraph(processor, source, out, monitor);
+                       DataContainers.writeHeader(out, new DataContainer(format, version, metadata, null));
+                       writeTransferableGraphVariant(processor, source, out, monitor);
                }
        }
 
+       public static void writeTransferableGraph(RequestProcessor processor, TransferableGraphSource source, File target, TGStatusMonitor monitor) throws Exception {
+               try (RandomAccessBinary out = new BinaryFile(target, 128*1024)) {
+                       writeTransferableGraphVariant(processor, source, out, monitor);
+               }
+       }
+
+       public static void writeTransferableGraphVariant(RequestProcessor processor, TransferableGraphSource source, RandomAccessBinary out, TGStatusMonitor monitor) throws Exception {
+               Bindings.getSerializerUnchecked(Datatype.class).serialize(out, Datatypes.getDatatypeUnchecked(TransferableGraph1.class));
+               writeTransferableGraph(processor, source, out, monitor);
+       }
+
        private static TGStatusMonitor safeMonitor(TGStatusMonitor mon) {
                return mon == null ? TGStatusMonitor.NULL_MONITOR : mon;
        }