]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.graph.db/src/org/simantics/graph/db/StreamingTransferableGraphFileReader.java
Importing TG files creates copies of files without deleting them.
[simantics/platform.git] / bundles / org.simantics.graph.db / src / org / simantics / graph / db / StreamingTransferableGraphFileReader.java
index 8c82c23bc69bb8a8f37ff6855e577ea050a2cb16..eb6294e3e98cece34c737406ba4ce2caa84128a2 100644 (file)
@@ -36,14 +36,24 @@ final public class StreamingTransferableGraphFileReader extends ByteFileReader {
        
        final private static int SIZE = 1<<18;
        
+       private boolean deleteOnClose = false;
+       private File file;
+       
        public StreamingTransferableGraphFileReader(File file) throws Exception {
+               this(file,false);
+       }
+       
+       public StreamingTransferableGraphFileReader(File file, boolean deleteOnClose) throws Exception {
                super(file, SIZE);
                if(init) {
                        init=false;
                        @SuppressWarnings("resource")
                        StreamingTransferableGraphFileReader r = new StreamingTransferableGraphFileReader(file, 0);
                        for(int i=0;i<40000;i++) r.readTG();
+                       r.close();
                }
+               this.file = file;
+               this.deleteOnClose = deleteOnClose;
        }
        
        public StreamingTransferableGraphFileReader(InputStream stream) throws Exception {
@@ -53,6 +63,7 @@ final public class StreamingTransferableGraphFileReader extends ByteFileReader {
                        @SuppressWarnings("resource")
                        StreamingTransferableGraphFileReader r = new StreamingTransferableGraphFileReader(stream, 0);
                        for(int i=0;i<40000;i++) r.readTG();
+                       r.close();
                }
        }
 
@@ -63,6 +74,7 @@ final public class StreamingTransferableGraphFileReader extends ByteFileReader {
                        @SuppressWarnings("resource")
                        StreamingTransferableGraphFileReader r = new StreamingTransferableGraphFileReader(channel, 0);
                        for(int i=0;i<40000;i++) r.readTG();
+                       r.close();
                }
        }
 
@@ -77,6 +89,14 @@ final public class StreamingTransferableGraphFileReader extends ByteFileReader {
        public StreamingTransferableGraphFileReader(File file, int size) throws IOException {
                super(file, size);
        }
+       
+       @Override
+       public void close() throws IOException {
+               super.close();
+               if (deleteOnClose && file != null && file.exists()) {
+                       file.delete();
+               }
+       }
 
        class FileTransferableGraphSource implements TransferableGraphSource {