*vim-java-delegate*


Delegate Methods
****************

*:JavaDelegate*

Eclim supports generation of delegate methods via the :JavaDelegate
command. To utilize this functionality you must first place the cursor
on a global field (in the main source file class or within an inner
class), and then invoke the :JavaDelegate command.

In the following source, you can place the cursor anywhere starting
from the first 'p' in private, to the trailing semicolon, and then
invoke the :JavaDelegate command.

>

   private List myList;

<


Invoking this command with the cursor on some other source element
will generate the appropriate error.

Once successfully invoked, the result will be the opening of a lower
window with all the methods that may be inserted that will delegate to
the value of the field.

Here is a section of the content displayed when invoking the command
on a field of type java.util.List like the one above.

>

   com.test.TestList

   package java.util;
   public interface List
     public abstract int size ()
     public abstract boolean isEmpty ()
     public abstract boolean contains (Object o)
     public abstract Object[] toArray ()
     ...

<


From this newly opened window you can select a method by simply
hitting <enter> with the cursor over the method signature and a
delegate method will be created.

For example, if you hit <enter> on the size() method, then the
following code will be inserted.

>

   /**
    */
   public int size ()
   {
     return myList.size();
   }

<


If you would like to generate delegate methods for all methods in an
interface or class, then simply hit <enter> with the cursor over the
class name, and delegate methods will be created for each method in
that interface or class.

Note: The insertion of method stubs is done externally with Eclipse and
  with that comes a couple caveats (|vim-issues|).

This functionality is currently supported for both outer and inner
classes, but not for anonymous inner classes.

vim:ft=eclimhelp