Class ParametersCallbackMap

java.lang.Object
scriptella.driver.script.ParametersCallbackMap
All Implemented Interfaces:
Map<String,Object>, ParametersCallback
Direct Known Subclasses:
BindingsParametersCallback

public class ParametersCallbackMap extends Object implements ParametersCallback, Map<String,Object>
Map implementation of ParametersCallback for integration into Scriptella execution environment.

This class allows local variables to be set via put(String,Object) method.
getParameter(String) allows reading variables.

In query mode, a virtual variable query is available and exposes a method next() to populate result set.

Note: current implementation does not distinguish if a variable is absent or has a value of null.

Version:
1.0
Author:
Fyodor Kupolov
  • Constructor Details

    • ParametersCallbackMap

      public ParametersCallbackMap(ParametersCallback parentParameters)
      Initializes instance and set parent parameters to use in getParameter(String).
      Parameters:
      parentParameters - parent parameters.
    • ParametersCallbackMap

      public ParametersCallbackMap(ParametersCallback parentParameters, QueryCallback queryCallback)
      Initializes parameters callback for query element.
      Parameters:
      parentParameters - parent parameters.
      queryCallback - callback to notify on row iteration.
  • Method Details

    • getParameter

      public Object getParameter(String name)
      Returns specified variable value.

      The local variables set by put(String,Object) method take priority of variables in parentParameters object.

      Specified by:
      getParameter in interface ParametersCallback
      Parameters:
      name - variable name
      Returns:
      value of variable or null if variable not found.
    • get

      public Object get(Object key)
      Specified by:
      get in interface Map<String,Object>
      Parameters:
      key - variable name.
      Returns:
      value of variable.
    • containsKey

      public boolean containsKey(Object key)
      Specified by:
      containsKey in interface Map<String,Object>
    • put

      public Object put(String key, Object value)
      Sets local variable.
      Specified by:
      put in interface Map<String,Object>
      Parameters:
      key - variable name.
      value - variable value.
      Returns:
      previous variable value.
    • remove

      public Object remove(Object key)
      Removes local variable.
      Specified by:
      remove in interface Map<String,Object>
      Parameters:
      key - variable name.
      Returns:
      previous value.
    • putAll

      public void putAll(Map<? extends String,?> t)
      Registers local variables.
      Specified by:
      putAll in interface Map<String,Object>
      Parameters:
      t - local variables map.
    • clear

      public void clear()
      Clears local variables.
      Specified by:
      clear in interface Map<String,Object>
    • setQueryCallback

      public void setQueryCallback(QueryCallback queryCallback)
      Sets query callback and enables the query mode, i.e. query variable is exposed.
      Parameters:
      queryCallback - query callback.
    • next

      public void next()
      Executes nested elements and exposes local variables set by the current query.
    • isNextCalled

      public boolean isNextCalled()
      CRQ-12257. Returns true if next was called on this query.
      Returns:
      true if next was called on this query.
    • size

      public int size()
      Specified by:
      size in interface Map<String,Object>
    • isEmpty

      public boolean isEmpty()
      Specified by:
      isEmpty in interface Map<String,Object>
    • containsValue

      public boolean containsValue(Object value)
      Specified by:
      containsValue in interface Map<String,Object>
    • keySet

      public Set<String> keySet()
      Specified by:
      keySet in interface Map<String,Object>
    • values

      public Collection<Object> values()
      Specified by:
      values in interface Map<String,Object>
    • entrySet

      public Set<Map.Entry<String,Object>> entrySet()
      Specified by:
      entrySet in interface Map<String,Object>