package sk.stuba.fiit.perconik.core.listeners; import java.util.Set; import sk.stuba.fiit.perconik.core.Listener; import sk.stuba.fiit.perconik.core.resources.DefaultResources; import sk.stuba.fiit.perconik.core.services.Services; import sk.stuba.fiit.perconik.core.services.listeners.ListenerClassesSupplier; import sk.stuba.fiit.perconik.core.services.listeners.ListenerManager; import sk.stuba.fiit.perconik.core.services.listeners.ListenerManagers; import sk.stuba.fiit.perconik.core.services.listeners.ListenerProvider; import sk.stuba.fiit.perconik.core.services.listeners.ListenerProviders; import sk.stuba.fiit.perconik.core.services.listeners.ListenerService; import sk.stuba.fiit.perconik.core.services.listeners.ListenerServices; import static sk.stuba.fiit.perconik.core.resources.DefaultResources.registerTo; import static sk.stuba.fiit.perconik.core.resources.DefaultResources.unregisterFrom; /** * Static accessor methods pertaining to default listener core implementation. * * <p>The core implementation includes default {@code Listener} * implementation classes along with respective {@code ListenerClassesSupplier} * as well as default {@code ListenerService}, {@code ListenerProvider} * and {@code ListenerManager}. * * <p>The default implementations of listeners as well as listener provider, * manager and service are still available by this class even if the respective * listeners are unregistered from the core or the services are switched or * stopped. * * <p><b>Note:</b> The core listener implementation currently does not include * any default listener implementations, but this is subject to change in the * future releases. * * @author Pavol Zbell * @since 1.0 */ public final class DefaultListeners { private DefaultListeners() {} /** * Creates the default listener provider. The returned provider is a * standard listener provider constructed using the standard provider * builder from {@link ListenerProviders#builder()} factory method. * Its direct parent and the only predecessor in the listener provider * hierarchy is the system listener provider. * * @return the default listener provider * * @see ListenerProvider * @see ListenerProviders#builder() * @see ListenerProviders#superListenerProvider() */ public static ListenerProvider createListenerProvider() { return ListenerProviders.builder().build(); } /** * Creates the default listener manager. The returned * manager is a standard listener manager constructed by * the {@link ListenerManagers#create()} factory method. * * @return the default listener manager * * @see ListenerManager * @see ListenerManagers#create() */ public static ListenerManager createListenerManager() { return ListenerManagers.create(); } /** * Creates the default listener service. The returned service is a * standard listener service constructed using the standard service * builder from {@link ListenerServices#builder()} factory method. * It contains the default listener provider and manager. * * @return the default listener service * * @see ListenerService * @see ListenerServices#builder() * @see #createListenerProvider() * @see #createListenerManager() */ public static ListenerService createListenerService() { return ListenerServices.builder().provider(createListenerProvider()).manager(createListenerManager()).build(); } /** * Creates the default listener implementation classes supplier. * The built supplier dynamically supplies listener implementation * classes based on the currently used {@code ListenerProvider} obtained * by this {@code Services.getListenerService().getListenerProvider()} * method call at supplying. * * <p><b>Note:</b> The returned supplier always supplies an empty set * because the core listener implementation currently does not include * any default listener implementations, but this is subject to change * in the future releases. * * @return the default listener classes supplier * * @see ListenerClassesSupplier * @see #createListenerProvider() */ public static ListenerClassesSupplier createListenerClassesSupplier() { return new ListenerClassesSupplier() { public Set<Class<? extends Listener>> get() { return Services.getListenerService().getListenerProvider().classes(); } }; } public static void register(final CommandListener listener) { registerTo(DefaultResources.getCommandResource(), listener); } public static void register(final CommandCategoryListener listener) { registerTo(DefaultResources.getCommandCategoryResource(), listener); } public static void register(final CommandContextListener listener) { registerTo(DefaultResources.getCommandContextResource(), listener); } public static void register(final CommandContextManagerListener listener) { registerTo(DefaultResources.getCommandContextManagerResource(), listener); } public static void register(final CommandExecutionListener listener) { registerTo(DefaultResources.getCommandExecutionResource(), listener); } public static void register(final CommandHandlerListener listener) { registerTo(DefaultResources.getCommandHandlerResource(), listener); } public static void register(final CommandManagerListener listener) { registerTo(DefaultResources.getCommandManagerResource(), listener); } public static void register(final CompletionListener listener) { registerTo(DefaultResources.getCompletionResource(), listener); } public static void register(final DebugEventsListener listener) { registerTo(DefaultResources.getDebugEventsResource(), listener); } public static void register(final DocumentListener listener) { registerTo(DefaultResources.getDocumentResource(), listener); } public static void register(final EditorListener listener) { registerTo(DefaultResources.getEditorResource(), listener); } public static void register(final FileBufferListener listener) { registerTo(DefaultResources.getFileBufferResource(), listener); } public static void register(final GitConfigurationListener listener) { registerTo(DefaultResources.getGitConfigurationResource(), listener); } public static void register(final GitIndexListener listener) { registerTo(DefaultResources.getGitIndexResource(), listener); } public static void register(final GitReferenceListener listener) { registerTo(DefaultResources.getGitReferenceResource(), listener); } public static void register(final GitRepositoryListener listener) { registerTo(DefaultResources.getGitRepositoryResource(), listener); } public static void register(final JavaElementListener listener) { registerTo(DefaultResources.getJavaElementResource(), listener); } public static void register(final LaunchListener listener) { registerTo(DefaultResources.getLaunchResource(), listener); } public static void register(final LaunchesListener listener) { registerTo(DefaultResources.getLaunchesResource(), listener); } public static void register(final LaunchConfigurationListener listener) { registerTo(DefaultResources.getLaunchConfigurationResource(), listener); } public static void register(final MarkSelectionListener listener) { registerTo(DefaultResources.getMarkSelectionResource(), listener); } public static void register(final OperationHistoryListener listener) { registerTo(DefaultResources.getOperationHistoryResource(), listener); } public static void register(final PageListener listener) { registerTo(DefaultResources.getPageResource(), listener); } public static void register(final PartListener listener) { registerTo(DefaultResources.getPartResource(), listener); } public static void register(final PerspectiveListener listener) { registerTo(DefaultResources.getPerspectiveResource(), listener); } public static void register(final RefactoringExecutionListener listener) { registerTo(DefaultResources.getRefactoringExecutionResource(), listener); } public static void register(final RefactoringHistoryListener listener) { registerTo(DefaultResources.getRefactoringHistoryResource(), listener); } public static void register(final ResourceListener listener) { registerTo(DefaultResources.getResourceResource(), listener); } public static void register(final SearchQueryListener listener) { registerTo(DefaultResources.getSearchQueryResource(), listener); } public static void register(final SearchResultListener listener) { registerTo(DefaultResources.getSearchResultResource(), listener); } public static void register(final SelectionListener listener) { registerTo(DefaultResources.getSelectionResource(), listener); } public static void register(final StructuredSelectionListener listener) { registerTo(DefaultResources.getStructuredSelectionResource(), listener); } public static void register(final TestRunListener listener) { registerTo(DefaultResources.getTestRunResource(), listener); } public static void register(final TextListener listener) { registerTo(DefaultResources.getTextResource(), listener); } public static void register(final TextInputListener listener) { registerTo(DefaultResources.getTextInputResource(), listener); } public static void register(final TextPresentationListener listener) { registerTo(DefaultResources.getTextPresentationResource(), listener); } public static void register(final TextSelectionListener listener) { registerTo(DefaultResources.getTextSelectionResource(), listener); } public static void register(final ViewListener listener) { registerTo(DefaultResources.getViewResource(), listener); } public static void register(final ViewportListener listener) { registerTo(DefaultResources.getViewportResource(), listener); } public static void register(final WindowListener listener) { registerTo(DefaultResources.getWindowResource(), listener); } public static void register(final WorkbenchListener listener) { registerTo(DefaultResources.getWorkbenchResource(), listener); } public static void unregister(final CommandListener listener) { unregisterFrom(DefaultResources.getCommandResource(), listener); } public static void unregister(final CommandCategoryListener listener) { unregisterFrom(DefaultResources.getCommandCategoryResource(), listener); } public static void unregister(final CommandContextListener listener) { unregisterFrom(DefaultResources.getCommandContextResource(), listener); } public static void unregister(final CommandContextManagerListener listener) { unregisterFrom(DefaultResources.getCommandContextManagerResource(), listener); } public static void unregister(final CommandExecutionListener listener) { unregisterFrom(DefaultResources.getCommandExecutionResource(), listener); } public static void unregister(final CommandHandlerListener listener) { unregisterFrom(DefaultResources.getCommandHandlerResource(), listener); } public static void unregister(final CommandManagerListener listener) { unregisterFrom(DefaultResources.getCommandManagerResource(), listener); } public static void unregister(final CompletionListener listener) { unregisterFrom(DefaultResources.getCompletionResource(), listener); } public static void unregister(final DebugEventsListener listener) { unregisterFrom(DefaultResources.getDebugEventsResource(), listener); } public static void unregister(final DocumentListener listener) { unregisterFrom(DefaultResources.getDocumentResource(), listener); } public static void unregister(final EditorListener listener) { unregisterFrom(DefaultResources.getEditorResource(), listener); } public static void unregister(final FileBufferListener listener) { unregisterFrom(DefaultResources.getFileBufferResource(), listener); } public static void unregister(final GitConfigurationListener listener) { unregisterFrom(DefaultResources.getGitConfigurationResource(), listener); } public static void unregister(final GitIndexListener listener) { unregisterFrom(DefaultResources.getGitIndexResource(), listener); } public static void unregister(final GitReferenceListener listener) { unregisterFrom(DefaultResources.getGitReferenceResource(), listener); } public static void unregister(final GitRepositoryListener listener) { unregisterFrom(DefaultResources.getGitRepositoryResource(), listener); } public static void unregister(final JavaElementListener listener) { unregisterFrom(DefaultResources.getJavaElementResource(), listener); } public static void unregister(final LaunchListener listener) { unregisterFrom(DefaultResources.getLaunchResource(), listener); } public static void unregister(final LaunchesListener listener) { unregisterFrom(DefaultResources.getLaunchesResource(), listener); } public static void unregister(final LaunchConfigurationListener listener) { unregisterFrom(DefaultResources.getLaunchConfigurationResource(), listener); } public static void unregister(final MarkSelectionListener listener) { unregisterFrom(DefaultResources.getMarkSelectionResource(), listener); } public static void unregister(final OperationHistoryListener listener) { unregisterFrom(DefaultResources.getOperationHistoryResource(), listener); } public static void unregister(final PageListener listener) { unregisterFrom(DefaultResources.getPageResource(), listener); } public static void unregister(final PartListener listener) { unregisterFrom(DefaultResources.getPartResource(), listener); } public static void unregister(final PerspectiveListener listener) { unregisterFrom(DefaultResources.getPerspectiveResource(), listener); } public static void unregister(final RefactoringExecutionListener listener) { unregisterFrom(DefaultResources.getRefactoringExecutionResource(), listener); } public static void unregister(final RefactoringHistoryListener listener) { unregisterFrom(DefaultResources.getRefactoringHistoryResource(), listener); } public static void unregister(final ResourceListener listener) { unregisterFrom(DefaultResources.getResourceResource(), listener); } public static void unregister(final SearchQueryListener listener) { unregisterFrom(DefaultResources.getSearchQueryResource(), listener); } public static void unregister(final SearchResultListener listener) { unregisterFrom(DefaultResources.getSearchResultResource(), listener); } public static void unregister(final SelectionListener listener) { unregisterFrom(DefaultResources.getSelectionResource(), listener); } public static void unregister(final StructuredSelectionListener listener) { unregisterFrom(DefaultResources.getStructuredSelectionResource(), listener); } public static void unregister(final TestRunListener listener) { unregisterFrom(DefaultResources.getTestRunResource(), listener); } public static void unregister(final TextListener listener) { unregisterFrom(DefaultResources.getTextResource(), listener); } public static void unregister(final TextInputListener listener) { unregisterFrom(DefaultResources.getTextInputResource(), listener); } public static void unregister(final TextPresentationListener listener) { unregisterFrom(DefaultResources.getTextPresentationResource(), listener); } public static void unregister(final TextSelectionListener listener) { unregisterFrom(DefaultResources.getTextSelectionResource(), listener); } public static void unregister(final ViewListener listener) { unregisterFrom(DefaultResources.getViewResource(), listener); } public static void unregister(final ViewportListener listener) { unregisterFrom(DefaultResources.getViewportResource(), listener); } public static void unregister(final WindowListener listener) { unregisterFrom(DefaultResources.getWindowResource(), listener); } public static void unregister(final WorkbenchListener listener) { unregisterFrom(DefaultResources.getWorkbenchResource(), listener); } }