
Package org.hl7.fhir.r5.liquid
Class LiquidEngine
java.lang.Object
org.hl7.fhir.r5.liquid.LiquidEngine
- All Implemented Interfaces:
IHostApplicationServices
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
static interface
static class
static class
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncheckFunction
(FHIRPathEngine engine, Object appContext, String functionName, TypeDetails focus, List<TypeDetails> parameters) Check the function parameters, and throw an error if they are incorrect, or return the type for the functionboolean
conformsToProfile
(FHIRPathEngine engine, Object appContext, Base item, String url) evaluate
(LiquidEngine.LiquidDocument document, Base resource, Object appContext) executeFunction
(FHIRPathEngine engine, Object appContext, List<Base> focus, String functionName, List<List<Base>> parameters) getVars()
boolean
when the .log() function is calledboolean
paramIsType
(String name, int index) For the moment, there can only be one parameter if it's a type parameterboolean
replaceInHtml
(org.hl7.fhir.utilities.xhtml.XhtmlNode node, Map<String, String> vars) Lightweight method to replace fixed constants in resourcesresolveConstant
(FHIRPathEngine engine, Object appContext, String name, org.hl7.fhir.utilities.fhirpath.FHIRPathConstantEvaluationMode mode) A constant reference - e.g. a reference to a name that must be resolved in context.resolveConstantType
(FHIRPathEngine engine, Object appContext, String name, org.hl7.fhir.utilities.fhirpath.FHIRPathConstantEvaluationMode mode) Compile time support for a constant reference - e.g. a reference to a name that must be resolved in context.resolveFunction
(FHIRPathEngine engine, String functionName) resolveReference
(FHIRPathEngine engine, Object appContext, String url, Base refContext) Implementation of resolve() function.resolveValueSet
(FHIRPathEngine engine, Object appContext, String url) void
setIncludeResolver
(LiquidEngine.ILiquidEngineIncludeResolver includeResolver) void
setRenderingSupport
(LiquidEngine.ILiquidRenderingSupport renderingSupport)
-
Constructor Details
-
LiquidEngine
-
-
Method Details
-
getIncludeResolver
-
setIncludeResolver
-
getRenderingSupport
-
setRenderingSupport
-
getVars
-
parse
public LiquidEngine.LiquidDocument parse(String source, String sourceName) throws org.hl7.fhir.exceptions.FHIRException - Throws:
org.hl7.fhir.exceptions.FHIRException
-
evaluate
public String evaluate(LiquidEngine.LiquidDocument document, Base resource, Object appContext) throws org.hl7.fhir.exceptions.FHIRException - Throws:
org.hl7.fhir.exceptions.FHIRException
-
resolveConstant
public List<Base> resolveConstant(FHIRPathEngine engine, Object appContext, String name, org.hl7.fhir.utilities.fhirpath.FHIRPathConstantEvaluationMode mode) throws org.hl7.fhir.exceptions.PathEngineException Description copied from interface:IHostApplicationServices
A constant reference - e.g. a reference to a name that must be resolved in context. resolveConstant is invoked under 3 different circumstances, which are reflected in the mode parameter: * an explicit constant of the form %{token}, where the token isn't a known internal constant * every evaluation of any expression to allow the Host Application to decide whether to interpret the expression as a constant even if it is not explicitly a constant * at the start of evaluating an expression if the focus provided by the application when invoking the expression is {} The return value is a List- a collection, though most constants are singleton values note that variables created using defineVariable() in the FHIRPath expressions will not be processed by resolveConstant (or resolveConstantType) - Specified by:
resolveConstant
in interfaceIHostApplicationServices
- Parameters:
appContext
- - application context passed into the FHIRPath engine when first executedname
- - name reference to resolve. if mode = EXPLICIT, the % will NOT be in the namemode
- - what situation the reference comes from - see the documentation for @FHIRPathConstantEvaluationMode- Returns:
- the value of the constant , or an empty list, though the host application can choose to throw an exception
- Throws:
org.hl7.fhir.exceptions.PathEngineException
-
resolveConstantType
public TypeDetails resolveConstantType(FHIRPathEngine engine, Object appContext, String name, org.hl7.fhir.utilities.fhirpath.FHIRPathConstantEvaluationMode mode) throws org.hl7.fhir.exceptions.PathEngineException Description copied from interface:IHostApplicationServices
Compile time support for a constant reference - e.g. a reference to a name that must be resolved in context. resolveConstant is invoked under 3 different circumstances, which are reflected in the mode parameter: * an explicit constant of the form %{token}, where the token isn't a known internal constant * every evaluation of any expression to allow the Host Application to decide whether to interpret the expression as a constant even if it is not explicitly a constant * at the start of evaluating an expression if the focus provided by the application when invoking the expression is {} The return value is a TypeDetails - a collection, though most constants are singleton values note that variables created using defineVariable() in the FHIRPath expressions will not be processed by resolveConstant (or resolveConstantType)- Specified by:
resolveConstantType
in interfaceIHostApplicationServices
- Parameters:
appContext
- - application context passed into the FHIRPath engine when first executedname
- - name reference to resolve. if mode = EXPLICIT, the % will NOT be in the namemode
- - what situation the reference comes from - see the documentation for @FHIRPathConstantEvaluationMode- Returns:
- the type of the constant, or null, though the host application can choose to throw an exception
- Throws:
org.hl7.fhir.exceptions.PathEngineException
-
log
Description copied from interface:IHostApplicationServices
when the .log() function is called- Specified by:
log
in interfaceIHostApplicationServices
- Parameters:
argument
-focus
-- Returns:
-
resolveFunction
public FHIRPathUtilityClasses.FunctionDetails resolveFunction(FHIRPathEngine engine, String functionName) - Specified by:
resolveFunction
in interfaceIHostApplicationServices
- Parameters:
functionName
-- Returns:
- null if the function is not known
-
checkFunction
public TypeDetails checkFunction(FHIRPathEngine engine, Object appContext, String functionName, TypeDetails focus, List<TypeDetails> parameters) throws org.hl7.fhir.exceptions.PathEngineException Description copied from interface:IHostApplicationServices
Check the function parameters, and throw an error if they are incorrect, or return the type for the function- Specified by:
checkFunction
in interfaceIHostApplicationServices
- Parameters:
functionName
-parameters
-- Returns:
- Throws:
org.hl7.fhir.exceptions.PathEngineException
-
executeFunction
public List<Base> executeFunction(FHIRPathEngine engine, Object appContext, List<Base> focus, String functionName, List<List<Base>> parameters) - Specified by:
executeFunction
in interfaceIHostApplicationServices
- Parameters:
appContext
-functionName
-parameters
-- Returns:
-
resolveReference
public Base resolveReference(FHIRPathEngine engine, Object appContext, String url, Base refContext) throws org.hl7.fhir.exceptions.FHIRException Description copied from interface:IHostApplicationServices
Implementation of resolve() function. Passed a string, return matching resource, if one is known - else null- Specified by:
resolveReference
in interfaceIHostApplicationServices
- Parameters:
url
- the reference (Reference.reference or the value of the canonical- Returns:
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
conformsToProfile
public boolean conformsToProfile(FHIRPathEngine engine, Object appContext, Base item, String url) throws org.hl7.fhir.exceptions.FHIRException - Specified by:
conformsToProfile
in interfaceIHostApplicationServices
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
resolveValueSet
- Specified by:
resolveValueSet
in interfaceIHostApplicationServices
-
replaceInHtml
Lightweight method to replace fixed constants in resources- Parameters:
node
-vars
-- Returns:
-
paramIsType
Description copied from interface:IHostApplicationServices
For the moment, there can only be one parameter if it's a type parameter- Specified by:
paramIsType
in interfaceIHostApplicationServices
- Parameters:
name
-- Returns:
- true if it's a type parameter
-
getEngine
-