Class SimpleExtensionModule
- java.lang.Object
- 
- org.codehaus.groovy.runtime.m12n.ExtensionModule
- 
- org.codehaus.groovy.runtime.m12n.SimpleExtensionModule
 
 
- 
- Direct Known Subclasses:
- MetaInfExtensionModule
 
 public abstract class SimpleExtensionModule extends ExtensionModule An extension module which provides extension methods using aDefaultGroovyMethods-like implementation, that is to say using static methods defined in an "extension class".For commodity, multiple extension classes may be defined in a single module, including classes used to define new static methods. Modules are required to implement the getInstanceMethodsExtensionClasses()for classes defining new instance methods, andgetStaticMethodsExtensionClasses()for classes defining static methods.For example, to define a module adding methods to the Stringclass, you can write a helper class:class StringExtension { public static int count(String self, char c) { int result = 0; for (int i=0;i<self.length(); i++) { if (self.charAt(i)==c) result++; } return result; } }This class defines a single static method taking the string instance as first argument, allowing to define a new instance method on the String class: String#count(char c) .To define a new static method on a class, as the static modifier is already used for instance methods, you must use another helper class, for example: class StaticStringExtension { public static void foo(String self) { System.out.println("foo"); } }The first argument of the method is only used to tell the class for which we add a static method. You can now define an extension module: class MyStringModule extends SimpleExtensionModule { // ... public List<Class> getInstanceMethodsExtensionClasses() { return Collections.singletonList(StringExtension.class); } public List<Class> getStaticMethodsExtensionClasses() { return Collections.singletonList(StaticStringExtension.class); } }- Since:
- 2.0.0
 
- 
- 
Constructor SummaryConstructors Constructor Description SimpleExtensionModule(java.lang.String moduleName, java.lang.String moduleVersion)
 - 
Method SummaryAll Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract java.util.List<java.lang.Class>getInstanceMethodsExtensionClasses()java.util.List<MetaMethod>getMetaMethods()abstract java.util.List<java.lang.Class>getStaticMethodsExtensionClasses()- 
Methods inherited from class org.codehaus.groovy.runtime.m12n.ExtensionModulegetName, getVersion, toString
 
- 
 
- 
- 
- 
Method Detail- 
getMetaMethodspublic java.util.List<MetaMethod> getMetaMethods() - Specified by:
- getMetaMethodsin class- ExtensionModule
 
 - 
getInstanceMethodsExtensionClassespublic abstract java.util.List<java.lang.Class> getInstanceMethodsExtensionClasses() - Returns:
- the list of classes defining new instance methods.
 
 - 
getStaticMethodsExtensionClassespublic abstract java.util.List<java.lang.Class> getStaticMethodsExtensionClasses() - Returns:
- the list of classes defining new static methods.
 
 
- 
 
-