Package org.kie.internal.utils

# Interface VariableIndexer<V>

Type Parameters:
  `V` - type of the object that will represent indexed variable

public interface VariableIndexer<V>
Variable indexer that allows to transform variable instance into other representation (usually string) to be able to use it for queries.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `accept(Object variable)`
  Tests if given variable shall be indexed by this indexer NOTE: only one indexer can be used for given variable
  `List<V>`
  `index(String name, Object variable)`
  Performs index/transform operation of the variable.

- ## Method Details

  - ### accept

    boolean accept(Object variable)
    Tests if given variable shall be indexed by this indexer NOTE: only one indexer can be used for given variable
    Parameters:
      `variable` - variable to be indexed
    Returns:
      true if variable should be indexed with this indexer

  - ### index

    List<V> index(String name, Object variable)
    Performs index/transform operation of the variable. Result of this operation can be either single value or list of values to support complex type separation. For example when variable is of type Person that has name, address phone indexer could build three entries out of it to represent individual fields: person = person.name address = person.address.street phone = person.phone that will allow more advanced queries to be used to find relevant entries.
    Parameters:
      `name` - name of the variable
      `variable` - actual variable value
    Returns: