Defines interface of class/object that defines a composition operator.
Responsible for evaluating scala data structure com.celadari.jsonlogicscala.tree.JsonLogicCore.
Responsible for evaluating scala data structure com.celadari.jsonlogicscala.tree.JsonLogicCore. May be extended to fit custom use cases. Providing the right configuration via com.celadari.jsonlogicscala.evaluate.EvaluatorLogicConf is enough to cover most cases. You may redefine methods to handle extreme uncommon cases.
Represents an evaluator's configuration.
Represents an evaluator's configuration. It informs the evaluator how to map an operator_codename to an actual method.
Defines interface of class/object that defines an evaluator_value_logic.
Defines interface of class/object that defines an evaluator_value_logic. A class|object implementing this interface is called before evaluation and transforms leaf values in syntax tree.
AND / \ < < / \ / \ A 5 B -4
if you define an evaluator_value_logic defined for int values and returns absolute value then evaluation will be on the following tree
AND / \ < < / \ / \ A 5 B 4
Represents an operator's information for evaluation.
Responsible for finding paths of a compatible classes in case there exists multiple overloaded method versions of operator's method.
Responsible for finding paths of a compatible classes in case there exists multiple overloaded method versions of operator's method.
class A, class B extends A conditionsValues(a, b, c) (a object of A, b object of B, c object of C) overloaded methods have the following signatures: overloaded_method(A, A): B overloaded_method(A, B): A overloaded_method(A, C): D overloaded_method(A, D): A overloaded_method(B, A): A overloaded_method(B, C): A overloaded_method(D, C): A then compatible paths are Array((overloaded_method(A, A): B), (overloaded_method(B, C): A)) Array((overloaded_method(A, B): A), (overloaded_method(A, C): D)) This search is used on reduce type operators as conditions might not be the same type and which overloaded method to be applied must be found before evaluation.
Defines interface of class/object that defines an operator.
Defines interface of class/object that defines an operator. There is no constraint on method name. Name of invoked method during evaluation is known in com.celadari.jsonlogicscala.evaluate.MethodConf configuration.
Defines interface of class/object that defines an unary operator.
Defines interface of class/object that defines an unary operator. Unlike binary|multiple input operators, unary operators take only one input. Invoked method has to be "unaryOperator" and overloading this method doesn't work.
negate operator, getOrDefaultOperator
Companion object containing class com.celadari.jsonlogicscala.evaluate.CompositionOperator.ComposeJsonLogicCore's definition.
Companion object to hold implicit: com.celadari.jsonlogicscala.evaluate.EvaluatorLogicConf, mapping of default operators (type_codename -> method_conf), and method to create a custom configuration.
Companion object to hold default com.celadari.jsonlogicscala.evaluate.EvaluatorValueLogic.
Companion object that defines utility function to find minimum (class inheritance as partial order) classes among set of classes.
Defines interface of class/object that defines a composition operator. Unlike other operators, these operators are more complex and new to inform sub-nodes in syntax tree of values before evaluating its current node. This is performed by updating the map "logicOperatorToValue" which is passed on to sub-nodes. Invoked method has to be "composeOperator" and overloading this method doesn't work.
map, filter, all, none, some