
Class FhirTerser
- java.lang.Object
-
- ca.uhn.fhir.util.FhirTerser
-
public class FhirTerser extends Object
-
-
Constructor Summary
Constructors Constructor Description FhirTerser(FhirContext theContext)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear(IBaseResource theInput)
Clear all content on a resourceIBase
cloneInto(IBase theSource, IBase theTarget, boolean theIgnoreMissingFields)
Clones all values from a source object into the equivalent fields in a target objectCollection<IBaseResource>
getAllEmbeddedResources(IBaseResource theResource, boolean theRecurse)
Returns all embedded resources that are found embedded withintheResource
.<T extends IBase>
List<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.List<ResourceReferenceInfo>
getAllResourceReferences(IBaseResource theResource)
BaseRuntimeChildDefinition
getDefinition(Class<? extends IBaseResource> theResourceType, String thePath)
<T extends IBase>
Optional<T>getSingleValue(IBase theTarget, String thePath, Class<T> theWantedType)
Object
getSingleValueOrNull(IBase theTarget, String thePath)
<T extends IBase>
TgetSingleValueOrNull(IBase theTarget, String thePath, Class<T> theWantedType)
List<IBase>
getValues(IBase theElement, String thePath)
Returns values stored in an element identified by its path.List<IBase>
getValues(IBase theElement, String thePath, boolean theCreate)
Returns values stored in an element identified by its path.List<IBase>
getValues(IBase theElement, String thePath, boolean theCreate, boolean theAddExtension)
Returns values stored in an element identified by its path.<T extends IBase>
List<T>getValues(IBase theElement, String thePath, Class<T> theWantedClass)
Returns values stored in an element identified by its path.<T extends IBase>
List<T>getValues(IBase theElement, String thePath, Class<T> theWantedClass, boolean theCreate)
Returns values stored in an element identified by its path.<T extends IBase>
List<T>getValues(IBase theElement, String thePath, Class<T> theWantedClass, boolean theCreate, boolean theAddExtension)
Returns values stored in an element identified by its path.boolean
isSourceInCompartmentForTarget(String theCompartmentName, IBaseResource theSource, IIdType theTarget)
Returnstrue
iftheSource
is in the compartment namedtheCompartmentName
belonging to resourcetheTarget
Map<Object,Object>
newMap()
void
visit(IBase theElement, IModelVisitor2 theVisitor)
Visit all elements in a given resource or elementvoid
visit(IBaseResource theResource, IModelVisitor theVisitor)
Visit all elements in a given resource
-
-
-
Constructor Detail
-
FhirTerser
public FhirTerser(FhirContext theContext)
-
-
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 IBase> List<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 ofIResource
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
-
getAllResourceReferences
public List<ResourceReferenceInfo> getAllResourceReferences(IBaseResource theResource)
-
getDefinition
public BaseRuntimeChildDefinition getDefinition(Class<? extends IBaseResource> theResourceType, String thePath)
-
getSingleValueOrNull
public Object getSingleValueOrNull(IBase theTarget, String thePath)
-
getSingleValueOrNull
public <T extends IBase> T getSingleValueOrNull(IBase theTarget, String thePath, Class<T> theWantedType)
-
getSingleValue
public <T extends IBase> Optional<T> getSingleValue(IBase theTarget, String thePath, Class<T> theWantedType)
-
getValues
public List<IBase> getValues(IBase theElement, String thePath)
Returns values stored in an element identified by its path. The list of values is of typeObject
.- 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<IBase> getValues(IBase theElement, String thePath, boolean theCreate)
Returns values stored in an element identified by its path. The list of values is of typeObject
.- Parameters:
theElement
- The element to be accessed. Must not be null.thePath
- The path for the element to be accessed.theCreate
- When set totrue
, the terser will create a null-valued element where none exists.- Returns:
- A list of values of type
Object
.
-
getValues
public List<IBase> getValues(IBase theElement, String thePath, boolean theCreate, boolean theAddExtension)
Returns values stored in an element identified by its path. The list of values is of typeObject
.- Parameters:
theElement
- The element to be accessed. Must not be null.thePath
- The path for the element to be accessed.theCreate
- When set totrue
, the terser will create a null-valued element where none exists.theAddExtension
- When set totrue
, 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 IBase> List<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 typetheWantedClass
.- Type Parameters:
T
- Type declared bytheWantedClass
- 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 IBase> List<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 typetheWantedClass
.- Type Parameters:
T
- Type declared bytheWantedClass
- 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 totrue
, the terser will create a null-valued element where none exists.- Returns:
- A list of values of type
theWantedClass
.
-
getValues
public <T extends IBase> List<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 typetheWantedClass
.- Type Parameters:
T
- Type declared bytheWantedClass
- 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 totrue
, the terser will create a null-valued element where none exists.theAddExtension
- When set totrue
, 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)
Returnstrue
iftheSource
is in the compartment namedtheCompartmentName
belonging to resourcetheTarget
- Parameters:
theCompartmentName
- The name of the compartmenttheSource
- The potential member of the compartmenttheTarget
- 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 anIllegalArgumentException
- Returns:
true
iftheSource
is in the compartment- Throws:
IllegalArgumentException
- If theTarget does not contain both a resource type and ID
-
visit
public void visit(IBaseResource theResource, IModelVisitor theVisitor)
Visit all elements in a given resourceNote 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 to visittheVisitor
- The visitor
-
visit
public void visit(IBase theElement, IModelVisitor2 theVisitor)
Visit all elements in a given resource or elementTHIS 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 visittheVisitor
- The visitor
-
getAllEmbeddedResources
public Collection<IBaseResource> getAllEmbeddedResources(IBaseResource theResource, boolean theRecurse)
Returns all embedded resources that are found embedded withintheResource
. 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
andParameters.parameter.resource
, as well as contained resources found withinResource.contained
- Parameters:
theRecurse
- Should embedded resources be recursively scanned for further embedded resources- Returns:
- A collection containing the embedded resources. Order is arbitrary.
-
clear
public void clear(IBaseResource theInput)
Clear all content on a resource
-
-