Class StoredScriptSource

All Implemented Interfaces:
Diffable<StoredScriptSource>, Writeable, ToXContent, ToXContentObject

public class StoredScriptSource extends AbstractDiffable<StoredScriptSource> implements Writeable, ToXContentObject
StoredScriptSource represents user-defined parameters for a script saved in the ClusterState.
  • Field Details


      public static final ParseField SCRIPT_PARSE_FIELD
      Standard ParseField for outer level of stored script source.

      public static final ParseField LANG_PARSE_FIELD
      Standard ParseField for lang on the inner level.

      public static final ParseField SOURCE_PARSE_FIELD
      Standard ParseField for source on the inner level.

      public static final ParseField OPTIONS_PARSE_FIELD
      Standard ParseField for options on the inner level.
  • Constructor Details

    • StoredScriptSource

      public StoredScriptSource(String lang, String source, Map<String,String> options)
      Standard StoredScriptSource constructor.
      lang - The language to compile the script with. Must not be null.
      source - The source source to compile with. Must not be null.
      options - Compiler options to be compiled with. Must not be null, use an empty Map to represent no options.
    • StoredScriptSource

      public StoredScriptSource(StreamInput in) throws IOException
      Reads a StoredScriptSource from a stream. Version 5.3+ will read all of the lang, source, and options parameters. For versions prior to 5.3, only the source parameter will be read in as a bytes reference.
  • Method Details

    • parse

      public static StoredScriptSource parse(BytesReference content, XContentType xContentType)
      This will parse XContent into a StoredScriptSource. The following formats can be parsed: The simple script format with no compiler options or user-defined params: Example: {"script": "return Math.log(doc.popularity) * 100;"} The above format requires the lang to be specified using the deprecated stored script namespace (as a url parameter during a put request). See ScriptMetadata for more information about the stored script namespaces. The complex script format using the new stored script namespace where lang and source are required but options is optional: { "script" : { "lang" : "<lang>", "source" : "<source>", "options" : { "option0" : "<option0>", "option1" : "<option1>", ... } } } Example: { "script": { "lang" : "painless", "source" : "return Math.log(doc.popularity) * params.multiplier" } } The use of "source" may also be substituted with "code" for backcompat with 5.3 to 5.5 format. For example: { "script" : { "lang" : "<lang>", "code" : "<source>", "options" : { "option0" : "<option0>", "option1" : "<option1>", ... } } } Note that the "source" parameter can also handle template parsing including from a complex JSON object.
      content - The content from the request to be parsed as described above.
      The parsed StoredScriptSource.
    • fromXContent

      public static StoredScriptSource fromXContent(XContentParser parser, boolean ignoreEmpty)
      This will parse XContent into a StoredScriptSource. The following format is what will be parsed: { "script" : { "lang" : "<lang>", "source" : "<source>", "options" : { "option0" : "<option0>", "option1" : "<option1>", ... } } } Note that the "source" parameter can also handle template parsing including from a complex JSON object.
      ignoreEmpty - Specify as true to ignoreEmpty the empty source check. This allows empty templates to be loaded for backwards compatibility.
    • readDiffFrom

      public static Diff<StoredScriptSource> readDiffFrom(StreamInput in) throws IOException
      Required for ScriptMetadata.ScriptMetadataDiff. Uses the StoredScriptSource(StreamInput) constructor.
    • writeTo

      public void writeTo(StreamOutput out) throws IOException
      Writes a StoredScriptSource to a stream. Will write all of the lang, source, and options parameters.
      Specified by:
      writeTo in interface Writeable
    • toXContent

      public XContentBuilder toXContent(XContentBuilder builder, ToXContent.Params params) throws IOException
      This will write XContent from a StoredScriptSource. The following format will be written: { "script" : { "lang" : "<lang>", "source" : "<source>", "options" : { "option0" : "<option0>", "option1" : "<option1>", ... } } } Note that the 'source' parameter can also handle templates written as complex JSON.
      Specified by:
      toXContent in interface ToXContent
    • getLang

      public String getLang()
      The language used for compiling this script.
    • getSource

      public String getSource()
      The source used for compiling this script.
    • getOptions

      public Map<String,String> getOptions()
      The compiler options used for this script.
    • equals

      public boolean equals(Object o)
      equals in class Object
    • hashCode

      public int hashCode()
      hashCode in class Object
    • toString

      public String toString()
      toString in class Object