1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.chemistry.opencmis.client.bindings.spi.local;
22
23 import org.apache.chemistry.opencmis.client.bindings.spi.BindingSession;
24 import org.apache.chemistry.opencmis.commons.SessionParameter;
25 import org.apache.chemistry.opencmis.commons.server.CallContext;
26 import org.apache.chemistry.opencmis.commons.server.CmisService;
27 import org.apache.chemistry.opencmis.commons.server.CmisServiceFactory;
28 import org.apache.chemistry.opencmis.commons.server.ProgressControlCmisService;
29 import org.apache.chemistry.opencmis.commons.server.ProgressControlCmisService.Progress;
30
31
32
33
34 public abstract class AbstractLocalService {
35
36 private BindingSession session;
37 private CmisServiceFactory factory;
38
39 private String user;
40 private String password;
41 private String language;
42 private String country;
43
44
45
46
47 protected void setSession(BindingSession session) {
48 this.session = session;
49
50 Object userObj = session.get(SessionParameter.USER);
51 user = userObj instanceof String ? userObj.toString() : null;
52
53 Object passwordObj = session.get(SessionParameter.PASSWORD);
54 password = passwordObj instanceof String ? passwordObj.toString() : null;
55
56 Object localeLanguageObj = session.get(SessionParameter.LOCALE_ISO639_LANGUAGE);
57 language = localeLanguageObj instanceof String ? localeLanguageObj.toString() : null;
58
59 Object localeCountryObj = session.get(SessionParameter.LOCALE_ISO3166_COUNTRY);
60 country = localeCountryObj instanceof String ? localeCountryObj.toString() : null;
61 }
62
63
64
65
66 protected BindingSession getSession() {
67 return session;
68 }
69
70
71
72
73 protected void setServiceFactory(CmisServiceFactory factory) {
74 this.factory = factory;
75 }
76
77
78
79
80 protected CmisServiceFactory getServiceFactory() {
81 return factory;
82 }
83
84
85
86
87
88
89
90
91 protected boolean stopBeforeService(CmisService service) {
92 if (!(service instanceof ProgressControlCmisService)) {
93 return false;
94 }
95
96 return ((ProgressControlCmisService) service).beforeServiceCall() == Progress.STOP;
97 }
98
99
100
101
102
103
104
105
106 protected boolean stopAfterService(CmisService service) {
107 if (!(service instanceof ProgressControlCmisService)) {
108 return false;
109 }
110
111 return ((ProgressControlCmisService) service).afterServiceCall() == Progress.STOP;
112 }
113
114
115
116
117 protected CallContext createCallContext(String repositoryId) {
118 return new LocalCallContext(repositoryId, user, password, language, country);
119 }
120
121 protected CmisService getService(String repositoryId) {
122 return factory.getService(createCallContext(repositoryId));
123 }
124 }