| Home >> All >> javax >> ide >> [ spi Javadoc ] |
Source code: javax/ide/spi/IDEListenerHook.java
1 package javax.ide.spi; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 import javax.ide.extension.ElementContext; 6 import javax.ide.extension.ElementName; 7 import javax.ide.extension.ElementStartContext; 8 import javax.ide.extension.ElementVisitor; 9 import javax.ide.extension.ExtensionHook; 10 import javax.ide.extension.MetaClassVisitor; 11 import javax.ide.util.MetaClass; 12 13 /** 14 * IDE listener information gathered from processing an extension manifest. 15 */ 16 public final class IDEListenerHook extends ExtensionHook 17 { 18 public static final ElementName ELEMENT = new ElementName( 19 MANIFEST_XMLNS, "ide-listener-hook" ); 20 private static final ElementName IDE_LISTENERS = new ElementName( 21 MANIFEST_XMLNS, "ide-listeners" ); 22 private static final ElementName IDE_LISTENER = new ElementName( 23 MANIFEST_XMLNS, "ide-listener" ); 24 25 private ElementVisitor _listenersVisitor = new ListenersVisitor(); 26 private ElementVisitor _listenerVisitor = new ListenerVisitor(); 27 28 private Collection _listeners = new ArrayList(); 29 30 /** 31 * Get the list of {@link javax.ide.IDEListener}s {@link MetaClass}es 32 * declared in the extension manifest. 33 * 34 * @return An array of ide listeners {@link MetaClass}es. If none available 35 * return a zero length array. 36 */ 37 public Collection getListeners() 38 { 39 return _listeners; 40 } 41 42 public void start( ElementStartContext context ) 43 { 44 context.registerChildVisitor( IDE_LISTENERS, _listenersVisitor ); 45 } 46 47 private class ListenersVisitor extends ElementVisitor 48 { 49 public void start( ElementStartContext context ) 50 { 51 context.registerChildVisitor( IDE_LISTENER, _listenerVisitor ); 52 } 53 } 54 55 private class ListenerVisitor extends MetaClassVisitor 56 { 57 public void metaClass( ElementContext context, MetaClass mc ) 58 { 59 _listeners.add( mc ); 60 } 61 } 62 }