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 transactionbooleanbooleanThis 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:
-
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
-