]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.impl/src/org/simantics/db/impl/graph/WriteLogger.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.db.impl / src / org / simantics / db / impl / graph / WriteLogger.java
index eb1484b40049f7f2904dbd03f5a5c7d0e6a78b00..7cf0ca823701338cfc51bc609293ae398debe2a7 100644 (file)
-package org.simantics.db.impl.graph;\r
-\r
-import gnu.trove.set.hash.TIntHashSet;\r
-\r
-import java.io.File;\r
-import java.io.FileInputStream;\r
-import java.io.FileNotFoundException;\r
-import java.io.IOException;\r
-import java.io.RandomAccessFile;\r
-import java.util.HashMap;\r
-\r
-import org.simantics.databoard.Bindings;\r
-import org.simantics.databoard.binding.error.BindingException;\r
-import org.simantics.databoard.parser.repository.DataValueRepository;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.VirtualGraph;\r
-import org.simantics.db.WriteGraph;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.impl.ResourceImpl;\r
-import org.simantics.db.service.TransferableGraphSupport;\r
-import org.simantics.db.service.VirtualGraphSupport;\r
-import org.simantics.utils.Development;\r
-import org.simantics.utils.FileUtils;\r
-\r
-public class WriteLogger {\r
-\r
-    //final public static String LOG = "WriteLogger.log";\r
-\r
-    public static File logFile;\r
-    public static RandomAccessFile raf;\r
-    public static boolean enable = false;\r
-    public static TIntHashSet created;\r
-\r
-    static {\r
-       if(Development.DEVELOPMENT) {\r
-               created = new TIntHashSet();\r
-               logFile = new File("write.log");\r
-               try {\r
-                       raf = new RandomAccessFile(logFile, "rw");\r
-                       } catch (FileNotFoundException e) {\r
-                               e.printStackTrace();\r
-                       }\r
-       }\r
-    }\r
-\r
-    private static String resourceLog(ReadGraph graph, Resource resource) throws DatabaseException {\r
-       if(!enable) return null;\r
-       if(resource == null) return "N";\r
-       ResourceImpl impl = (ResourceImpl)resource;\r
-       int id = impl.id;\r
-       if(created.contains(id)) return "I" + impl.id;\r
-       else {\r
-               String uri = graph.getPossibleURI(resource);\r
-               if(uri != null) return "U" + uri;\r
-               else return "N";\r
-       }\r
-    }\r
-    \r
-    private static String virtualGraphLog(ReadGraph graph) {\r
-       WriteGraphImpl impl = (WriteGraphImpl)graph;\r
-       VirtualGraph vg = impl.getProvider();\r
-       if(vg == null) return "N";\r
-       else {\r
-               if(VirtualGraph.Persistency.MEMORY == vg.getPersistency()) return "M" + vg.getIdentifier();\r
-               else return "W" + vg.getIdentifier();\r
-       }\r
-    }\r
-    \r
-    private static void logLine(String line) {\r
-       if(!enable) return;\r
-       try {\r
-               byte[] data = line.getBytes();\r
-               raf.write(data);\r
-       } catch (IOException e) {\r
-               \r
-       }\r
-    }\r
-    \r
-    public static void logClaim(ReadGraph graph, Resource subject, Resource predicate, Resource inverse, Resource object) throws DatabaseException {\r
-       logLine("C\t" + virtualGraphLog(graph) + "\t" + resourceLog(graph, subject) + "\t" + resourceLog(graph, predicate) + "\t" + resourceLog(graph, inverse) + "\t" + resourceLog(graph, object) + "\n");\r
-    }\r
-\r
-    public static void logDeny(ReadGraph graph, Resource subject, Resource predicate, Resource inverse, Resource object) throws DatabaseException {\r
-       logLine("D\t" + virtualGraphLog(graph) + "\t" + resourceLog(graph, subject) + "\t" + resourceLog(graph, predicate) + "\t" + resourceLog(graph, inverse) + "\t" + resourceLog(graph, object) + "\n");\r
-    }\r
-\r
-    public static void logNewResource(ReadGraph graph, Resource subject) throws DatabaseException {\r
-       if(!enable) return;\r
-       ResourceImpl impl = (ResourceImpl)subject;\r
-       created.add(impl.id);\r
-       logLine("R\t" + virtualGraphLog(graph) + "\t" + resourceLog(graph, subject) + "\n");\r
-    }\r
-\r
-    public static void logValue(ReadGraph graph, Resource subject, byte[] value) throws DatabaseException {\r
-       if(!enable) return;\r
-       try {\r
-                       logLine("V\t" + virtualGraphLog(graph) + "\t" + resourceLog(graph, subject) + "\t" + Bindings.BYTE_ARRAY.toString(value) + "\n");\r
-               } catch (BindingException e) {\r
-                       e.printStackTrace();\r
-               }\r
-    }\r
-\r
-    private static Resource readResource(WriteGraph graph, String id, HashMap<String, Resource> ids) throws DatabaseException {\r
-       if(id.startsWith("I")) {\r
-               Resource result = ids.get(id);\r
-               if(result == null) {\r
-                       System.err.println("undeclared id='" + id + "'");\r
-               }\r
-               return result;\r
-       } else if (id.startsWith("U")) {\r
-               return graph.getPossibleResource(id.substring(1));\r
-       } else {\r
-               return null;\r
-       }\r
-    }\r
-    \r
-       private static VirtualGraph vg = null;\r
-       \r
-       private static VirtualGraph getVirtualGraph(WriteGraphImpl graph, String id) {\r
-               \r
-               if("N".equals(id)) return null;\r
-               VirtualGraphSupport vgs = graph.getService(VirtualGraphSupport.class);\r
-               if (id.startsWith("M")) {\r
-                       return vgs.getMemoryPersistent(id.substring(1));\r
-               } else {\r
-                       return vgs.getWorkspacePersistent(id.substring(1));\r
-               }\r
-               \r
-       }\r
-       \r
-       private static WriteGraphImpl applyVirtualGraph(WriteGraphImpl graph, String id) {\r
-               VirtualGraph target = getVirtualGraph(graph, id);\r
-               if(target != vg) {\r
-                       vg = target;\r
-                       return (WriteGraphImpl)graph.newSync(target); \r
-               } else {\r
-                       return graph;\r
-               }\r
-       }\r
-       \r
-\r
-    public static void read(WriteGraph _graph) throws Exception {\r
-       vg = null;\r
-       WriteGraphImpl graph = (WriteGraphImpl)_graph;\r
-       String data = FileUtils.getContents(new FileInputStream(logFile)).replace("\r", "");\r
-       HashMap<String, Resource> ids = new HashMap<String, Resource>();\r
-       for(String line : data.split("\n")) {\r
-               String[] parts = line.split("\t");\r
-               if("C".equals(parts[0])) {\r
-                       graph = applyVirtualGraph(graph, parts[1]);\r
-                       Resource subject = readResource(graph, parts[2], ids);\r
-                       Resource predicate = readResource(graph, parts[3], ids);\r
-                       Resource inverse = readResource(graph, parts[4], ids);\r
-                       Resource object = readResource(graph, parts[5], ids);\r
-                       if(subject == null || predicate == null || object == null) {\r
-                               System.err.println("skipped statement");\r
-                       } else {\r
-                               graph.claim(subject, predicate, inverse, object);\r
-                       }\r
-               } else if("D".equals(parts[0])) {\r
-                       graph = applyVirtualGraph(graph, parts[1]);\r
-                       Resource subject = readResource(graph, parts[2], ids);\r
-                       Resource predicate = readResource(graph, parts[3], ids);\r
-                       Resource inverse = readResource(graph, parts[4], ids);\r
-                       Resource object = readResource(graph, parts[5], ids);\r
-                       if(subject == null || predicate == null || object == null) {\r
-                               System.err.println("skipped statement");\r
-                       } else {\r
-                               graph.deny(subject, predicate, inverse, object);\r
-                       }\r
-               } else if ("R".equals(parts[0])) {\r
-                       graph = applyVirtualGraph(graph, parts[1]);\r
-                       Resource resource = graph.newResource();\r
-                       ids.put(parts[2], resource);\r
-               } else if ("V".equals(parts[0])) {\r
-                       graph = applyVirtualGraph(graph, parts[1]);\r
-                       Resource subject = readResource(graph, parts[2], ids);\r
-                       // This is an error\r
-                       if(subject == null) continue;\r
-                       byte[] value = (byte[])Bindings.BYTE_ARRAY.parseValue(parts[3], new DataValueRepository());\r
-                       TransferableGraphSupport tgSupport = \r
-                                       graph.getService(TransferableGraphSupport.class);\r
-                       tgSupport.setValue(graph, subject, vg, value);\r
-                       \r
-               }\r
-       }\r
-    }\r
-\r
-}\r
+package org.simantics.db.impl.graph;
+
+import gnu.trove.set.hash.TIntHashSet;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.util.HashMap;
+
+import org.simantics.databoard.Bindings;
+import org.simantics.databoard.binding.error.BindingException;
+import org.simantics.databoard.parser.repository.DataValueRepository;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.VirtualGraph;
+import org.simantics.db.WriteGraph;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.impl.ResourceImpl;
+import org.simantics.db.service.TransferableGraphSupport;
+import org.simantics.db.service.VirtualGraphSupport;
+import org.simantics.utils.Development;
+import org.simantics.utils.FileUtils;
+
+public class WriteLogger {
+
+    //final public static String LOG = "WriteLogger.log";
+
+    public static File logFile;
+    public static RandomAccessFile raf;
+    public static boolean enable = false;
+    public static TIntHashSet created;
+
+    static {
+       if(Development.DEVELOPMENT) {
+               created = new TIntHashSet();
+               logFile = new File("write.log");
+               try {
+                       raf = new RandomAccessFile(logFile, "rw");
+                       } catch (FileNotFoundException e) {
+                               e.printStackTrace();
+                       }
+       }
+    }
+
+    private static String resourceLog(ReadGraph graph, Resource resource) throws DatabaseException {
+       if(!enable) return null;
+       if(resource == null) return "N";
+       ResourceImpl impl = (ResourceImpl)resource;
+       int id = impl.id;
+       if(created.contains(id)) return "I" + impl.id;
+       else {
+               String uri = graph.getPossibleURI(resource);
+               if(uri != null) return "U" + uri;
+               else return "N";
+       }
+    }
+    
+    private static String virtualGraphLog(ReadGraph graph) {
+       WriteGraphImpl impl = (WriteGraphImpl)graph;
+       VirtualGraph vg = impl.getProvider();
+       if(vg == null) return "N";
+       else {
+               if(VirtualGraph.Persistency.MEMORY == vg.getPersistency()) return "M" + vg.getIdentifier();
+               else return "W" + vg.getIdentifier();
+       }
+    }
+    
+    private static void logLine(String line) {
+       if(!enable) return;
+       try {
+               byte[] data = line.getBytes();
+               raf.write(data);
+       } catch (IOException e) {
+               
+       }
+    }
+    
+    public static void logClaim(ReadGraph graph, Resource subject, Resource predicate, Resource inverse, Resource object) throws DatabaseException {
+       logLine("C\t" + virtualGraphLog(graph) + "\t" + resourceLog(graph, subject) + "\t" + resourceLog(graph, predicate) + "\t" + resourceLog(graph, inverse) + "\t" + resourceLog(graph, object) + "\n");
+    }
+
+    public static void logDeny(ReadGraph graph, Resource subject, Resource predicate, Resource inverse, Resource object) throws DatabaseException {
+       logLine("D\t" + virtualGraphLog(graph) + "\t" + resourceLog(graph, subject) + "\t" + resourceLog(graph, predicate) + "\t" + resourceLog(graph, inverse) + "\t" + resourceLog(graph, object) + "\n");
+    }
+
+    public static void logNewResource(ReadGraph graph, Resource subject) throws DatabaseException {
+       if(!enable) return;
+       ResourceImpl impl = (ResourceImpl)subject;
+       created.add(impl.id);
+       logLine("R\t" + virtualGraphLog(graph) + "\t" + resourceLog(graph, subject) + "\n");
+    }
+
+    public static void logValue(ReadGraph graph, Resource subject, byte[] value) throws DatabaseException {
+       if(!enable) return;
+       try {
+                       logLine("V\t" + virtualGraphLog(graph) + "\t" + resourceLog(graph, subject) + "\t" + Bindings.BYTE_ARRAY.toString(value) + "\n");
+               } catch (BindingException e) {
+                       e.printStackTrace();
+               }
+    }
+
+    private static Resource readResource(WriteGraph graph, String id, HashMap<String, Resource> ids) throws DatabaseException {
+       if(id.startsWith("I")) {
+               Resource result = ids.get(id);
+               if(result == null) {
+                       System.err.println("undeclared id='" + id + "'");
+               }
+               return result;
+       } else if (id.startsWith("U")) {
+               return graph.getPossibleResource(id.substring(1));
+       } else {
+               return null;
+       }
+    }
+    
+       private static VirtualGraph vg = null;
+       
+       private static VirtualGraph getVirtualGraph(WriteGraphImpl graph, String id) {
+               
+               if("N".equals(id)) return null;
+               VirtualGraphSupport vgs = graph.getService(VirtualGraphSupport.class);
+               if (id.startsWith("M")) {
+                       return vgs.getMemoryPersistent(id.substring(1));
+               } else {
+                       return vgs.getWorkspacePersistent(id.substring(1));
+               }
+               
+       }
+       
+       private static WriteGraphImpl applyVirtualGraph(WriteGraphImpl graph, String id) {
+               VirtualGraph target = getVirtualGraph(graph, id);
+               if(target != vg) {
+                       vg = target;
+                       return (WriteGraphImpl)graph.newSync(target); 
+               } else {
+                       return graph;
+               }
+       }
+       
+
+    public static void read(WriteGraph _graph) throws Exception {
+       vg = null;
+       WriteGraphImpl graph = (WriteGraphImpl)_graph;
+       String data = FileUtils.getContents(new FileInputStream(logFile)).replace("\r", "");
+       HashMap<String, Resource> ids = new HashMap<String, Resource>();
+       for(String line : data.split("\n")) {
+               String[] parts = line.split("\t");
+               if("C".equals(parts[0])) {
+                       graph = applyVirtualGraph(graph, parts[1]);
+                       Resource subject = readResource(graph, parts[2], ids);
+                       Resource predicate = readResource(graph, parts[3], ids);
+                       Resource inverse = readResource(graph, parts[4], ids);
+                       Resource object = readResource(graph, parts[5], ids);
+                       if(subject == null || predicate == null || object == null) {
+                               System.err.println("skipped statement");
+                       } else {
+                               graph.claim(subject, predicate, inverse, object);
+                       }
+               } else if("D".equals(parts[0])) {
+                       graph = applyVirtualGraph(graph, parts[1]);
+                       Resource subject = readResource(graph, parts[2], ids);
+                       Resource predicate = readResource(graph, parts[3], ids);
+                       Resource inverse = readResource(graph, parts[4], ids);
+                       Resource object = readResource(graph, parts[5], ids);
+                       if(subject == null || predicate == null || object == null) {
+                               System.err.println("skipped statement");
+                       } else {
+                               graph.deny(subject, predicate, inverse, object);
+                       }
+               } else if ("R".equals(parts[0])) {
+                       graph = applyVirtualGraph(graph, parts[1]);
+                       Resource resource = graph.newResource();
+                       ids.put(parts[2], resource);
+               } else if ("V".equals(parts[0])) {
+                       graph = applyVirtualGraph(graph, parts[1]);
+                       Resource subject = readResource(graph, parts[2], ids);
+                       // This is an error
+                       if(subject == null) continue;
+                       byte[] value = (byte[])Bindings.BYTE_ARRAY.parseValue(parts[3], new DataValueRepository());
+                       TransferableGraphSupport tgSupport = 
+                                       graph.getService(TransferableGraphSupport.class);
+                       tgSupport.setValue(graph, subject, vg, value);
+                       
+               }
+       }
+    }
+
+}