Package org.apache.torque.generator.template.groovy

## Class GroovyOutlet

- java.lang.Object
- - org.apache.torque.generator.outlet.OutletImpl
  - - org.apache.torque.generator.template.TemplateOutletImpl
    - - org.apache.torque.generator.template.groovy.GroovyOutlet

- All Implemented Interfaces:
    `Outlet`, `TemplateOutlet`
  Direct Known Subclasses:
    `GroovyScriptOutlet`, `GroovyTemplateOutlet`

      public abstract class GroovyOutlet
      extends TemplateOutletImpl

  A Outlet which uses groovy for generation.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `NULL_KEY_BINDING_NAME` | The key under which the null attribute of a source element is put into the binding.
    `static String` | `TORQUE_GEN_BINDING_NAME` | The name under which the Torque generator interface will be put into the binding.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `GroovyOutlet​(QualifiedName name, ConfigurationProvider configurationProvider, String path, String encoding)` | Constructs a new GroovyOutlet.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Map<String,​Object>` | `createBinding​(ControllerState controllerState)` |
    `OutletResult` | `execute​(ControllerState controllerState)` | Executes the generation process; the result is returned.
    `protected abstract String` | `executeGroovy​(Map<String,​Object> binding, ControllerState controllerState)` | Executes the Groovy script or template and retuns the reult.
    `boolean` | `isOptionsInBinding()` | Returns whether all options which namespaces are visible to the name space of this outlet are put into the binding.
    `boolean` | `isSourceAttributesInBinding()` | Returns whether the attributes of the current source element are put into the binding.
    `boolean` | `isVariablesInBinding()` | Returns whether all variables which are visible to this outlet are put into the binding.
    `void` | `setOptionsInBinding​(boolean optionsInBinding)` | Tells the outlet to put all options which name space is visible to the namespace of this outlet into the binding.
    `void` | `setSourceAttributesInBinding​(boolean sourceAttributesInBinding)` | Tells the outlet to put the attributes of the current source element into the binding or not.
    `void` | `setVariablesInContext​(boolean variablesInBinding)` | Tells the outlet to put all variables which are visible to this outlet into the binding.

    - ### Methods inherited from class org.apache.torque.generator.template.TemplateOutletImpl

      `getContent, getDetokenizedPath, getPath, load, toString`

    - ### Methods inherited from class org.apache.torque.generator.outlet.OutletImpl

      `addMergepointMapping, afterExecute, beforeExecute, getInputClass, getInputElementName, getMergepointMapping, getMergepointMappings, getName, getVariable, mergepoint, setInputClass, setInputElementName, setMergepointMapping, setVariable, setVariable`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.torque.generator.outlet.Outlet

      `addMergepointMapping, afterExecute, beforeExecute, getInputClass, getInputElementName, getMergepointMapping, getMergepointMappings, getName, setInputClass, setInputElementName, setMergepointMapping`

- - ### Field Detail

    - #### TORQUE_GEN_BINDING_NAME

          public static final String TORQUE_GEN_BINDING_NAME

      The name under which the Torque generator interface will be put into the binding.
      See Also:
        Constant Field Values

    - #### NULL_KEY_BINDING_NAME

          public static final String NULL_KEY_BINDING_NAME

      The key under which the null attribute of a source element is put into the binding.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### GroovyOutlet

          public GroovyOutlet​(QualifiedName name,
                              ConfigurationProvider configurationProvider,
                              String path,
                              String encoding)
                       throws ConfigurationException

      Constructs a new GroovyOutlet.
      Parameters:
        `name` - the name of this outlet, not null.
        `configurationProvider` - the provider for reading the templates, not null.
        `path` - the path to the templates, not null.
        `encoding` - the encoding of the file, or null if the system's default encoding should be used.
      Throws:
        `NullPointerException` - if name, path or directories are null.
        `ConfigurationException` - if an error occurs while reading the template.

  - ### Method Detail

    - #### execute

          public OutletResult execute​(ControllerState controllerState)
                               throws GeneratorException

      Executes the generation process; the result is returned.
      Specified by:
        `execute` in interface `Outlet`
      Specified by:
        `execute` in class `OutletImpl`
      Parameters:
        `controllerState` - the current controller state.
      Returns:
        the result of the generation, not null.
      Throws:
        `GeneratorException` - if generation fails.
      See Also:
        `Outlet.execute(ControllerState)`

    - #### executeGroovy

          protected abstract String executeGroovy​(Map<String,​Object> binding,
                                                  ControllerState controllerState)
                                           throws GeneratorException

      Executes the Groovy script or template and retuns the reult.
      Parameters:
        `binding` - the binding, not null.
        `controllerState` - the controller state, not null.
      Returns:
        the generation result.
      Throws:
        `GeneratorException` - if generation fails.

    - #### createBinding

          public Map<String,​Object> createBinding​(ControllerState controllerState)

    - #### setOptionsInBinding

          public void setOptionsInBinding​(boolean optionsInBinding)

      Tells the outlet to put all options which name space is visible to the namespace of this outlet into the binding. Only the variable names are used as keys in the context, the namespaces are stripped.
      Parameters:
        `optionsInBinding` - whether to put the options into the context.

    - #### isOptionsInBinding

          public boolean isOptionsInBinding()

      Returns whether all options which namespaces are visible to the name space of this outlet are put into the binding.
      Returns:
        whether the outlet puts the options into the context.

    - #### setVariablesInContext

          public void setVariablesInContext​(boolean variablesInBinding)

      Tells the outlet to put all variables which are visible to this outlet into the binding. Only the variable names are used as keys in the binding, the namespaces are stripped.
      Parameters:
        `variablesInBinding` - whether to put the variables into the context.

    - #### isVariablesInBinding

          public boolean isVariablesInBinding()

      Returns whether all variables which are visible to this outlet are put into the binding.
      Returns:
        whether the outlet puts the variables into the binding.

    - #### setSourceAttributesInBinding

          public void setSourceAttributesInBinding​(boolean sourceAttributesInBinding)

      Tells the outlet to put the attributes of the current source element into the binding or not.
      Parameters:
        `sourceAttributesInBinding` - whether to put the source attributes into the binding.

    - #### isSourceAttributesInBinding

          public boolean isSourceAttributesInBinding()

      Returns whether the attributes of the current source element are put into the binding.
      Returns:
        whether the outlet puts the attributes of the current source element into the binding.