X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.backup.ontology%2Fsrc%2Forg%2Fsimantics%2Fbackup%2Fontology%2FBackupResource.java;fp=bundles%2Forg.simantics.backup.ontology%2Fsrc%2Forg%2Fsimantics%2Fbackup%2Fontology%2FBackupResource.java;h=215c686eeb6dc25290da21a9461e916b41b57481;hb=26c1b8068623e1ca4ae711349c2eecc62bf7becd;hp=0000000000000000000000000000000000000000;hpb=dba4eddb805e2e764d5f0d9149f4737bb1c72ca5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.backup.ontology/src/org/simantics/backup/ontology/BackupResource.java b/bundles/org.simantics.backup.ontology/src/org/simantics/backup/ontology/BackupResource.java new file mode 100644 index 000000000..215c686ee --- /dev/null +++ b/bundles/org.simantics.backup.ontology/src/org/simantics/backup/ontology/BackupResource.java @@ -0,0 +1,70 @@ +package org.simantics.backup.ontology; + +import org.simantics.db.RequestProcessor; +import org.simantics.db.Resource; +import org.simantics.db.ReadGraph; +import org.simantics.db.request.Read; +import org.simantics.db.Session; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.service.QueryControl; + +public class BackupResource { + + public final Resource ModelledBackupProvider; + public final Resource ModelledBackupProvider_instance; + public final Resource ModelledBackupProvider_instance_Inverse; + public final Resource SCLMain; + public final Resource modelledBackupProvider; + + public static class URIs { + public static final String ModelledBackupProvider = "http://www.simantics.org/Backup-1.0/ModelledBackupProvider"; + public static final String ModelledBackupProvider_instance = "http://www.simantics.org/Backup-1.0/ModelledBackupProvider/instance"; + public static final String ModelledBackupProvider_instance_Inverse = "http://www.simantics.org/Backup-1.0/ModelledBackupProvider/instance/Inverse"; + public static final String SCLMain = "http://www.simantics.org/Backup-1.0/SCLMain"; + public static final String modelledBackupProvider = "http://www.simantics.org/Backup-1.0/modelledBackupProvider"; + } + + public static Resource getResourceOrNull(ReadGraph graph, String uri) { + try { + return graph.getResource(uri); + } catch(DatabaseException e) { + System.err.println(e.getMessage()); + return null; + } + } + + public BackupResource(ReadGraph graph) { + ModelledBackupProvider = getResourceOrNull(graph, URIs.ModelledBackupProvider); + ModelledBackupProvider_instance = getResourceOrNull(graph, URIs.ModelledBackupProvider_instance); + ModelledBackupProvider_instance_Inverse = getResourceOrNull(graph, URIs.ModelledBackupProvider_instance_Inverse); + SCLMain = getResourceOrNull(graph, URIs.SCLMain); + modelledBackupProvider = getResourceOrNull(graph, URIs.modelledBackupProvider); + } + + public static BackupResource getInstance(ReadGraph graph) { + Session session = graph.getSession(); + BackupResource ret = session.peekService(BackupResource.class); + if(ret == null) { + QueryControl qc = graph.getService(QueryControl.class); + ret = new BackupResource(qc.getIndependentGraph(graph)); + session.registerService(BackupResource.class, ret); + } + return ret; + } + + public static BackupResource getInstance(RequestProcessor session) throws DatabaseException { + BackupResource ret = session.peekService(BackupResource.class); + if(ret == null) { + ret = session.syncRequest(new Read() { + public BackupResource perform(ReadGraph graph) throws DatabaseException { + QueryControl qc = graph.getService(QueryControl.class); + return new BackupResource(qc.getIndependentGraph(graph)); + } + }); + session.registerService(BackupResource.class, ret); + } + return ret; + } + +} +