Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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  }