Package: org.codehaus.groovy.jsr223

## [Java] Class GroovyScriptEngineFactory

- org.codehaus.groovy.jsr223.GroovyScriptEngineFactory

- All Implemented Interfaces and Traits:
    ScriptEngineFactory

      public class GroovyScriptEngineFactory
      extends Object
      implements ScriptEngineFactory

  A factory class conforming to JSR-223 which is used to instantiate Groovy `ScriptEngines` and also exposes metadata describing Groovy's engine class. Adapted from original by Mike Grogan and A. Sundararajan

- - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public String` | `getEngineName()`
    `` | `public String` | `getEngineVersion()` Note that the scripting.dev.java.net engine had this backwards.
    `` | `public List<String>` | `getExtensions()`
    `` | `public String` | `getLanguageName()` This is also different than scripting.dev.java.net which used an initial lowercase.
    `` | `public String` | `getLanguageVersion()`
    `` | `public String` | `getMethodCallSyntax(String obj, String method, String args)`
    `` | `public List<String>` | `getMimeTypes()`
    `` | `public List<String>` | `getNames()`
    `` | `public String` | `getOutputStatement(String toDisplay)`
    `` | `public Object` | `getParameter(String key)`
    `` | `public String` | `getProgram(String statements)`
    `` | `public ScriptEngine` | `getScriptEngine()`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Method Detail

    - #### @Override public String getEngineName()

    - #### @Override public String getEngineVersion()

      Note that the scripting.dev.java.net engine had this backwards. The engine version refers to this engine implementation. Whereas language version refers to the groovy implementation (which is obtained from the runtime).

    - #### @Override public List<String> getExtensions()

    - #### @Override public String getLanguageName()

      This is also different than scripting.dev.java.net which used an initial lowercase. But these are proper names and should be capitalized.

    - #### @Override public String getLanguageVersion()

    - #### @Override public String getMethodCallSyntax(String obj, String method, String args)

    - #### @Override public List<String> getMimeTypes()

    - #### @Override public List<String> getNames()

    - #### @Override public String getOutputStatement(String toDisplay)

    - #### @Override public Object getParameter(String key)

    - #### @Override public String getProgram(String statements)

    - #### @Override public ScriptEngine getScriptEngine()