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 TypeMethodDescriptionvoid
validateColumnExpressions
(SelectColumn[] selectColumns, String[] originalExpressions, Table table) void
validateConditionFilters
(List<ConditionFilter> conditionFilters, Table table) validateSelectFilters
(String[] conditionalExpressions, Table table)
-
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
- Specified by:
validateSelectFilters
in interfaceColumnExpressionValidator
-
validateConditionFilters
- Specified by:
validateConditionFilters
in interfaceColumnExpressionValidator
-
validateColumnExpressions
public void validateColumnExpressions(SelectColumn[] selectColumns, String[] originalExpressions, Table table) - Specified by:
validateColumnExpressions
in interfaceColumnExpressionValidator
-