2010-02-03 03:29:47 +01:00
|
|
|
package com.metaweb.gridworks.expr;
|
2010-01-27 02:48:42 +01:00
|
|
|
|
|
|
|
import java.util.Properties;
|
|
|
|
|
|
|
|
public class FieldAccessorExpr implements Evaluable {
|
|
|
|
final protected Evaluable _inner;
|
|
|
|
final protected String _fieldName;
|
|
|
|
|
|
|
|
public FieldAccessorExpr(Evaluable inner, String fieldName) {
|
|
|
|
_inner = inner;
|
|
|
|
_fieldName = fieldName;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Object evaluate(Properties bindings) {
|
|
|
|
Object o = _inner.evaluate(bindings);
|
|
|
|
if (o != null && o instanceof HasFields) {
|
2010-02-01 00:15:50 +01:00
|
|
|
return ((HasFields) o).getField(_fieldName, bindings);
|
2010-01-27 02:48:42 +01:00
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2010-01-27 23:27:22 +01:00
|
|
|
@Override
|
|
|
|
public String toString() {
|
|
|
|
return _inner.toString() + "." + _fieldName;
|
|
|
|
}
|
2010-01-27 02:48:42 +01:00
|
|
|
}
|