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