Class FHIRPathEvaluator.EvaluationContext

  • Enclosing class:
    FHIRPathEvaluator

    public static class FHIRPathEvaluator.EvaluationContext
    extends java.lang.Object
    A context object used to pass information to/from the FHIRPath evaluation engine
    • Field Detail

      • DEFAULT_RESOLVE_RELATIVE_REFERENCES

        public static final boolean DEFAULT_RESOLVE_RELATIVE_REFERENCES
        See Also:
        Constant Field Values
    • Constructor Detail

      • EvaluationContext

        public EvaluationContext()
        Create an empty evaluation context, evaluating stand-alone expressions
      • EvaluationContext

        public EvaluationContext​(Resource resource)
        Create an evaluation context where the passed resource is the context root. Sets %resource and %rootResource external constants to the passed resource, but these can be overridden.
        Parameters:
        resource - the resource
      • EvaluationContext

        public EvaluationContext​(Element element)
        Create an evaluation context where the passed element is the context root.
        Parameters:
        element - the element
    • Method Detail

      • getTree

        public FHIRPathTree getTree()
        Get the FHIRPath tree associated with this EvaluationContext
        Returns:
        the FHIRPath tree associated with this EvaluationContext
      • setExternalConstant

        public void setExternalConstant​(java.lang.String name,
                                        FHIRPathNode node)
        Set an external constant using a name and FHIRPath node
        Parameters:
        name - the name
        node - the FHIRPath node
      • setExternalConstant

        public void setExternalConstant​(java.lang.String name,
                                        java.util.Collection<FHIRPathNode> nodes)
        Set an external constant using a name and a collection of FHIRPath node
        Parameters:
        name - the name
        nodes - the collection of FHIRPath nodes
      • unsetExternalConstant

        public void unsetExternalConstant​(java.lang.String name)
        Unset an external constant with the given name
        Parameters:
        name - the name
      • getExternalConstant

        public java.util.Collection<FHIRPathNode> getExternalConstant​(java.lang.String name)
        Get an external constant with the given name
        Parameters:
        name - the name
        Returns:
        the external constant as a collection of FHIRPath nodes or an empty collection
      • hasExternalConstant

        public boolean hasExternalConstant​(java.lang.String name)
        Indicates whether this EvaluationContext has an external constant with the given name
        Parameters:
        name - the name
        Returns:
        true if this EvaluationContext has an external constant with the given name, otherwise false
      • getIssues

        public java.util.List<OperationOutcome.Issue> getIssues()
        Get the list of supplemental issues that were generated during evaluation

        Supplemental issues are used to convey additional information about the evaluation to the client

        Returns:
        the list of supplemental issues that were generated during evaluation
      • clearIssues

        public void clearIssues()
        Clear the list of supplemental issues that were generated during evaluation
      • hasIssues

        public boolean hasIssues()
        Indicates whether this evaluation context has supplemental issues that were generated during evaluation
        Returns:
        true if this evaluation context has supplemental issues that were generated during evaluation, otherwise false
      • setConstraint

        public void setConstraint​(Constraint constraint)
        Set the constraint currently under evaluation

        If a Constraint is the source of the expression under evaluation, then this method allows the client to make it available to the evaluation engine to access additional information about the constraint (e.g. id, level, location, description, etc.)

        Parameters:
        constraint - the constraint currently under evaluation
      • unsetConstraint

        public void unsetConstraint()
        Unset the constraint currently under evaluation
      • getConstraint

        public Constraint getConstraint()
        Get the constraint currently under evaluation
        Returns:
        the constraint currently under evaluation if exists, otherwise null
      • hasConstraint

        public boolean hasConstraint()
        Indicates whether this evaluation context has an associated constraint
        Returns:
        true if this evaluation context has an associated constraint, otherwise false
      • setResolveRelativeReferences

        public void setResolveRelativeReferences​(boolean resolveRelativeReferences)
        Set the resolve relative references indicator
        Parameters:
        resolveRelativeReferences - the resolve relative references indicator
      • resolveRelativeReferences

        public boolean resolveRelativeReferences()
        Indicates whether the evaluator using this evaluation context should resolve relative references (if possible)
        Returns:
        true if the evaluator using this evaluation context should resolve relative references (if possible), otherwise false
      • getCachedFunctionResult

        public java.util.Collection<FHIRPathNode> getCachedFunctionResult​(java.lang.String functionName,
                                                                          java.util.Collection<FHIRPathNode> context,
                                                                          java.util.List<java.util.Collection<FHIRPathNode>> arguments)
        Get the cached function result for the given function name, context, and arguments.
        Parameters:
        functionName - the function name
        context - the context
        arguments - the arguments
        Returns:
        the cached function result as a collection of FHIRPath nodes or an empty collection
      • cacheFunctionResult

        public void cacheFunctionResult​(java.lang.String functionName,
                                        java.util.Collection<FHIRPathNode> context,
                                        java.util.List<java.util.Collection<FHIRPathNode>> arguments,
                                        java.util.Collection<FHIRPathNode> result)
        Cache the function result for the given function name, context, and arguments
        Parameters:
        functionName - the function name
        context - the context
        arguments - the arguments
        result - the function result
      • hasCachedFunctionResult

        public boolean hasCachedFunctionResult​(java.lang.String functionName,
                                               java.util.Collection<FHIRPathNode> context,
                                               java.util.List<java.util.Collection<FHIRPathNode>> arguments)
        Indicates whether a function result has been cached for the given function name, context, and arguments.
        Parameters:
        functionName - the function name
        context - the context
        arguments - the arguments
        Returns:
        true if the function result has been cached, otherwise false
      • addEvaluationListener

        public void addEvaluationListener​(FHIRPathEvaluator.EvaluationListener listener)
        Add an evaluation listener to this context.
        Parameters:
        listener - the evaluation listener
      • removeEvaluationListener

        public boolean removeEvaluationListener​(FHIRPathEvaluator.EvaluationListener listener)
        Remove an evaluation listener from this context.
        Parameters:
        listener - the evaluation listener
        Returns:
        true if the evaluation listener being removed was present in the list of evaluation listeners for this context, otherwise false
      • getEvaluationListeners

        public java.util.List<FHIRPathEvaluator.EvaluationListener> getEvaluationListeners()
        Get the list of evaluation listeners for this context.
        Returns:
        the list of evaluation listeners