package fr.opensagres.nosql.ide.core.internal.shell; import java.util.ArrayList; import java.util.List; import fr.opensagres.nosql.ide.core.shell.IShellCommandListener; import fr.opensagres.nosql.ide.core.shell.IShellCommandListenerAware; import fr.opensagres.nosql.ide.core.shell.IShellCommandManagerRegistry; public class ShellCommandManagerRegistry extends ArrayList<IShellCommandListenerAware> implements IShellCommandManagerRegistry { private static final IShellCommandManagerRegistry INSTANCE = new ShellCommandManagerRegistry(); private final List<IShellCommandListenerAware> managers; public ShellCommandManagerRegistry() { this.managers = new ArrayList<IShellCommandListenerAware>(); } public static IShellCommandManagerRegistry getInstance() { return INSTANCE; } public void addShellListener(IShellCommandListener listener) { for (IShellCommandListenerAware manager : this) { manager.addShellListener(listener); } } public void removeShellListener(IShellCommandListener listener) { for (IShellCommandListenerAware manager : this) { manager.removeShellListener(listener); } } public void addShellListener(IShellCommandListener listener, int eventMask) { for (IShellCommandListenerAware manager : this) { manager.addShellListener(listener, eventMask); } } @Override public boolean add(IShellCommandListenerAware e) { return super.add(e); } public boolean remove(IShellCommandListenerAware manager) { return super.remove(manager); } }