- tg.extensions.put(Extensions.CACHED_HASHCODE, new Variant(Bindings.INTEGER, hashCode));
- try {
- byte[] buffer = DataContainers.writeFile(
- new DataContainer("graph", 1, new Variant(TransferableGraph1.BINDING, tg))
- );
- return new ByteArrayInputStream(buffer);
- } finally {
- tg.extensions.remove(Extensions.CACHED_HASHCODE);
- }
+ TreeMap<String, Variant> metadata = new TreeMap<>();
+ metadata.put(Extensions.CACHED_HASHCODE, new Variant(Bindings.INTEGER, hashCode));
+ byte[] buffer = DataContainers.writeFile(
+ new DataContainer("graph", 1, metadata, new Variant(binding, tg))
+ );
+ return new ByteArrayInputStream(buffer);
+ }
+
+ public static void write(File file, TransferableGraph1 tg) throws BindingException, IOException {
+ Binding binding = TransferableGraph1.BINDING;
+ int hashCode = binding.hashValue(tg);
+ TreeMap<String, Variant> metadata = new TreeMap<>();
+ metadata.put(Extensions.CACHED_HASHCODE, new Variant(Bindings.INTEGER, hashCode));
+ DataContainers.writeFile(file, new DataContainer("graph", 1, metadata, new Variant(binding, tg)));