]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.backup.ontology/src/org/simantics/backup/ontology/BackupResource.java
added backup.db and backup.ontology plugins
[simantics/platform.git] / bundles / org.simantics.backup.ontology / src / org / simantics / backup / ontology / BackupResource.java
1 package org.simantics.backup.ontology;\r
2 \r
3 import org.simantics.db.RequestProcessor;\r
4 import org.simantics.db.Resource;\r
5 import org.simantics.db.ReadGraph;\r
6 import org.simantics.db.request.Read;\r
7 import org.simantics.db.Session;\r
8 import org.simantics.db.exception.DatabaseException;\r
9 import org.simantics.db.service.QueryControl;\r
10 \r
11 public class BackupResource {\r
12     \r
13     public final Resource ModelledBackupProvider;\r
14     public final Resource ModelledBackupProvider_instance;\r
15     public final Resource ModelledBackupProvider_instance_Inverse;\r
16     public final Resource SCLMain;\r
17     public final Resource modelledBackupProvider;\r
18         \r
19     public static class URIs {\r
20         public static final String ModelledBackupProvider = "http://www.simantics.org/Backup-1.0/ModelledBackupProvider";\r
21         public static final String ModelledBackupProvider_instance = "http://www.simantics.org/Backup-1.0/ModelledBackupProvider/instance";\r
22         public static final String ModelledBackupProvider_instance_Inverse = "http://www.simantics.org/Backup-1.0/ModelledBackupProvider/instance/Inverse";\r
23         public static final String SCLMain = "http://www.simantics.org/Backup-1.0/SCLMain";\r
24         public static final String modelledBackupProvider = "http://www.simantics.org/Backup-1.0/modelledBackupProvider";\r
25     }\r
26     \r
27     public static Resource getResourceOrNull(ReadGraph graph, String uri) {\r
28         try {\r
29             return graph.getResource(uri);\r
30         } catch(DatabaseException e) {\r
31             System.err.println(e.getMessage());\r
32             return null;\r
33         }\r
34     }\r
35     \r
36     public BackupResource(ReadGraph graph) {\r
37         ModelledBackupProvider = getResourceOrNull(graph, URIs.ModelledBackupProvider);\r
38         ModelledBackupProvider_instance = getResourceOrNull(graph, URIs.ModelledBackupProvider_instance);\r
39         ModelledBackupProvider_instance_Inverse = getResourceOrNull(graph, URIs.ModelledBackupProvider_instance_Inverse);\r
40         SCLMain = getResourceOrNull(graph, URIs.SCLMain);\r
41         modelledBackupProvider = getResourceOrNull(graph, URIs.modelledBackupProvider);\r
42     }\r
43     \r
44     public static BackupResource getInstance(ReadGraph graph) {\r
45         Session session = graph.getSession();\r
46         BackupResource ret = session.peekService(BackupResource.class);\r
47         if(ret == null) {\r
48             QueryControl qc = graph.getService(QueryControl.class);\r
49             ret = new BackupResource(qc.getIndependentGraph(graph));\r
50             session.registerService(BackupResource.class, ret);\r
51         }\r
52         return ret;\r
53     }\r
54     \r
55     public static BackupResource getInstance(RequestProcessor session) throws DatabaseException {\r
56         BackupResource ret = session.peekService(BackupResource.class);\r
57         if(ret == null) {\r
58             ret = session.syncRequest(new Read<BackupResource>() {\r
59                 public BackupResource perform(ReadGraph graph) throws DatabaseException {\r
60                     QueryControl qc = graph.getService(QueryControl.class);\r
61                     return new BackupResource(qc.getIndependentGraph(graph));\r
62                 }\r
63             });\r
64             session.registerService(BackupResource.class, ret);\r
65         }\r
66         return ret;\r
67     }\r
68     \r
69 }\r
70 \r