Class StoredScriptSource

    • Field Detail

      • SCRIPT_PARSE_FIELD

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

        public static final ParseField TEMPLATE_PARSE_FIELD
        Standard ParseField for outer level of stored script source.
      • TEMPLATE_NO_WRAPPER_PARSE_FIELD

        public static final ParseField TEMPLATE_NO_WRAPPER_PARSE_FIELD
        Standard ParseField for query on the inner field.
      • LANG_PARSE_FIELD

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

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

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

      • StoredScriptSource

        public StoredScriptSource​(java.lang.String source)
        Constructor for use with GetStoredScriptResponse to support the deprecated stored script namespace.
      • StoredScriptSource

        public StoredScriptSource​(java.lang.String lang,
                                  java.lang.String source,
                                  java.util.Map<java.lang.String,​java.lang.String> options)
        Standard StoredScriptSource constructor.
        Parameters:
        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 java.io.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.
        Throws:
        java.io.IOException
    • Method Detail

      • 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>", ... } } } The simple template format: { "query" : ... } The complex template format: { "template": { "query" : ... } } Note that templates can be handled as both strings and complex JSON objects. Also templates may be part of the 'source' parameter in a script. The Parser can handle this case as well.
        Parameters:
        content - The content from the request to be parsed as described above.
        Returns:
        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.
        Parameters:
        ignoreEmpty - Specify as true to ignoreEmpty the empty source check. This allows empty templates to be loaded for backwards compatibility.
      • writeTo

        public void writeTo​(StreamOutput out)
                     throws java.io.IOException
        Writes a StoredScriptSource to a stream. Version 5.3+ will write 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.
        Specified by:
        writeTo in interface Writeable
        Throws:
        java.io.IOException
      • toXContent

        public XContentBuilder toXContent​(XContentBuilder builder,
                                          ToXContent.Params params)
                                   throws java.io.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
        Throws:
        java.io.IOException
      • getLang

        public java.lang.String getLang()
        Returns:
        The language used for compiling this script.
      • getSource

        public java.lang.String getSource()
        Returns:
        The source used for compiling this script.
      • getOptions

        public java.util.Map<java.lang.String,​java.lang.String> getOptions()
        Returns:
        The compiler options used for this script.
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object