package sk.stuba.fiit.perconik.core.debug.services.listeners; import java.util.Set; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet.Builder; import sk.stuba.fiit.perconik.core.Listener; import sk.stuba.fiit.perconik.core.debug.listeners.CommandDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.CommandExecutionDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.CommandManagerDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.CompletionDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.DebugEventsDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.DocumentDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.EditorDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.FileBufferDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.GitConfigurationDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.GitIndexDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.GitReferenceDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.GitRepositoryDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.JavaElementDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.LaunchConfigurationDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.LaunchDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.LaunchesDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.MarkSelectionDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.OperationHistoryDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.PageDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.PartDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.PerspectiveDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.RefactoringExecutionDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.RefactoringHistoryDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.ResourceDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.SearchQueryDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.SearchResultDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.SelectionDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.StructuredSelectionDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.TestRunDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.TextDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.TextInputDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.TextPresentationDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.TextSelectionDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.ViewDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.ViewportDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.WindowDebugListener; import sk.stuba.fiit.perconik.core.debug.listeners.WorkbenchDebugListener; import sk.stuba.fiit.perconik.core.services.listeners.ListenerProvider; import sk.stuba.fiit.perconik.core.services.listeners.ListenerProviders; public final class DebugListenerProviders { private static final Set<Class<? extends Listener>> classes; static { Builder<Class<? extends Listener>> builder = ImmutableSet.builder(); builder.add(CommandDebugListener.class); builder.add(CommandExecutionDebugListener.class); builder.add(CommandManagerDebugListener.class); builder.add(CompletionDebugListener.class); builder.add(DebugEventsDebugListener.class); builder.add(DocumentDebugListener.class); builder.add(EditorDebugListener.class); builder.add(FileBufferDebugListener.class); builder.add(GitConfigurationDebugListener.class); builder.add(GitIndexDebugListener.class); builder.add(GitReferenceDebugListener.class); builder.add(GitRepositoryDebugListener.class); builder.add(JavaElementDebugListener.class); builder.add(LaunchDebugListener.class); builder.add(LaunchesDebugListener.class); builder.add(LaunchConfigurationDebugListener.class); builder.add(MarkSelectionDebugListener.class); builder.add(OperationHistoryDebugListener.class); builder.add(PageDebugListener.class); builder.add(PartDebugListener.class); builder.add(PerspectiveDebugListener.class); builder.add(RefactoringExecutionDebugListener.class); builder.add(RefactoringHistoryDebugListener.class); builder.add(ResourceDebugListener.class); builder.add(SearchQueryDebugListener.class); builder.add(SearchResultDebugListener.class); builder.add(SelectionDebugListener.class); builder.add(StructuredSelectionDebugListener.class); builder.add(TestRunDebugListener.class); builder.add(TextDebugListener.class); builder.add(TextInputDebugListener.class); builder.add(TextPresentationDebugListener.class); builder.add(TextSelectionDebugListener.class); builder.add(ViewDebugListener.class); builder.add(ViewportDebugListener.class); builder.add(WindowDebugListener.class); builder.add(WorkbenchDebugListener.class); classes = builder.build(); } private DebugListenerProviders() {} public static DebugListenerProvider create() { return create(ListenerProviders.superListenerProvider()); } public static DebugListenerProvider create(final ListenerProvider parent) { ListenerProvider provider = ListenerProviders.builder().addAll(classes).parent(parent).build(); return DebugListenerProviderProxy.wrap(provider); } }