/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.ui.editors; import java.util.HashMap; import org.eclipse.core.resources.IFile; import org.eclipse.emf.ecore.resource.Resource; import org.teiid.designer.core.workspace.ModelResource; import org.teiid.designer.core.workspace.ModelWorkspaceException; /** * OpenEditorMap * * @since 8.0 */ public class OpenEditorMap { private static final OpenEditorMap instance = new OpenEditorMap(); public static OpenEditorMap getInstance() { return instance; } /** key = ModelResource, value = ModelEditor */ private HashMap modelEditorMap = new HashMap(); /** key = IFile, value = ModelEditor */ private HashMap fileEditorMap = new HashMap(); /** key = Resource, value = ModelEditor */ private HashMap resourceEditorMap = new HashMap(); private OpenEditorMap() { } public synchronized boolean isEditorOpen(ModelResource modelResource) { return modelEditorMap.keySet().contains(modelResource); } public synchronized boolean isEditorOpen(IFile modelFile) { return fileEditorMap.keySet().contains(modelFile); } public synchronized boolean isEditorOpen(Resource emfResource) { return resourceEditorMap.keySet().contains(emfResource); } public synchronized ModelEditor getModelEditor(ModelResource modelResource) { return (ModelEditor) modelEditorMap.get(modelResource); } public synchronized ModelEditor getModelEditor(IFile modelFile) { return (ModelEditor) fileEditorMap.get(modelFile); } public synchronized ModelEditor getModelEditor(Resource emfResource) { return (ModelEditor) resourceEditorMap.get(emfResource); } synchronized void addModelEditor(ModelEditor editor, ModelResource resource) throws ModelWorkspaceException { modelEditorMap.put(resource, editor); fileEditorMap.put(resource.getResource(), editor); resourceEditorMap.put(resource.getEmfResource(), editor); } synchronized void removeModelEditor(ModelResource resource) throws ModelWorkspaceException { modelEditorMap.remove(resource); fileEditorMap.remove(resource.getResource()); resourceEditorMap.remove(resource.getEmfResource()); } }