Package com.isomorphic.criteria

# Class Evaluator

java.lang.Object
com.isomorphic.criteria.Evaluator

public class Evaluator extends Object
Helper class for evaluating criteria.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addSearchOperator(Operator op)`
  Adding custom operator for using in evaluations.
  `boolean`
  `evaluateCriterion(Map values, Criterion criterion)`
  Evaluating criterion with map of values.
  `static Object`
  `getPathValue(Map values, String fieldPath)`
  Fetches the value stored at the given dot notation path in the map of values.
  `static String`
  `getPathValueAsString(Map values, String fieldPath)`
  Fetches the value stored at the given dot notation path in the map of values as a string.
  `static AdvancedCriteria`
  `parseAdvancedCriteria(Map rawCriteria)`
  Builds an `AdvancedCriteria` instance from a structure expressing `AdvancedCriteria` as simple Java Collections, that is, nested `Maps` and `Lists` where a `Criterion` is expressed as a `Map` containing keys such as "fieldName", "operator", and "value".
  `static Criterion`
  `parseCriterion(Map rawCriteria)`
  Parse criterion represented as map (usually passed from client-side) into Criterion instance.
  `boolean`
  `valuesMatchCriteria(Map values, AdvancedCriteria ac)`
  Check values map for matching passed AdvancedCriteria.
  `boolean`
  `valuesMatchCriteria(Map values, SimpleCriteria sc, String textMatchStyle)`
  Check values map for matching passed Criteria.

- ## Method Details

  - ### addSearchOperator

    public void addSearchOperator(Operator op)
    Adding custom operator for using in evaluations.
    Parameters:
      `op` - - operator to be added.

  - ### valuesMatchCriteria

    public boolean valuesMatchCriteria(Map values, SimpleCriteria sc, String textMatchStyle) throws Exception
    Check values map for matching passed Criteria.
    Parameters:
      `values` - - map of values to check.
      `sc` - - criteria to check.
      `textMatchStyle` - - style to be used when checking.
    Returns:
      true if values match criteria.
    Throws:
      `Exception` - if an error occurs during criteria evaluation

  - ### valuesMatchCriteria

    public boolean valuesMatchCriteria(Map values, AdvancedCriteria ac) throws Exception
    Check values map for matching passed AdvancedCriteria.
    Parameters:
      `values` - - map of values to check.
      `ac` - - AdvancedCriteria to check.
    Returns:
      true if values match AdvancedCriteria.
    Throws:
      `Exception` - if an error occurs during criteria evaluation

  - ### evaluateCriterion

    public boolean evaluateCriterion(Map values, Criterion criterion) throws Exception
    Evaluating criterion with map of values. The method check that passed criterion match passed values.
    Parameters:
      `values` - - map of values to check.
      `criterion` - - criterion to check.
    Returns:
      true if values match Criterion.
    Throws:
      `Exception` - if an error occurs during criterion evaluation

  - ### parseAdvancedCriteria

    public static AdvancedCriteria parseAdvancedCriteria(Map rawCriteria)
    Builds an `AdvancedCriteria` instance from a structure expressing `AdvancedCriteria` as simple Java Collections, that is, nested `Maps` and `Lists` where a `Criterion` is expressed as a `Map` containing keys such as "fieldName", "operator", and "value".

    For all built-in operators (see `DefaultOperators`), instances of the most specific `Criterion` class available will be created. Custom operators passed to `addSearchOperator(Operator)` with a `criterionClass` specified will create an instance of that `criterionClass` and apply the key/value pairs found in the `Map` specifying the criterion via `DataTools.setProperties(Map, Object)`.

    For unrecoginized operators, an instance of `CustomCriterion` will be created and populated with values from the `Map` specifying the `Criterion`.

    Parameters:
      `rawCriteria` - map representation of the criteria to parse
    Returns:
      parsed AdvancedCriteria instance

  - ### parseCriterion

    public static Criterion parseCriterion(Map rawCriteria)
    Parse criterion represented as map (usually passed from client-side) into Criterion instance.
    Parameters:
      `rawCriteria` - - criterion represented as map.
    Returns:
      parsed criterion.

  - ### getPathValue

    public static Object getPathValue(Map values, String fieldPath)
    Fetches the value stored at the given dot notation path in the map of values.
    Parameters:
      `values` - the map of values to look through.
      `fieldPath` - the dot notation path to look up.
    Returns:
      the value stored at the given path.

  - ### getPathValueAsString

    public static String getPathValueAsString(Map values, String fieldPath)
    Fetches the value stored at the given dot notation path in the map of values as a string.
    Parameters:
      `values` - the map of values to look through.
      `fieldPath` - the dot notation path to look up.
    Returns:
      the value stored at the given path or empty string if the value was null.