]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.procore/src/org/simantics/db/procore/internal/ProCoreDriverVirtual.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.db.procore / src / org / simantics / db / procore / internal / ProCoreDriverVirtual.java
1 package org.simantics.db.procore.internal;\r
2 \r
3 import java.io.IOException;\r
4 import java.util.Properties;\r
5 \r
6 import org.simantics.db.DatabaseUserAgent;\r
7 import org.simantics.db.Driver;\r
8 import org.simantics.db.ReadGraph;\r
9 import org.simantics.db.ServerI;\r
10 import org.simantics.db.Session;\r
11 import org.simantics.db.authentication.UserAuthenticationAgent;\r
12 import org.simantics.db.authentication.UserAuthenticator;\r
13 import org.simantics.db.common.auth.UserAuthenticationAgents;\r
14 import org.simantics.db.common.request.ReadRequest;\r
15 import org.simantics.db.exception.DatabaseException;\r
16 import org.simantics.db.procore.ProCoreDriver;\r
17 import org.simantics.layer0.Layer0;\r
18 \r
19 import fi.vtt.simantics.procore.BackdoorAuthenticator;\r
20 import fi.vtt.simantics.procore.SessionManagerSource;\r
21 import fi.vtt.simantics.procore.internal.SessionImplVirtual;\r
22 import fi.vtt.simantics.procore.internal.SessionImplVirtualInit;\r
23 \r
24 public class ProCoreDriverVirtual implements Driver {\r
25     private static final Boolean          DEBUG         = true;\r
26     private final UserAuthenticator       authenticator = new BackdoorAuthenticator();\r
27     private final UserAuthenticationAgent agent         = UserAuthenticationAgents.staticAgent(authenticator);\r
28 \r
29     public ProCoreDriverVirtual() {\r
30         initLogging();\r
31     }\r
32 \r
33     private void initLogging() {\r
34         try {\r
35             SessionManagerSource.getSessionManager();\r
36         } catch (IOException e) {\r
37             if (DEBUG)\r
38                 e.printStackTrace();\r
39         }\r
40     }\r
41 \r
42     @Override\r
43     public Session getSession(String address, Properties args) throws DatabaseException {\r
44         Session s = new SessionImplVirtual(agent);\r
45         if (args.containsKey("builtinInitializer"))\r
46             return new SessionImplVirtualInit(agent);\r
47         else if (args.containsKey("noinitialise")) {\r
48             if (DEBUG)\r
49                 System.out.println("noinitialise");\r
50         } else {\r
51             s.syncRequest(new ReadRequest() {\r
52                 @Override\r
53                 public void run(ReadGraph g) {\r
54                     // Registers Builtins with the session ServiceLocator.\r
55                     Layer0.getInstance(g);\r
56                 }\r
57             });\r
58         }\r
59         return s;\r
60     }\r
61 \r
62     @Override\r
63     public ServerI getServer(String address, Properties info) throws DatabaseException {\r
64         return SessionImplVirtual.newVirtualProCoreServer();\r
65     }\r
66 \r
67     @Override\r
68     public String getName() {\r
69         return ProCoreDriver.ProCoreDriverNameVirtual;\r
70     }\r
71     @Override\r
72     public DatabaseUserAgent getDatabaseUserAgent(String address) {\r
73         return null;\r
74     }\r
75     @Override\r
76     public void setDatabaseUserAgent(String address, DatabaseUserAgent dbUserAgent) {\r
77     }\r
78     @Override\r
79     public Management getManagement(String address, Properties info) throws DatabaseException {\r
80         return null; // No management for virtual database.\r
81     }\r
82 \r
83 }\r