blob: 5c4a6ddcbf798a979bb246d0aa8af8f0bd4e3ae9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
package rba.tool.editor.ui.resource
import com.google.inject.Singleton
import java.util.concurrent.ConcurrentHashMap
import org.eclipse.core.resources.IProject
import org.eclipse.emf.ecore.resource.ResourceSet
import org.eclipse.xtext.ui.resource.SimpleResourceSetProvider
@Singleton
class RBAModelResourceSetProvider extends SimpleResourceSetProvider {
private ConcurrentHashMap<IProject, ResourceSet> projectXtextResourceSetMap = new ConcurrentHashMap<IProject, ResourceSet>();
override get(IProject project) {
val ResourceSet result = super.get(project);
if(project !== null) {
if(projectXtextResourceSetMap.containsKey(project)) {
projectXtextResourceSetMap.remove(project);
}
projectXtextResourceSetMap.put(project, result);
}
return result;
}
def public ResourceSet getResourceSet(IProject project) {
if(project === null) {
return get(project);
} else {
return projectXtextResourceSetMap.get(project) ?: get(project);
}
}
def public void setResourceSet(IProject project, ResourceSet resourceSet) {
projectXtextResourceSetMap.put(project, resourceSet);
}
}
|