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 from 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 from 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()