blob: 62e7dd7feefebb321e4e3f0dc53a5477fe4f27dc [file] [log] [blame]
/**********************************************************************************
* Copyright (c) 2011, 2019 Mia-Software and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* Nicolas Guyomar (Mia-Software) - Bug 333652 Extension point offering the possibility to declare an EPackage browser
* Fabien Giquel (Mia-Software) -Bug 335218 - Extension point for registering EObject, EPackage, model editor
* Nicolas Bros (Mia-Software) - Bug 335218 - Extension point for registering EObject, EPackage, model editor
***********************************************************************************/
package org.eclipse.modisco.facet.util.emf.core;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.modisco.facet.util.emf.core.internal.registry.BrowserRegistry;
/**
* A registry for the {@link EObject}, {@link EPackage}, and {@link Resource} browser opener
* extension point. It can be used to open a default model browser (chosen by the user) or get a
* list of model browsers that can be opened on a model element, {@link EPackage} or
* {@link Resource}.
* @noimplement This interface is not intended to be implemented by clients.
* @noextend This interface is not intended to be extended by clients.
*/
public interface IBrowserRegistry {
public static IBrowserRegistry INSTANCE = new BrowserRegistry();
/**
* Browse the given package using the default EPackage browser opener
*
* @param ePackage
* the element to browse
*/
public void browseEPackage(EPackage ePackage);
/**
* Browse the given resource using the default Resource browser opener
*
* @param resource
* the element to browse
*/
public void browseResource(Resource resource);
/**
* Browse the given eObject using the default EObject browser opener
*
* @param eObject
* the element to browse
*/
public void browseEObject(EObject eObject);
/**
* @return the registered EPackage browser openers
*/
public List<IEPackageBrowserOpener> getAllRegisteredEPackageBrowsers();
/**
* @return the registered EObject browser openers
*/
public List<IEObjectBrowserOpener> getAllRegisteredEObjectBrowsers();
/**
* @return the registered Resource browser openers
*/
public List<IResourceBrowserOpener> getAllRegisteredResourceBrowsers();
/**
* @return the default EPackage browser opener, can be <code>null</code>
*/
public IEPackageBrowserOpener getDefaultEPackageBrowserOpener();
/**
* @return the default EObject browser opener, can be <code>null</code>
*/
public IEObjectBrowserOpener getDefaultEObjectBrowserOpener();
/**
* @return the default Resource browser opener, can be <code>null</code>
*/
public IResourceBrowserOpener getDefaultResourceBrowserOpener();
}