Package: org.codehaus.groovy.runtime.m12n

## [Java] Class MetaInfExtensionModule

- org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule

-     public class MetaInfExtensionModule
      extends SimpleExtensionModule

  A SimpleExtensionModule implementation which reads extension class metadata from META-INF.

  Since:
    2.0.0

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static String` | `MODULE_INSTANCE_CLASSES_KEY` | Property key in META-INF configuration file for specifying instance method extension classes.
    `static String` | `MODULE_STATIC_CLASSES_KEY` | Property key in META-INF configuration file for specifying static method extension classes.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public List<Class>` | `getInstanceMethodsExtensionClasses()` Returns the list of classes that define new instance methods for this module.
    `` | `public List<Class>` | `getStaticMethodsExtensionClasses()` Returns the list of classes that define new static methods for this module.
    `` | `public static MetaInfExtensionModule` | `newModule(Properties properties, ClassLoader loader)` Creates a new MetaInfExtensionModule from the given properties and class loader.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class SimpleExtensionModule` | `getInstanceMethodsExtensionClasses, getMetaMethods, getStaticMethodsExtensionClasses`
    `class ExtensionModule` | `getMetaMethods, getName, getVersion, toString`

- - ### Field Detail

    - #### public static final String MODULE_INSTANCE_CLASSES_KEY

      Property key in META-INF configuration file for specifying instance method extension classes.

    - #### public static final String MODULE_STATIC_CLASSES_KEY

      Property key in META-INF configuration file for specifying static method extension classes.

  - ### Method Detail

    - #### public List<Class> getInstanceMethodsExtensionClasses()

      Returns the list of classes that define new instance methods for this module.

      Returns:
        the list of instance method extension classes

    - #### public List<Class> getStaticMethodsExtensionClasses()

      Returns the list of classes that define new static methods for this module.

      Returns:
        the list of static method extension classes

    - #### public static MetaInfExtensionModule newModule(Properties properties, ClassLoader loader)

      Creates a new MetaInfExtensionModule from the given properties and class loader. The properties should contain the module name and version, as well as class names for instance and static extension methods.

      throws:
        GroovyRuntimeException if required properties (name or version) are missing
      Parameters:
        `properties` - the module metadata properties
        `loader` - the class loader to use for loading extension classes
      Returns:
        a new MetaInfExtensionModule configured with the properties