Skip to content

Package: ECPNotificationProvider

ECPNotificationProvider

nameinstructionbranchcomplexitylinemethod
ECPNotificationProvider()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
addObserver(InternalProvider)
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
bindManager(ECPProjectManager)
M: 0 C: 10
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
bindProviderRegistry(ECPProviderRegistry)
M: 0 C: 17
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
canDelete(EObject)
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
notify(Notification)
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
postDelete(EObject)
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%
preDelete(EObject)
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%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2015 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: * jfaltermeier - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.changebroker.provider.internal;
15:
16: import java.util.Collection;
17:
18: import org.eclipse.emf.common.notify.Notification;
19: import org.eclipse.emf.ecore.EObject;
20: import org.eclipse.emf.ecp.changebroker.spi.AbstractNotificationProvider;
21: import org.eclipse.emf.ecp.core.ECPProjectManager;
22: import org.eclipse.emf.ecp.core.ECPProvider;
23: import org.eclipse.emf.ecp.core.ECPProviderRegistry;
24: import org.eclipse.emf.ecp.core.util.ECPUtil;
25: import org.eclipse.emf.ecp.core.util.observer.ECPProvidersChangedObserver;
26: import org.eclipse.emf.ecp.spi.core.InternalProvider;
27: import org.eclipse.emf.ecp.spi.core.ProviderChangeListener;
28:
29: /**
30: * {@link org.eclipse.emf.ecp.changebroker.spi.NotificationProvider NotificationProvider} acting as a source for
31: * notifications from EMFStore.
32: *
33: * @author jfaltermeier
34: *
35: */
36: public class ECPNotificationProvider extends AbstractNotificationProvider implements ProviderChangeListener {
37:
38:         /**
39:          * Binds the project manager.
40:          *
41:          * @param manager the ecp project manager
42:          */
43:         public void bindManager(ECPProjectManager manager) {
44:                 manager.getProjects();
45:                 ECPUtil.getECPObserverBus().register(new ECPProvidersChangedObserver() {
46:                         @Override
47:                         public void providersChanged(Collection<ECPProvider> oldProviders, Collection<ECPProvider> newProviders) {
48:                                 for (final ECPProvider ecpProvider : newProviders) {
49:                                         addObserver((InternalProvider) ecpProvider);
50:                                 }
51:                         }
52:
53:                 });
54:         }
55:
56:         /**
57:          * Binds the provider registry.
58:          *
59:          * @param registry the registry
60:          */
61:         public void bindProviderRegistry(ECPProviderRegistry registry) {
62:•                for (final ECPProvider ecpProvider : registry.getProviders()) {
63:                         addObserver((InternalProvider) ecpProvider);
64:                 }
65:         }
66:
67:         private void addObserver(InternalProvider ecpProvider) {
68:                 ecpProvider.registerChangeListener(this);
69:         }
70:
71:         /**
72:          * {@inheritDoc}
73:          *
74:          * @see org.eclipse.emf.ecp.spi.core.ProviderChangeListener#notify(org.eclipse.emf.common.notify.Notification)
75:          */
76:         @Override
77:         public void notify(Notification notification) {
78:                 notifyAllReceivers(notification);
79:
80:         }
81:
82:         /**
83:          * {@inheritDoc}
84:          *
85:          * @see org.eclipse.emf.ecp.spi.core.ProviderChangeListener#postDelete(org.eclipse.emf.ecore.EObject)
86:          */
87:         @Override
88:         public void postDelete(EObject objectToBeDeleted) {
89:                 notifyPostDelete(objectToBeDeleted);
90:
91:         }
92:
93:         /**
94:          * {@inheritDoc}
95:          *
96:          * @see org.eclipse.emf.ecp.spi.core.ProviderChangeListener#preDelete(org.eclipse.emf.ecore.EObject)
97:          */
98:         @Override
99:         public void preDelete(EObject objectToBeDeleted) {
100:                 notifyPreDelete(objectToBeDeleted);
101:
102:         }
103:
104:         /**
105:          * {@inheritDoc}
106:          *
107:          * @see org.eclipse.emf.ecp.spi.core.ProviderChangeListener#canDelete(org.eclipse.emf.ecore.EObject)
108:          */
109:         @Override
110:         public boolean canDelete(EObject objectToBeDeleted) {
111:                 return notifyCanDelete(objectToBeDeleted);
112:         }
113:
114: }