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