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 TypeMethodDescriptionvoidaddDeferredInterceptorBroadcast(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 neededvoidaddResolvedMatchUrl(String theConditionalUrl, ResourcePersistentId thePersistentId)A Resolved Conditional URL is a mapping between a conditional URL (e.g.voidaddResolvedResourceId(org.hl7.fhir.instance.model.api.IIdType theResourceId, ResourcePersistentId thePersistentId)A Resolved Resource ID is a mapping between a resource ID (e.g.voidaddRollbackUndoAction(Runnable theRunnable)Add an action that should be executed if the transaction is rolled backvoidbeginAcceptingDeferredInterceptorBroadcasts(ca.uhn.fhir.interceptor.api.Pointcut... thePointcuts)This can be used by processors for FHIR transactions to defer interceptor broadcasts on sub-requests if neededvoidvoidClears any previously added rollback actionsvoidclearUserData(String theKey)Remove an item previously stored in user datavoidcom.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.InterceptorInvocationTimingEnumgetInvocationTiming(ca.uhn.fhir.interceptor.api.Pointcut thePointcut)<T> TgetOrCreateUserData(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> TgetUserData(String theKey)Gets an arbitrary object that will last the lifetime of the current transactionbooleanThis can be used by processors for FHIR transactions to defer interceptor broadcasts on sub-requests if neededbooleanisAcceptingDeferredInterceptorBroadcasts(ca.uhn.fhir.interceptor.api.Pointcut thePointcut)This can be used by processors for FHIR transactions to defer interceptor broadcasts on sub-requests if neededbooleanisResolvedResourceIdEmpty(org.hl7.fhir.instance.model.api.IIdType theId)Was the given resource ID resolved previously in this transaction as not existingvoidputUserData(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:
getUserData(String)
-
putUserData
Sets an arbitrary object that will last the lifetime of the current transaction- See Also:
getUserData(String)
-
getUserData
Gets an arbitrary object that will last the lifetime of the current transaction- See Also:
putUserData(String, Object)
-
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
-