Class CqlEngine
- java.lang.Object
-
- org.opencds.cqf.cql.engine.execution.CqlEngine
-
public class CqlEngine extends java.lang.ObjectNOTE: Several possible approaches to traversing the ELM tree for execution: 1. "Executable" Node Hierarchy: Create nodes for each ELM type and deserialize into these nodes This option works well, but is problematic for maintenance because Java doesn't have partial classes. There also doesn't seem to be a way to tell JAXB which hierarchy to use if you have two different hierarchies for the same schema (Trackable-based ELM used by the CQL-to-ELM translator, and Executable-based ELM used by the engine). This could potentially be a bonus though, as it forces the engine to not take a dependency on the translator, forcing a clean separation between the translator and the engine. 2. Visitor Pattern: This option is potentially simpler to implement, however: a. The visitor pattern doesn't lend itself well to aggregation of results, which is the real work of each node anyway b. Extensibility is compromised, difficult to introduce new nodes (unlikely to be a practical issue though) c. Without lambdas, the cost of traversal is quite high due to the expensive if-then-else chains in the visitor nodes So, opting for the Executable Node Hierarchy for now, knowing that it creates a potential maintenance issue, but this is acceptable because the ELM Hierarchy is settling down, and so long as all the non-generated code is at the end, this should be easy to maintain. In addition, it will be much more performant, and lend itself much better to the aggregation of values from child nodes.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCqlEngine.Options
-
Constructor Summary
Constructors Constructor Description CqlEngine(LibraryLoader libraryLoader)CqlEngine(LibraryLoader libraryLoader, java.util.EnumSet<CqlEngine.Options> engineOptions)CqlEngine(LibraryLoader libraryLoader, java.util.Map<java.lang.String,DataProvider> dataProviders, TerminologyProvider terminologyProvider)CqlEngine(LibraryLoader libraryLoader, java.util.Map<java.lang.String,DataProvider> dataProviders, TerminologyProvider terminologyProvider, java.util.EnumSet<CqlEngine.Options> engineOptions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description EvaluationResultevaluate(java.lang.String libraryName)EvaluationResultevaluate(java.lang.String libraryName, java.util.Map<java.lang.String,java.lang.Object> parameters)EvaluationResultevaluate(java.lang.String libraryName, java.util.Set<java.lang.String> expressions)EvaluationResultevaluate(java.lang.String libraryName, java.util.Set<java.lang.String> expressions, java.util.Map<java.lang.String,java.lang.Object> parameters)EvaluationResultevaluate(java.lang.String libraryName, java.util.Set<java.lang.String> expressions, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter)EvaluationResultevaluate(java.lang.String libraryName, java.util.Set<java.lang.String> expressions, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter, java.util.Map<java.lang.String,java.lang.Object> parameters)EvaluationResultevaluate(java.lang.String libraryName, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter)EvaluationResultevaluate(java.lang.String libraryName, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter, java.util.Map<java.lang.String,java.lang.Object> parameters)EvaluationResultevaluate(VersionedIdentifier libraryIdentifier)EvaluationResultevaluate(VersionedIdentifier libraryIdentifier, java.util.Map<java.lang.String,java.lang.Object> parameters)EvaluationResultevaluate(VersionedIdentifier libraryIdentifier, java.util.Set<java.lang.String> expressions)EvaluationResultevaluate(VersionedIdentifier libraryIdentifier, java.util.Set<java.lang.String> expressions, java.util.Map<java.lang.String,java.lang.Object> parameters)EvaluationResultevaluate(VersionedIdentifier libraryIdentifier, java.util.Set<java.lang.String> expressions, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter)EvaluationResultevaluate(VersionedIdentifier libraryIdentifier, java.util.Set<java.lang.String> expressions, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter, java.util.Map<java.lang.String,java.lang.Object> parameters, DebugMap debugMap)EvaluationResultevaluate(VersionedIdentifier libraryIdentifier, java.util.Set<java.lang.String> expressions, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter, java.util.Map<java.lang.String,java.lang.Object> parameters, DebugMap debugMap, java.time.ZonedDateTime evaluationDateTime)EvaluationResultevaluate(VersionedIdentifier libraryIdentifier, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter)EvaluationResultevaluate(VersionedIdentifier libraryIdentifier, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter, java.util.Map<java.lang.String,java.lang.Object> parameters)
-
-
-
Constructor Detail
-
CqlEngine
public CqlEngine(LibraryLoader libraryLoader)
-
CqlEngine
public CqlEngine(LibraryLoader libraryLoader, java.util.Map<java.lang.String,DataProvider> dataProviders, TerminologyProvider terminologyProvider)
-
CqlEngine
public CqlEngine(LibraryLoader libraryLoader, java.util.EnumSet<CqlEngine.Options> engineOptions)
-
CqlEngine
public CqlEngine(LibraryLoader libraryLoader, java.util.Map<java.lang.String,DataProvider> dataProviders, TerminologyProvider terminologyProvider, java.util.EnumSet<CqlEngine.Options> engineOptions)
-
-
Method Detail
-
evaluate
public EvaluationResult evaluate(java.lang.String libraryName)
-
evaluate
public EvaluationResult evaluate(java.lang.String libraryName, java.util.Set<java.lang.String> expressions)
-
evaluate
public EvaluationResult evaluate(java.lang.String libraryName, java.util.Set<java.lang.String> expressions, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter)
-
evaluate
public EvaluationResult evaluate(java.lang.String libraryName, java.util.Set<java.lang.String> expressions, java.util.Map<java.lang.String,java.lang.Object> parameters)
-
evaluate
public EvaluationResult evaluate(java.lang.String libraryName, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter)
-
evaluate
public EvaluationResult evaluate(java.lang.String libraryName, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter, java.util.Map<java.lang.String,java.lang.Object> parameters)
-
evaluate
public EvaluationResult evaluate(java.lang.String libraryName, java.util.Map<java.lang.String,java.lang.Object> parameters)
-
evaluate
public EvaluationResult evaluate(java.lang.String libraryName, java.util.Set<java.lang.String> expressions, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter, java.util.Map<java.lang.String,java.lang.Object> parameters)
-
evaluate
public EvaluationResult evaluate(VersionedIdentifier libraryIdentifier)
-
evaluate
public EvaluationResult evaluate(VersionedIdentifier libraryIdentifier, java.util.Set<java.lang.String> expressions)
-
evaluate
public EvaluationResult evaluate(VersionedIdentifier libraryIdentifier, java.util.Set<java.lang.String> expressions, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter)
-
evaluate
public EvaluationResult evaluate(VersionedIdentifier libraryIdentifier, java.util.Set<java.lang.String> expressions, java.util.Map<java.lang.String,java.lang.Object> parameters)
-
evaluate
public EvaluationResult evaluate(VersionedIdentifier libraryIdentifier, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter)
-
evaluate
public EvaluationResult evaluate(VersionedIdentifier libraryIdentifier, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter, java.util.Map<java.lang.String,java.lang.Object> parameters)
-
evaluate
public EvaluationResult evaluate(VersionedIdentifier libraryIdentifier, java.util.Map<java.lang.String,java.lang.Object> parameters)
-
evaluate
public EvaluationResult evaluate(VersionedIdentifier libraryIdentifier, java.util.Set<java.lang.String> expressions, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter, java.util.Map<java.lang.String,java.lang.Object> parameters, DebugMap debugMap)
-
evaluate
public EvaluationResult evaluate(VersionedIdentifier libraryIdentifier, java.util.Set<java.lang.String> expressions, org.apache.commons.lang3.tuple.Pair<java.lang.String,java.lang.Object> contextParameter, java.util.Map<java.lang.String,java.lang.Object> parameters, DebugMap debugMap, java.time.ZonedDateTime evaluationDateTime)
-
-