
Class TransactionDetails
java.lang.Object
ca.uhn.fhir.rest.api.server.storage.TransactionDetails
This object contains runtime information that is gathered and relevant to a single database transaction.
This doesn't mean a FHIR transaction necessarily, but rather any operation that happens within a single DB transaction
(i.e. a FHIR create, read, transaction, etc.).
The intent with this class is to hold things we want to pass from operation to operation within a transaction in order to avoid looking things up multiple times, etc.
- Since:
- 5.0.0
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addDeferredInterceptorBroadcast
(ca.uhn.fhir.interceptor.api.Pointcut thePointcut, ca.uhn.fhir.interceptor.api.HookParams theHookParams) This can be used by processors for FHIR transactions to defer interceptor broadcasts on sub-requests if neededvoid
addResolvedMatchUrl
(String theConditionalUrl, ResourcePersistentId thePersistentId) A Resolved Conditional URL is a mapping between a conditional URL (e.g.void
addResolvedResourceId
(org.hl7.fhir.instance.model.api.IIdType theResourceId, ResourcePersistentId thePersistentId) A Resolved Resource ID is a mapping between a resource ID (e.g.void
addRollbackUndoAction
(Runnable theRunnable) Add an action that should be executed if the transaction is rolled backvoid
beginAcceptingDeferredInterceptorBroadcasts
(ca.uhn.fhir.interceptor.api.Pointcut... thePointcuts) This can be used by processors for FHIR transactions to defer interceptor broadcasts on sub-requests if neededvoid
void
Clears any previously added rollback actionsvoid
clearUserData
(String theKey) Remove an item previously stored in user datavoid
com.google.common.collect.ListMultimap<ca.uhn.fhir.interceptor.api.Pointcut,
ca.uhn.fhir.interceptor.api.HookParams> This can be used by processors for FHIR transactions to defer interceptor broadcasts on sub-requests if neededca.uhn.fhir.rest.api.InterceptorInvocationTimingEnum
getInvocationTiming
(ca.uhn.fhir.interceptor.api.Pointcut thePointcut) <T> T
getOrCreateUserData
(String theKey, Supplier<T> theSupplier) Fetches the existing value in the user data map, or uses theSupplier to create a new object and puts that in the map, and returns itgetResolvedResourceId
(org.hl7.fhir.instance.model.api.IIdType theId) A Resolved Resource ID is a mapping between a resource ID (e.g.Get the actions that should be executed if the transaction is rolled backThis is the wall-clock time that a given transaction started.<T> T
getUserData
(String theKey) Gets an arbitrary object that will last the lifetime of the current transactionboolean
boolean
This can be used by processors for FHIR transactions to defer interceptor broadcasts on sub-requests if neededboolean
isAcceptingDeferredInterceptorBroadcasts
(ca.uhn.fhir.interceptor.api.Pointcut thePointcut) This can be used by processors for FHIR transactions to defer interceptor broadcasts on sub-requests if neededboolean
isResolvedResourceIdEmpty
(org.hl7.fhir.instance.model.api.IIdType theId) Was the given resource ID resolved previously in this transaction as not existingvoid
putUserData
(String theKey, Object theValue) Sets an arbitrary object that will last the lifetime of the current transaction
-
Field Details
-
NOT_FOUND
-
-
Constructor Details
-
TransactionDetails
public TransactionDetails()Constructor -
TransactionDetails
Constructor
-
-
Method Details
-
getRollbackUndoActions
Get the actions that should be executed if the transaction is rolled back- Since:
- 5.5.0
-
addRollbackUndoAction
Add an action that should be executed if the transaction is rolled back- Since:
- 5.5.0
-
clearRollbackUndoActions
Clears any previously added rollback actions- Since:
- 5.5.0
-
getResolvedResourceId
@Nullable public ResourcePersistentId getResolvedResourceId(org.hl7.fhir.instance.model.api.IIdType theId) A Resolved Resource ID is a mapping between a resource ID (e.g. "Patient/ABC
" or "Observation/123
") and a storage ID for that resource. Resources should only be placed within the TransactionDetails if they are known to exist and be valid targets for other resources to link to. -
isResolvedResourceIdEmpty
Was the given resource ID resolved previously in this transaction as not existing -
addResolvedResourceId
public void addResolvedResourceId(org.hl7.fhir.instance.model.api.IIdType theResourceId, @Nullable ResourcePersistentId thePersistentId) A Resolved Resource ID is a mapping between a resource ID (e.g. "Patient/ABC
" or "Observation/123
") and a storage ID for that resource. Resources should only be placed within the TransactionDetails if they are known to exist and be valid targets for other resources to link to. -
getResolvedMatchUrls
-
addResolvedMatchUrl
public void addResolvedMatchUrl(String theConditionalUrl, @Nonnull ResourcePersistentId thePersistentId) A Resolved Conditional URL is a mapping between a conditional URL (e.g. "Patient?identifier=foo|bar
" or "Observation/123
") and a storage ID for that resource. Resources should only be placed within the TransactionDetails if they are known to exist and be valid targets for other resources to link to. -
getTransactionDate
This is the wall-clock time that a given transaction started. -
clearUserData
Remove an item previously stored in user data- See Also:
-
putUserData
Sets an arbitrary object that will last the lifetime of the current transaction- See Also:
-
getUserData
Gets an arbitrary object that will last the lifetime of the current transaction- See Also:
-
getOrCreateUserData
Fetches the existing value in the user data map, or uses theSupplier to create a new object and puts that in the map, and returns it -
beginAcceptingDeferredInterceptorBroadcasts
public void beginAcceptingDeferredInterceptorBroadcasts(ca.uhn.fhir.interceptor.api.Pointcut... thePointcuts) This can be used by processors for FHIR transactions to defer interceptor broadcasts on sub-requests if needed- Since:
- 5.2.0
-
isAcceptingDeferredInterceptorBroadcasts
This can be used by processors for FHIR transactions to defer interceptor broadcasts on sub-requests if needed- Since:
- 5.2.0
-
isAcceptingDeferredInterceptorBroadcasts
public boolean isAcceptingDeferredInterceptorBroadcasts(ca.uhn.fhir.interceptor.api.Pointcut thePointcut) This can be used by processors for FHIR transactions to defer interceptor broadcasts on sub-requests if needed- Since:
- 5.2.0
-
endAcceptingDeferredInterceptorBroadcasts
public com.google.common.collect.ListMultimap<ca.uhn.fhir.interceptor.api.Pointcut,ca.uhn.fhir.interceptor.api.HookParams> endAcceptingDeferredInterceptorBroadcasts()This can be used by processors for FHIR transactions to defer interceptor broadcasts on sub-requests if needed- Since:
- 5.2.0
-
addDeferredInterceptorBroadcast
public void addDeferredInterceptorBroadcast(ca.uhn.fhir.interceptor.api.Pointcut thePointcut, ca.uhn.fhir.interceptor.api.HookParams theHookParams) This can be used by processors for FHIR transactions to defer interceptor broadcasts on sub-requests if needed- Since:
- 5.2.0
-
getInvocationTiming
public ca.uhn.fhir.rest.api.InterceptorInvocationTimingEnum getInvocationTiming(ca.uhn.fhir.interceptor.api.Pointcut thePointcut) -
deferredBroadcastProcessingFinished
-
clearResolvedItems
-
hasResolvedResourceIds
-