Interface CompiledCondition

Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface CompiledCondition
A compiled condition, shared by every run of its rule list.

Several runs can evaluate one compiled condition at the same time, each with its own Session, which only one run uses at a time. Keep what changes while the condition runs in the session.

The engine evaluates a condition with evaluateWithDetail(io.github.brantunger.unruly.api.language.EvaluationContext, io.github.brantunger.unruly.api.language.Session), which a language overrides to explain the result as well as return it.

Implemented by expression languages. A method added to this interface is a default method, so an existing language keeps compiling and working.