public class Binder
extends java.lang.Object
expressions by replacing unbound named references with references to
 fields in a struct schema.| Modifier and Type | Method and Description | 
|---|---|
static Expression | 
bind(Types.StructType struct,
    Expression expr,
    boolean caseSensitive)
Replaces all unbound/named references with bound references to fields in the given struct. 
 | 
static java.util.Set<java.lang.Integer> | 
boundReferences(Types.StructType struct,
               java.util.List<Expression> exprs,
               boolean caseSensitive)  | 
public static Expression bind(Types.StructType struct, Expression expr, boolean caseSensitive)
 When a reference is resolved, any literal used in a predicate for that field is converted to
 the field's type using Literal.to(Type). If automatic conversion to that type isn't
 allowed, a validation exception is thrown.
 
 The result expression may be simplified when constructed. For example, isNull("a") is
 replaced with alwaysFalse() when "a" is resolved to a required field.
 
 The expression cannot contain references that are already bound, or an
 IllegalStateException will be thrown.
struct - The struct type to resolve references by name.expr - An expression to rewrite with bound references.caseSensitive - A boolean flag to control whether the bind should enforce case sensitivity.ValidationException - if literals do not match bound referencesjava.lang.IllegalStateException - if any references are already boundpublic static java.util.Set<java.lang.Integer> boundReferences(Types.StructType struct, java.util.List<Expression> exprs, boolean caseSensitive)