Class FhirTerser

    • Method Detail

      • cloneInto

        public IBase cloneInto​(IBase theSource,
                               IBase theTarget,
                               boolean theIgnoreMissingFields)
        Clones all values from a source object into the equivalent fields in a target object
        Parameters:
        theSource - The source object (must not be null)
        theTarget - The target object to copy values into (must not be null)
        theIgnoreMissingFields - The ignore fields in the target which do not exist (if false, an exception will be thrown if the target is unable to accept a value from the source)
        Returns:
        Returns the target (which will be the same object that was passed into theTarget) for easy chaining
      • getAllPopulatedChildElementsOfType

        public <T extends IBaseList<T> getAllPopulatedChildElementsOfType​(IBaseResource theResource,
                                                                            Class<T> theType)
        Returns a list containing all child elements (including the resource itself) which are non-empty and are either of the exact type specified, or are a subclass of that type.

        For example, specifying a type of StringDt would return all non-empty string instances within the message. Specifying a type of IResource would return the resource itself, as well as any contained resources.

        Note on scope: This method will descend into any contained resources (IResource.getContained()) as well, but will not descend into linked resources (e.g. BaseResourceReferenceDt.getResource()) or embedded resources (e.g. Bundle.entry.resource)

        Parameters:
        theResource - The resource instance to search. Must not be null.
        theType - The type to search for. Must not be null.
        Returns:
        Returns a list of all matching elements
      • getValues

        public List<IBasegetValues​(IBase theElement,
                                     String thePath)
        Returns values stored in an element identified by its path. The list of values is of type Object.
        Parameters:
        theElement - The element to be accessed. Must not be null.
        thePath - The path for the element to be accessed.@param theElement The resource instance to be accessed. Must not be null.
        Returns:
        A list of values of type Object.
      • getValues

        public List<IBasegetValues​(IBase theElement,
                                     String thePath,
                                     boolean theCreate)
        Returns values stored in an element identified by its path. The list of values is of type Object.
        Parameters:
        theElement - The element to be accessed. Must not be null.
        thePath - The path for the element to be accessed.
        theCreate - When set to true, the terser will create a null-valued element where none exists.
        Returns:
        A list of values of type Object.
      • getValues

        public List<IBasegetValues​(IBase theElement,
                                     String thePath,
                                     boolean theCreate,
                                     boolean theAddExtension)
        Returns values stored in an element identified by its path. The list of values is of type Object.
        Parameters:
        theElement - The element to be accessed. Must not be null.
        thePath - The path for the element to be accessed.
        theCreate - When set to true, the terser will create a null-valued element where none exists.
        theAddExtension - When set to true, the terser will add a null-valued extension where one or more such extensions already exist.
        Returns:
        A list of values of type Object.
      • getValues

        public <T extends IBaseList<T> getValues​(IBase theElement,
                                                   String thePath,
                                                   Class<T> theWantedClass)
        Returns values stored in an element identified by its path. The list of values is of type theWantedClass.
        Type Parameters:
        T - Type declared by theWantedClass
        Parameters:
        theElement - The element to be accessed. Must not be null.
        thePath - The path for the element to be accessed.
        theWantedClass - The desired class to be returned in a list.
        Returns:
        A list of values of type theWantedClass.
      • getValues

        public <T extends IBaseList<T> getValues​(IBase theElement,
                                                   String thePath,
                                                   Class<T> theWantedClass,
                                                   boolean theCreate)
        Returns values stored in an element identified by its path. The list of values is of type theWantedClass.
        Type Parameters:
        T - Type declared by theWantedClass
        Parameters:
        theElement - The element to be accessed. Must not be null.
        thePath - The path for the element to be accessed.
        theWantedClass - The desired class to be returned in a list.
        theCreate - When set to true, the terser will create a null-valued element where none exists.
        Returns:
        A list of values of type theWantedClass.
      • getValues

        public <T extends IBaseList<T> getValues​(IBase theElement,
                                                   String thePath,
                                                   Class<T> theWantedClass,
                                                   boolean theCreate,
                                                   boolean theAddExtension)
        Returns values stored in an element identified by its path. The list of values is of type theWantedClass.
        Type Parameters:
        T - Type declared by theWantedClass
        Parameters:
        theElement - The element to be accessed. Must not be null.
        thePath - The path for the element to be accessed.
        theWantedClass - The desired class to be returned in a list.
        theCreate - When set to true, the terser will create a null-valued element where none exists.
        theAddExtension - When set to true, the terser will add a null-valued extension where one or more such extensions already exist.
        Returns:
        A list of values of type theWantedClass.
      • isSourceInCompartmentForTarget

        public boolean isSourceInCompartmentForTarget​(String theCompartmentName,
                                                      IBaseResource theSource,
                                                      IIdType theTarget)
        Returns true if theSource is in the compartment named theCompartmentName belonging to resource theTarget
        Parameters:
        theCompartmentName - The name of the compartment
        theSource - The potential member of the compartment
        theTarget - The owner of the compartment. Note that both the resource type and ID must be filled in on this IIdType or the method will throw an IllegalArgumentException
        Returns:
        true if theSource is in the compartment
        Throws:
        IllegalArgumentException - If theTarget does not contain both a resource type and ID
      • visit

        public void visit​(IBase theElement,
                          IModelVisitor2 theVisitor)
        Visit all elements in a given resource or element

        THIS ALTERNATE METHOD IS STILL EXPERIMENTAL! USE WITH CAUTION

        Note on scope: This method will descend into any contained resources (IResource.getContained()) as well, but will not descend into linked resources (e.g. BaseResourceReferenceDt.getResource()) or embedded resources (e.g. Bundle.entry.resource)

        Parameters:
        theElement - The element to visit
        theVisitor - The visitor
      • getAllEmbeddedResources

        public Collection<IBaseResourcegetAllEmbeddedResources​(IBaseResource theResource,
                                                                 boolean theRecurse)
        Returns all embedded resources that are found embedded within theResource. An embedded resource is a resource that can be found as a direct child within a resource, as opposed to being referenced by the resource.

        Examples include resources found within Bundle.entry.resource and Parameters.parameter.resource, as well as contained resources found within Resource.contained

        Parameters:
        theRecurse - Should embedded resources be recursively scanned for further embedded resources
        Returns:
        A collection containing the embedded resources. Order is arbitrary.