1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.chemistry.opencmis.client.runtime.repository;
20
21 import java.util.HashMap;
22 import java.util.Map;
23
24 import org.apache.chemistry.opencmis.client.api.ObjectFactory;
25 import org.apache.chemistry.opencmis.client.api.Repository;
26 import org.apache.chemistry.opencmis.client.api.Session;
27 import org.apache.chemistry.opencmis.client.bindings.cache.TypeDefinitionCache;
28 import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl;
29 import org.apache.chemistry.opencmis.client.runtime.cache.Cache;
30 import org.apache.chemistry.opencmis.commons.SessionParameter;
31 import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
32 import org.apache.chemistry.opencmis.commons.impl.dataobjects.RepositoryInfoImpl;
33 import org.apache.chemistry.opencmis.commons.spi.AuthenticationProvider;
34
35 public class RepositoryImpl extends RepositoryInfoImpl implements Repository {
36
37 private static final long serialVersionUID = 1L;
38
39 private final Map<String, String> parameters;
40 private final SessionFactoryImpl sessionFactory;
41 private final ObjectFactory objectFactory;
42 private final AuthenticationProvider authenticationProvider;
43 private final Cache cache;
44 private final TypeDefinitionCache typeDefCache;
45
46
47
48
49 public RepositoryImpl(RepositoryInfo data, Map<String, String> parameters, SessionFactoryImpl sessionFactory,
50 ObjectFactory objectFactory, AuthenticationProvider authenticationProvider, Cache cache,
51 TypeDefinitionCache typeDefCache) {
52 super(data);
53
54 assert sessionFactory != null;
55
56 this.parameters = new HashMap<String, String>(parameters);
57 this.parameters.put(SessionParameter.REPOSITORY_ID, getId());
58
59 this.sessionFactory = sessionFactory;
60 this.objectFactory = objectFactory;
61 this.authenticationProvider = authenticationProvider;
62 this.cache = cache;
63 this.typeDefCache = typeDefCache;
64 }
65
66 @Override
67 @SuppressWarnings("unchecked")
68 public <T extends Session> T createSession() {
69 return (T) sessionFactory.createSession(parameters, objectFactory, authenticationProvider, cache, typeDefCache);
70 }
71 }