org.apache.solr.client.solrj.io.eval

## Class RecursiveEvaluator

- java.lang.Object
- - org.apache.solr.client.solrj.io.eval.RecursiveEvaluator

All Implemented Interfaces:
  Serializable, StreamEvaluator, ValueWorker, Expressible

Direct Known Subclasses:
  ColumnEvaluator, MonteCarloEvaluator, RecursiveBooleanEvaluator, RecursiveNumericEvaluator, RecursiveNumericListEvaluator, RecursiveObjectEvaluator, RecursiveTemporalEvaluator

    public abstract class RecursiveEvaluator
    extends Object
    implements StreamEvaluator, ValueWorker

See Also:
  Serialized Form

### Field Summary

Fields
`protected StreamFactory` `constructingFactory`
`protected List<StreamEvaluator>` `containedEvaluators`
`protected UUID` `nodeId`
`protected static long` `serialVersionUID`
`protected StreamContext` `streamContext`

### Constructor Summary

Constructors
Constructor and Description
`RecursiveEvaluator(StreamExpression expression, StreamFactory factory)`
`RecursiveEvaluator(StreamExpression expression, StreamFactory factory, List<String> ignoredNamedParameters)`

### Method Summary

All Methods Instance Methods Concrete Methods
`Object` `evaluate(Tuple tuple)`
`StreamContext` `getStreamContext()`
`protected Object` `normalizeInputType(Object value)`
`protected Object` `normalizeOutputType(Object value)`
`List<Object>` `recursivelyEvaluate(Tuple tuple)`
`void` `setStreamContext(StreamContext context)`
`Explanation` `toExplanation(StreamFactory factory)` Returns an explanation about the stream object
`StreamExpressionParameter` `toExpression(StreamFactory factory)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.solr.client.solrj.io.eval.StreamEvaluator

`evaluateOverContext`

### Methods inherited from interface org.apache.solr.client.solrj.io.eval.ValueWorker

`doWork`

### Field Detail

#### serialVersionUID

    protected static final long serialVersionUID

See Also:
  Constant Field Values

#### streamContext

    protected StreamContext streamContext

#### nodeId

    protected UUID nodeId

#### constructingFactory

    protected StreamFactory constructingFactory

#### containedEvaluators

    protected List<StreamEvaluator> containedEvaluators

### Constructor Detail

#### RecursiveEvaluator

    public RecursiveEvaluator(StreamExpression expression,
                              StreamFactory factory)
                       throws IOException

Throws:
  `IOException`

#### RecursiveEvaluator

    public RecursiveEvaluator(StreamExpression expression,
                              StreamFactory factory,
                              List<String> ignoredNamedParameters)
                       throws IOException

Throws:
  `IOException`

### Method Detail

#### normalizeInputType

    protected Object normalizeInputType(Object value)

#### normalizeOutputType

    protected Object normalizeOutputType(Object value)

#### evaluate

    public Object evaluate(Tuple tuple)
                    throws IOException

Specified by:
  `evaluate` in interface `StreamEvaluator`
Throws:
  `IOException`

#### recursivelyEvaluate

    public List<Object> recursivelyEvaluate(Tuple tuple)
                                     throws IOException

Throws:
  `IOException`

#### toExpression

    public StreamExpressionParameter toExpression(StreamFactory factory)
                                           throws IOException

Specified by:
  `toExpression` in interface `Expressible`
Throws:
  `IOException`

#### toExplanation

    public Explanation toExplanation(StreamFactory factory)
                              throws IOException

Description copied from interface: `Expressible`
Returns an explanation about the stream object

Specified by:
  `toExplanation` in interface `Expressible`
Parameters:
  `factory` - Stream factory for this, contains information about the function name
Returns:
  Explanation about this stream object containing explanations of any child stream objects
Throws:
  `IOException` - throw on any error

#### setStreamContext

    public void setStreamContext(StreamContext context)

Specified by:
  `setStreamContext` in interface `StreamEvaluator`

#### getStreamContext

    public StreamContext getStreamContext()

Specified by:
  `getStreamContext` in interface `StreamEvaluator`