Skip to content

Package: ESWorkspaceProviderProviderFactory

ESWorkspaceProviderProviderFactory

nameinstructionbranchcomplexitylinemethod
ESWorkspaceProviderProviderFactory()
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
beforeDestroy(UISessionEvent)
M: 12 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
getService(Bundle, ServiceRegistration)
M: 15 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
getSessionProvider()
M: 21 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 6 C: 0
0%
M: 1 C: 0
0%
init()
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
ungetService(Bundle, ServiceRegistration, ESWorkspaceProviderProvider)
M: 1 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
3: *
4: * All rights reserved. This program and the accompanying materials
5: * are made available under the terms of the Eclipse Public License 2.0
6: * which accompanies this distribution, and is available at
7: * https://www.eclipse.org/legal/epl-2.0/
8: *
9: * SPDX-License-Identifier: EPL-2.0
10: *
11: * Contributors:
12: * Neil Mackenzie - initial implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.emfstore.internal.core.rap;
15:
16: import org.eclipse.emf.ecp.core.rap.SessionProvider;
17: import org.eclipse.emf.ecp.emfstore.core.internal.ESWorkspaceProviderProvider;
18: import org.eclipse.emf.ecp.emfstore.core.internal.ESWorkspaceProviderProviderImpl;
19: import org.eclipse.rap.rwt.service.UISessionEvent;
20: import org.eclipse.rap.rwt.service.UISessionListener;
21: import org.osgi.framework.Bundle;
22: import org.osgi.framework.BundleContext;
23: import org.osgi.framework.FrameworkUtil;
24: import org.osgi.framework.ServiceFactory;
25: import org.osgi.framework.ServiceReference;
26: import org.osgi.framework.ServiceRegistration;
27:
28: /**
29: * This is the factory for creating the ESWorkspaceProviderProvider service.
30: *
31: * @author neilmack
32: *
33: */
34: public class ESWorkspaceProviderProviderFactory implements
35:         ServiceFactory<ESWorkspaceProviderProvider>, UISessionListener {
36:
37:         /**
38:          * The session provider used to retrieve the current session.
39:          */
40:         private SessionProvider sessionProvider;
41:
42:         /**
43:          * default constructor.
44:          */
45:         public ESWorkspaceProviderProviderFactory() {
46:                 init();
47:         }
48:
49:         /**
50:          * initialise the factory.
51:          */
52:         public void init() {
53:                 getSessionProvider();
54:         }
55:
56:         /**
57:          * this class retrieves the session provider. If the sessionProvider is
58:          * not set yet then it is created and set.
59:          *
60:          * @return the session provider
61:          */
62:         private SessionProvider getSessionProvider() {
63:•                if (sessionProvider == null) {
64:                         final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
65:                         final ServiceReference<SessionProvider> serviceReference = bundleContext
66:                                 .getServiceReference(SessionProvider.class);
67:                         sessionProvider = bundleContext.getService(serviceReference);
68:                 }
69:                 return sessionProvider;
70:         }
71:
72:         /**
73:          * this method returns the ESWorkspaceProviderProvider
74:          * service for the current session.
75:          * It is called by the OSGI framework.
76:          *
77:          * @param bundle the OSGI bundle
78:          * @param registration the service registration
79:          *
80:          * @return the service
81:          */
82:         @Override
83:         public final ESWorkspaceProviderProvider getService(final Bundle bundle,
84:                 final ServiceRegistration<ESWorkspaceProviderProvider> registration) {
85:                 ESWorkspaceProviderProvider esWorkspaceProviderProvider;
86:                 final String sessionId = getSessionProvider().getSessionId();
87:                 getSessionProvider().registerListenerWithSession(this);
88:                 esWorkspaceProviderProvider = new ESWorkspaceProviderProviderImpl(sessionId);
89:                 return esWorkspaceProviderProvider;
90:         }
91:
92:         @Override
93:         public void ungetService(final Bundle bundle,
94:                 final ServiceRegistration<ESWorkspaceProviderProvider> registration,
95:                 final ESWorkspaceProviderProvider service) {
96:                 // TODO Auto-generated method stub
97:
98:         }
99:
100:         /**
101:          * {@inheritDoc}
102:          *
103:          * @see org.eclipse.rap.rwt.service.UISessionListener#beforeDestroy(org.eclipse.rap.rwt.service.UISessionEvent)
104:          */
105:         @Override
106:         public void beforeDestroy(UISessionEvent event) {
107:                 // TODO Auto-generated method stub
108:                 ESWorkspaceProviderProviderImpl esWorkspaceProviderProvider;
109:                 final String sessionId = getSessionProvider().getSessionId();
110:                 esWorkspaceProviderProvider = new ESWorkspaceProviderProviderImpl(sessionId);
111:                 esWorkspaceProviderProvider.removeESWorkspaceProviderInstance();
112:
113:         }
114:
115: }