Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 397900
Collapse All | Expand All

(-)src/org/eclipse/emf/ecp/validation/connector/Activator.java (-2 / +14 lines)
Lines 10-16 Link Here
10
 ******************************************************************************/
10
 ******************************************************************************/
11
package org.eclipse.emf.ecp.validation.connector;
11
package org.eclipse.emf.ecp.validation.connector;
12
12
13
import java.util.Arrays;
13
import java.util.HashSet;
14
import java.util.HashSet;
15
import java.util.List;
14
import java.util.Set;
16
import java.util.Set;
15
17
16
import org.eclipse.emf.ecore.EObject;
18
import org.eclipse.emf.ecore.EObject;
Lines 96-110 Link Here
96
	 * @return the validation service
98
	 * @return the validation service
97
	 */
99
	 */
98
	public IValidationService getValidationService(ECPProject project) {
100
	public IValidationService getValidationService(ECPProject project) {
101
		return getValidationServiceProvider().getValidationService(project);
102
	}
103
	
104
	private IValidationServiceProvider getValidationServiceProvider() {
99
		if (validationServiceProvider == null) {
105
		if (validationServiceProvider == null) {
100
			// Register directly with the service
106
			// Register directly with the service
101
			ServiceReference<IValidationServiceProvider> reference = context
107
			ServiceReference<IValidationServiceProvider> reference = context
102
				.getServiceReference(IValidationServiceProvider.class);
108
				.getServiceReference(IValidationServiceProvider.class);
103
			validationServiceProvider = (IValidationServiceProvider) context.getService(reference);
109
			validationServiceProvider = (IValidationServiceProvider) context.getService(reference);
104
		}
110
		}
105
		return validationServiceProvider.getValidationService(project);
111
		return validationServiceProvider;
106
	}
112
	}
107
113
	
108
	/**
114
	/**
109
	 * Project change observer that validates changed objects.
115
	 * Project change observer that validates changed objects.
110
	 */
116
	 */
Lines 112-117 Link Here
112
118
113
		// BEGIN SUPRESS CATCH EXCEPTION
119
		// BEGIN SUPRESS CATCH EXCEPTION
114
		public void projectsChanged(ECPProject[] oldProjects, ECPProject[] newProjects) throws Exception {
120
		public void projectsChanged(ECPProject[] oldProjects, ECPProject[] newProjects) throws Exception {
121
			List<ECPProject> newProjectList = Arrays.asList(newProjects);
122
			for (ECPProject project : oldProjects) {
123
				if (!newProjectList.contains(project)) {
124
					getValidationServiceProvider().deleteValidationService(project);
125
				}
126
			}
115
		}
127
		}
116
128
117
		public void projectChanged(ECPProject project, boolean opened) throws Exception {
129
		public void projectChanged(ECPProject project, boolean opened) throws Exception {
(-)src/org/eclipse/emf/ecp/validation/connector/ValidationServiceProvider.java (+7 lines)
Lines 82-85 Link Here
82
		}
82
		}
83
		return result; 
83
		return result; 
84
	}
84
	}
85
	
86
	/**
87
	 * {@inheritDoc}
88
	 */
89
	public void deleteValidationService(Object key) {
90
		mapping.remove(key);
91
	}
85
}
92
}
(-)src/org/eclipse/emf/ecp/validation/api/IValidationServiceProvider.java (+7 lines)
Lines 29-32 Link Here
29
	 */
29
	 */
30
	IValidationService getValidationService(Object key);
30
	IValidationService getValidationService(Object key);
31
	
31
	
32
	/**
33
	 * Deletes the validation service for the given object.
34
	 *
35
	 * @param key the object for which to delete the validation service
36
	 */
37
	void deleteValidationService(Object key);
38
	
32
}
39
}

Return to bug 397900