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
    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: