Class ParsingColumnExpressionValidator
java.lang.Object
io.deephaven.server.table.validation.ParsingColumnExpressionValidator
- All Implemented Interfaces:
ColumnExpressionValidator
Validates a column expression coming from gRPC, to ensure that the included code will use the customer defined list
of allowed methods.
The formula is compiled as part of this validation, and the
QueryLanguageParser produces a list of the methods that the formula would
invoke if executed. The set of used methods is compared against our allowlist.
This validator is stricter than the MethodNameColumnExpressionValidator, which does not take the class
instances into account.
The ExpressionValidatorModule.getParsingColumnExpressionValidatorFromConfiguration(Configuration) method is
used to create a validator based on configuration properties.
-
Constructor Summary
ConstructorsConstructorDescriptionParsingColumnExpressionValidator(Collection<MethodInvocationValidator> methodInvocationValidators) The collection of method validators to check each invocation against. -
Method Summary
Modifier and TypeMethodDescriptionvoidvalidateColumnExpressions(SelectColumn[] selectColumns, String[] originalExpressions, TableDefinition definition) voidvalidateConditionFilters(List<ConditionFilter> conditionFilters, TableDefinition definition) validateSelectFilters(String[] conditionalExpressions, TableDefinition definition) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.deephaven.engine.validation.ColumnExpressionValidator
validateWhereFilters
-
Constructor Details
-
ParsingColumnExpressionValidator
public ParsingColumnExpressionValidator(Collection<MethodInvocationValidator> methodInvocationValidators) The collection of method validators to check each invocation against. At least one validator must return true for the method to be permitted. If any validator returns false, then the- Parameters:
methodInvocationValidators- the collection of method validators to use
-
-
Method Details
-
validateSelectFilters
public WhereFilter[] validateSelectFilters(String[] conditionalExpressions, TableDefinition definition) - Specified by:
validateSelectFiltersin interfaceColumnExpressionValidator
-
validateConditionFilters
public void validateConditionFilters(List<ConditionFilter> conditionFilters, TableDefinition definition) - Specified by:
validateConditionFiltersin interfaceColumnExpressionValidator
-
validateColumnExpressions
public void validateColumnExpressions(SelectColumn[] selectColumns, String[] originalExpressions, TableDefinition definition) - Specified by:
validateColumnExpressionsin interfaceColumnExpressionValidator
-