@Override public List<InputColumn<?>> getInputColumns() { final List<InputColumn<?>> inputColumns = _delegate.getInputColumns(); inputColumns.addAll(_values.keySet()); return inputColumns; }
public List<InputColumn<?>> getInputColumns() { if (_inputColumns == null) { final List<InputRow> rows = getSampleRows(); if (!rows.isEmpty()) { final InputRow firstRow = rows.iterator().next(); final List<InputColumn<?>> inputColumns = firstRow.getInputColumns(); _inputColumns = CollectionUtils.filter(inputColumns, col -> { if (col instanceof MutableInputColumn) { if (((MutableInputColumn<?>) col).isHidden()) { // avoid hidden columns in the return false; } } return true; }); } else { _inputColumns = new ArrayList<>(0); } } return _inputColumns; }
@Override public String evaluate(final InputRow row) { final SimpleContext context = new SimpleContext(); final List<InputColumn<?>> inputColumns = row.getInputColumns(); for (final InputColumn<?> inputColumn : inputColumns) { if (!(inputColumn instanceof ExpressionBasedInputColumn)) { final Object value = row.getValue(inputColumn); final Class<?> javaType = inputColumn.getDataType(); final ValueExpression valueExpression = _factory.createValueExpression(value, javaType); String variableName = inputColumn.getName(); variableName = StringUtils.replaceWhitespaces(variableName, "_"); context.setVariable(variableName, valueExpression); } } try { final ValueExpression valueExpression = _factory.createValueExpression(context, _expression, String.class); return (String) valueExpression.getValue(context); } catch (final ELException e) { logger.error("Could not evaluate EL expression", e); return null; } }