blob: ad35ff8d3e24f19f1b17d880529cc9a6bb0d5fbc [file] [log] [blame]
/**
*
* 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);
}
}
}