Package io.appform.hope.lang
Class HopeLangEngine
- java.lang.Object
-
- io.appform.hope.lang.HopeLangEngine
-
public class HopeLangEngine extends Object
Top level accessor for hope. Creation is expensive. Create and reuse.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classHopeLangEngine.Builder
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static HopeLangEngine.Builderbuilder()Create a builder for the parser.booleanevaluate(Evaluatable rule, com.fasterxml.jackson.databind.JsonNode node)Evaluate a hope lang parsed expressionbooleanevaluate(String hopeLangExpression, com.fasterxml.jackson.databind.JsonNode root)Evaluates a hope expression using the provided json to return true or false.List<Boolean>evaluate(List<Evaluatable> rules, com.fasterxml.jackson.databind.JsonNode node)OptionalIntevaluateFirst(List<Evaluatable> rules, com.fasterxml.jackson.databind.JsonNode node)Evaluatableparse(String hopeLangExpression)Parse a hope lang string.
-
-
-
Method Detail
-
evaluate
public boolean evaluate(String hopeLangExpression, com.fasterxml.jackson.databind.JsonNode root)
Evaluates a hope expression using the provided json to return true or false.- Parameters:
hopeLangExpression- A hope language expressionroot- The json node to be evaluated- Returns:
- true in case of match
-
parse
public Evaluatable parse(String hopeLangExpression) throws HopeExpressionParserError
Parse a hope lang string. The resultant parsed rule can be reused for multiple evaluations.- Parameters:
hopeLangExpression- Parse a string- Returns:
- An evaluatable expression tree
- Throws:
HopeExpressionParserError
-
evaluate
public boolean evaluate(Evaluatable rule, com.fasterxml.jackson.databind.JsonNode node)
Evaluate a hope lang parsed expression- Parameters:
rule- Parsed rulenode- JsonNode for which the match rule is to be evaluated- Returns:
- true in case of match
-
evaluate
public List<Boolean> evaluate(List<Evaluatable> rules, com.fasterxml.jackson.databind.JsonNode node)
-
evaluateFirst
public OptionalInt evaluateFirst(List<Evaluatable> rules, com.fasterxml.jackson.databind.JsonNode node)
-
builder
public static HopeLangEngine.Builder builder()
Create a builder for the parser.- Returns:
- An initialized builder.
-
-