Class FHIRPathEngine

    • Constructor Detail

      • FHIRPathEngine

        public FHIRPathEngine​(IWorkerContext worker)
        Parameters:
        worker - - used when validating paths (@check), and used doing value set membership when executing tests (once that's defined)
    • Method Detail

      • getChildrenByName

        protected void getChildrenByName​(Base item,
                                         String name,
                                         List<Base> result)
        Given an item, return all the children that conform to the pattern described in name Possible patterns: - a simple name (which may be the base of a name with [] e.g. value[x]) - a name with a type replacement e.g. valueCodeableConcept - * which means all children - ** which means all descendants
        Parameters:
        item -
        name -
        result -
      • check

        public ExpressionNode.TypeDetails check​(Object appContext,
                                                String resourceType,
                                                String context,
                                                ExpressionNode expr)
                                         throws FHIRLexer.FHIRLexerException,
                                                org.hl7.fhir.exceptions.PathEngineException,
                                                org.hl7.fhir.exceptions.DefinitionException
        check that paths referred to in the ExpressionNode are valid xPathStartsWithValueRef is a hack work around for the fact that FHIR Path sometimes needs a different starting point than the xpath returns a list of the possible types that might be returned by executing the ExpressionNode against a particular context
        Parameters:
        context - - the logical type against which this path is applied
        Throws:
        org.hl7.fhir.exceptions.DefinitionException
        org.hl7.fhir.exceptions.PathEngineException
        FHIRLexer.FHIRLexerException
      • evaluate

        public List<Baseevaluate​(Base base,
                                   ExpressionNode ExpressionNode)
                            throws org.hl7.fhir.exceptions.PathEngineException
        evaluate a path and return the matching elements
        Parameters:
        base - - the object against which the path is being evaluated
        ExpressionNode - - the parsed ExpressionNode statement to use
        Returns:
        Throws:
        org.hl7.fhir.exceptions.PathEngineException
      • evaluate

        public List<Baseevaluate​(Object appContext,
                                   Resource resource,
                                   Base base,
                                   ExpressionNode ExpressionNode)
                            throws org.hl7.fhir.exceptions.PathEngineException
        evaluate a path and return the matching elements
        Parameters:
        base - - the object against which the path is being evaluated
        ExpressionNode - - the parsed ExpressionNode statement to use
        Returns:
        Throws:
        org.hl7.fhir.exceptions.PathEngineException
      • evaluate

        public List<Baseevaluate​(Object appContext,
                                   Base resource,
                                   Base base,
                                   ExpressionNode ExpressionNode)
                            throws org.hl7.fhir.exceptions.PathEngineException
        evaluate a path and return the matching elements
        Parameters:
        base - - the object against which the path is being evaluated
        ExpressionNode - - the parsed ExpressionNode statement to use
        Returns:
        Throws:
        org.hl7.fhir.exceptions.PathEngineException
      • evaluateToBoolean

        public boolean evaluateToBoolean​(Resource resource,
                                         Base base,
                                         ExpressionNode node)
                                  throws org.hl7.fhir.exceptions.PathEngineException
        evaluate a path and return true or false (e.g. for an invariant)
        Parameters:
        base - - the object against which the path is being evaluated
        Returns:
        Throws:
        org.hl7.fhir.exceptions.PathEngineException
      • evaluateToBoolean

        public boolean evaluateToBoolean​(Base resource,
                                         Base base,
                                         ExpressionNode node)
                                  throws org.hl7.fhir.exceptions.PathEngineException
        evaluate a path and return true or false (e.g. for an invariant)
        Parameters:
        base - - the object against which the path is being evaluated
        Returns:
        Throws:
        org.hl7.fhir.exceptions.PathEngineException
      • convertToString

        public String convertToString​(List<Base> items)
        worker routine for converting a set of objects to a string representation
        Parameters:
        items - - result from @evaluate
        Returns:
      • convertToBoolean

        public boolean convertToBoolean​(List<Base> items)
        worker routine for converting a set of objects to a boolean representation (for invariants)
        Parameters:
        items - - result from @evaluate
        Returns:
      • hasLog

        public boolean hasLog()