X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.jdbc%2Fsrc%2Forg%2Fsimantics%2Fjdbc%2FSimanticsJDBC.java;fp=bundles%2Forg.simantics.jdbc%2Fsrc%2Forg%2Fsimantics%2Fjdbc%2FSimanticsJDBC.java;h=ac287e6e42418a19da445ea500a9f3834f0cb133;hb=c758b43751ff59edd81ab85ea7bd320446824d99;hp=0000000000000000000000000000000000000000;hpb=1adc3807dea544d29512510dc9546ec65b72e389;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.jdbc/src/org/simantics/jdbc/SimanticsJDBC.java b/bundles/org.simantics.jdbc/src/org/simantics/jdbc/SimanticsJDBC.java new file mode 100644 index 000000000..ac287e6e4 --- /dev/null +++ b/bundles/org.simantics.jdbc/src/org/simantics/jdbc/SimanticsJDBC.java @@ -0,0 +1,45 @@ +package org.simantics.jdbc; + +import org.simantics.databoard.Bindings; +import org.simantics.db.Resource; +import org.simantics.db.WriteGraph; +import org.simantics.db.exception.DatabaseException; +import org.simantics.db.layer0.util.Layer0Utils; +import org.simantics.db.layer0.variable.Variable; +import org.simantics.db.layer0.variable.Variables; +import org.simantics.layer0.Layer0; + +/** + * Simantics JDBC facade. + * + * @author Jani Simomaa + */ +public class SimanticsJDBC { + + public static final String PROP_SIMANTICS_JDBC_PROPERTYFILE = "simantics.jdbc.propertyfile"; + public static final String PROP_SIMANTICS_JDBC_HOST = "simantics.jdbc.host"; + public static final String PROP_SIMANTICS_JDBC_PORT = "simantics.jdbc.port"; + public static final String PROP_SIMANTICS_JDBC_USER = "simantics.jdbc.user"; + public static final String PROP_SIMANTICS_JDBC_PASSWORD = "simantics.jdbc.password"; + public static final String PROP_SIMANTICS_JDBC_DATABASE = "simantics.jdbc.database"; + + public static String createJDBCSession(WriteGraph graph, String sessionGUID) throws DatabaseException { + Resource projects = graph.getResource("http://Projects"); + Resource documentSessions = Layer0Utils.getPossibleChild(graph, projects, "DocumentSessions"); + Layer0 L0 = Layer0.getInstance(graph); + Resource documentSession = Layer0Utils.getPossibleChild(graph, documentSessions, sessionGUID); + + String sessionId = "http://Projects/DocumentSessions/" + sessionGUID + "/__jdbc__"; + + JDBCResource JDBC = JDBCResource.getInstance(graph); + Resource jdbcSession = graph.newResource(); + graph.claim(jdbcSession, L0.InstanceOf, JDBC.Session); + graph.claimLiteral(jdbcSession, L0.HasName, L0.NameOf, L0.String, "__jdbc__", Bindings.STRING); + graph.claim(documentSession, L0.ConsistsOf, jdbcSession); + + @SuppressWarnings("unused") + Variable jdbcState = Variables.getVariable(graph, jdbcSession); + + return sessionId; + } +}