| /** |
| * |
| * Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) |
| * |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation |
| */ |
| package org.eclipse.osbp.ide.core.ui.softwarefactory.extender; |
| |
| import java.util.Collection; |
| import java.util.Map; |
| import java.util.Set; |
| |
| public interface IModelExtenderProvider { |
| interface Event { |
| String getExtension(); |
| interface Source { |
| void addListener(Listener listener); |
| void removeListener(Listener listener); |
| void notifyListeners(IModelExtenderProvider.Event event); |
| Collection<IModelExtenderProvider.Event.Listener> getListenerList(); |
| void addExtension(IModelExtenderProvider.Event.Listener listener, String extension, IModelExtenderAdapter adapter) throws Exception; |
| void addExtension(IModelExtenderProvider.Event.Listener listener, BaseExtender baseExtender) throws Exception; |
| Map<String, ModelInstanceDescription> getModelInstanceDescriptionMap(IModelExtenderProvider.Event.Listener listener); |
| Set<String> getPending(); |
| void clearAll(); |
| } |
| |
| /** |
| * A listener for events raised by a {@link Event.Source}. |
| */ |
| interface Listener { |
| void modelExtended(Event event); |
| } |
| } |
| } |