mirror of https://github.com/apache/lucene.git
SOLR-11947: Rollback inadvertent code change during documentation updates.
This commit is contained in:
parent
1ed4e226ac
commit
e69c614cf6
|
@ -29,27 +29,21 @@ import org.apache.solr.client.solrj.io.stream.expr.StreamFactory;
|
||||||
|
|
||||||
public class FieldValueEvaluator extends SourceEvaluator {
|
public class FieldValueEvaluator extends SourceEvaluator {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private String fieldName;
|
private String fieldName;
|
||||||
private boolean literal;
|
|
||||||
|
|
||||||
public FieldValueEvaluator(String fieldName) {
|
public FieldValueEvaluator(String fieldName) {
|
||||||
if(fieldName.startsWith("\"") && fieldName.endsWith("\"") && fieldName.length() > 1){
|
if(fieldName.startsWith("'") && fieldName.endsWith("'") && fieldName.length() > 1){
|
||||||
fieldName = fieldName.substring(1, fieldName.length() - 1);
|
fieldName = fieldName.substring(1, fieldName.length() - 1);
|
||||||
literal = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.fieldName = fieldName;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object evaluate(Tuple tuple) throws IOException {
|
|
||||||
if(literal) {
|
|
||||||
return fieldName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.fieldName = fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object evaluate(Tuple tuple) throws IOException {
|
||||||
Object value = tuple.get(fieldName);
|
Object value = tuple.get(fieldName);
|
||||||
|
|
||||||
// This is somewhat radical.
|
// This is somewhat radical.
|
||||||
// Here, we allow for the use of the context to provide alternative values
|
// Here, we allow for the use of the context to provide alternative values
|
||||||
// when they are not available in the provided tuple. This means that all
|
// when they are not available in the provided tuple. This means that all
|
||||||
|
@ -57,14 +51,14 @@ public class FieldValueEvaluator extends SourceEvaluator {
|
||||||
// can even evaluate over fields from both of them in the same evaluation
|
// can even evaluate over fields from both of them in the same evaluation
|
||||||
if(null == value && null != getStreamContext()){
|
if(null == value && null != getStreamContext()){
|
||||||
value = getStreamContext().getLets().get(fieldName);
|
value = getStreamContext().getLets().get(fieldName);
|
||||||
|
|
||||||
// If what's contained in the context is itself an evaluator then
|
// If what's contained in the context is itself an evaluator then
|
||||||
// we need to evaluate it
|
// we need to evaluate it
|
||||||
if(value instanceof StreamEvaluator){
|
if(value instanceof StreamEvaluator){
|
||||||
value = ((StreamEvaluator)value).evaluate(tuple);
|
value = ((StreamEvaluator)value).evaluate(tuple);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we have an array then convert to an ArrayList
|
// if we have an array then convert to an ArrayList
|
||||||
// if we have an iterable that is not a list then convert to ArrayList
|
// if we have an iterable that is not a list then convert to ArrayList
|
||||||
// lists are good to go
|
// lists are good to go
|
||||||
|
@ -90,9 +84,13 @@ public class FieldValueEvaluator extends SourceEvaluator {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(value == null) {
|
||||||
|
return fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public StreamExpressionParameter toExpression(StreamFactory factory) throws IOException {
|
public StreamExpressionParameter toExpression(StreamFactory factory) throws IOException {
|
||||||
return new StreamExpressionValue(fieldName);
|
return new StreamExpressionValue(fieldName);
|
||||||
|
@ -101,9 +99,9 @@ public class FieldValueEvaluator extends SourceEvaluator {
|
||||||
@Override
|
@Override
|
||||||
public Explanation toExplanation(StreamFactory factory) throws IOException {
|
public Explanation toExplanation(StreamFactory factory) throws IOException {
|
||||||
return new Explanation(nodeId.toString())
|
return new Explanation(nodeId.toString())
|
||||||
.withExpressionType(ExpressionType.EVALUATOR)
|
.withExpressionType(ExpressionType.EVALUATOR)
|
||||||
.withImplementingClass(getClass().getName())
|
.withImplementingClass(getClass().getName())
|
||||||
.withExpression(toExpression(factory).toString());
|
.withExpression(toExpression(factory).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue