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 voidclear(IBaseResource theInput)Clear all content on a resourceIBasecloneInto(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)BaseRuntimeChildDefinitiongetDefinition(Class<? extends IBaseResource> theResourceType, String thePath)ObjectgetSingleValueOrNull(IBase theTarget, String thePath)<T extends IBase>
TgetSingleValueOrNull(IBase theTarget, String thePath, Class<T> theWantedType)List<IBase>getValues(IBaseResource theResource, String thePath)Returns values stored in an element identified by its path.List<IBase>getValues(IBaseResource theResource, String thePath, boolean theCreate)Returns values stored in an element identified by its path.List<IBase>getValues(IBaseResource theResource, String thePath, boolean theCreate, boolean theAddExtension)Returns values stored in an element identified by its path.<T extends IBase>
List<T>getValues(IBaseResource theResource, String thePath, Class<T> theWantedClass)Returns values stored in an element identified by its path.<T extends IBase>
List<T>getValues(IBaseResource theResource, String thePath, Class<T> theWantedClass, boolean theCreate)Returns values stored in an element identified by its path.<T extends IBase>
List<T>getValues(IBaseResource theResource, String thePath, Class<T> theWantedClass, boolean theCreate, boolean theAddExtension)Returns values stored in an element identified by its path.booleanisSourceInCompartmentForTarget(String theCompartmentName, IBaseResource theSource, IIdType theTarget)ReturnstrueiftheSourceis in the compartment namedtheCompartmentNamebelonging to resourcetheTargetMap<Object,Object>newMap()voidvisit(IBaseResource theResource, IModelVisitor theVisitor)Visit all elements in a given resourcevoidvisit(IBaseResource theResource, IModelVisitor2 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
StringDtwould return all non-empty string instances within the message. Specifying a type ofIResourcewould 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)
-
getValues
public List<IBase> getValues(IBaseResource theResource, String thePath)
Returns values stored in an element identified by its path. The list of values is of typeObject.- Parameters:
theResource- The resource instance to be accessed. Must not be null.thePath- The path for the element to be accessed.- Returns:
- A list of values of type
Object.
-
getValues
public List<IBase> getValues(IBaseResource theResource, String thePath, boolean theCreate)
Returns values stored in an element identified by its path. The list of values is of typeObject.- Parameters:
theResource- The resource instance 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(IBaseResource theResource, String thePath, boolean theCreate, boolean theAddExtension)
Returns values stored in an element identified by its path. The list of values is of typeObject.- Parameters:
theResource- The resource instance 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(IBaseResource theResource, 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:
theResource- The resource instance 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(IBaseResource theResource, 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:
theResource- The resource instance 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(IBaseResource theResource, 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:
theResource- The resource instance 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)
ReturnstrueiftheSourceis in the compartment namedtheCompartmentNamebelonging 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:
trueiftheSourceis 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(IBaseResource theResource, IModelVisitor2 theVisitor)
Visit all elements in a given resourceTHIS 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:
theResource- The resource 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.resourceandParameters.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
-
-