Class ContextCollectingSession
java.lang.Object
com._1c.g5.v8.internal.derived.context.ContextCollectingSession
- All Implemented Interfaces:
IContextCollectingSession
Implementation of
IContextCollectingSession which wraps the context manager and ensures that all context operations
are tracked properly.-
Constructor Summary
ConstructorsConstructorDescriptionContextCollectingSession(IContextTransactionManager manager, Object computationCause, boolean trackWaitingScope, boolean forcedUpdate) Creates new context collecting session with given context collection mode (sync or async). -
Method Summary
Modifier and TypeMethodDescriptionvoidcommit()Commits the session, unlocking context objects being locked during the context collecting session.<T extends IObjectDerivedDataContext>
TgetExistingObjectContext(Object objectId, String segmentId) Gets existing (previously scheduled and not yet computed) contextgetObjectContext(IBmObject bmObject, String segmentId) Gets the object context of the provided object.Gets the identifier of the service that initiated the context collecting session.<T extends IObjectDerivedDataContext>
TgetTypedObjectContext(long bmObjectId, org.eclipse.emf.ecore.EClass objectEClass, String segmentId, Class<T> contextType) Convenience method that checks the type of the internal context and casts it to the given type.<T extends IObjectDerivedDataContext>
TgetTypedObjectContext(IBmObject bmObject, String segmentId) Convenience method that checks the type of the internal context and casts it to the given type.<T extends IObjectDerivedDataContext>
TgetTypedObjectContext(IBmObject bmObject, String segmentId, Class<T> contextType) Convenience method that checks the type of the internal context and casts it to the given type.<T extends IObjectDerivedDataContext>
TgetTypedObjectContext(Object objectId, org.eclipse.emf.ecore.EClass objectEClass, String segmentId, Class<T> contextType) Convenience method that checks the type of the internal context and casts it to the given type.booleanisContextExists(IBmObject bmObject, String segmentId) Checks if the DD context exists(supported) for the given object and segmentbooleanisContextExists(org.eclipse.emf.ecore.EClass topObjectEClass, long topObjectId, String segmentId) Checks if the DD context exists(supported) for the given object and segmentbooleanisEmpty()Checks if the session has no collected contexts.voidRemoves previously scheduled operationscheduleModalOperation(Consumer<org.eclipse.core.runtime.IProgressMonitor> operation, DerivedDataSegmentBucket stage, IModalOperationController modalOperationController) Schedules a new modal operation with corresponding controllerscheduleOperation(Consumer<org.eclipse.core.runtime.IProgressMonitor> operation, OperationType operationType, boolean important, DerivedDataSegmentBucket bucket) Schedules managed operation
-
Constructor Details
-
ContextCollectingSession
public ContextCollectingSession(IContextTransactionManager manager, Object computationCause, boolean trackWaitingScope, boolean forcedUpdate) Creates new context collecting session with given context collection mode (sync or async).- Parameters:
manager- The reference to the context manager.syncContextCollection- True in case if the session is used to collect sync DD contexts; false for async context collection.computationCause- The object bound to the computation context and used to track computations.trackWaitingScope- Enables collection of the implicit waiting scope if trueforcedUpdate- Forces update of contexts, even if they aren't changed
-
-
Method Details
-
commit
public void commit()Description copied from interface:IContextCollectingSessionCommits the session, unlocking context objects being locked during the context collecting session.- Specified by:
commitin interfaceIContextCollectingSession
-
getObjectContext
Description copied from interface:IContextCollectingSessionGets the object context of the provided object. Effectively locks the provided context from changes via other context collecting sessions. Creates a new context if no context was collected since the last processing- Specified by:
getObjectContextin interfaceIContextCollectingSession- Parameters:
bmObject- The object to get the context for.segmentId- The DD segment identifier.- Returns:
- The corresponding context for the object.
-
getServiceId
Description copied from interface:IContextCollectingSessionGets the identifier of the service that initiated the context collecting session. This identifier is used to implement complex scearios, like selective computation of DD based on events raised as a result of another DD modification.- Specified by:
getServiceIdin interfaceIContextCollectingSession- Returns:
- The identifier of the service to check the equality against. Can be
null,
-
getTypedObjectContext
public <T extends IObjectDerivedDataContext> T getTypedObjectContext(IBmObject bmObject, String segmentId, Class<T> contextType) Description copied from interface:IContextCollectingSessionConvenience method that checks the type of the internal context and casts it to the given type. Creates a new context if no context was collected since the last processing- Specified by:
getTypedObjectContextin interfaceIContextCollectingSession- Parameters:
bmObject- The object to get the context for. Cannot benullor proxysegmentId- The DD segment identifier. May not benullcontextType- The target type of the context. May not benull- Returns:
- The corresponding context for the object. May not be
null
-
getTypedObjectContext
public <T extends IObjectDerivedDataContext> T getTypedObjectContext(IBmObject bmObject, String segmentId) Description copied from interface:IContextCollectingSessionConvenience method that checks the type of the internal context and casts it to the given type. Creates a new context if no context was collected since the last processing- Specified by:
getTypedObjectContextin interfaceIContextCollectingSession- Type Parameters:
T- A required type of the context- Parameters:
bmObject- A target object. May not benullsegmentId- A target DD segment identifier. May not benull- Returns:
- Required context if any. May not be
null
-
isContextExists
Description copied from interface:IContextCollectingSessionChecks if the DD context exists(supported) for the given object and segment- Specified by:
isContextExistsin interfaceIContextCollectingSession- Parameters:
bmObject- The object to get the context for. May not benullsegmentId- The DD segment identifier. May not benull- Returns:
- True if the context is exist/may be created
-
isContextExists
public boolean isContextExists(org.eclipse.emf.ecore.EClass topObjectEClass, long topObjectId, String segmentId) Description copied from interface:IContextCollectingSessionChecks if the DD context exists(supported) for the given object and segment- Specified by:
isContextExistsin interfaceIContextCollectingSession- Parameters:
topObjectEClass- Top objectEClass. May not benulltopObjectId- Top object identifier. May not benullsegmentId- The DD segment identifier. May not benull- Returns:
- True if the context is exist/may be created
-
getTypedObjectContext
public <T extends IObjectDerivedDataContext> T getTypedObjectContext(long bmObjectId, org.eclipse.emf.ecore.EClass objectEClass, String segmentId, Class<T> contextType) Description copied from interface:IContextCollectingSessionConvenience method that checks the type of the internal context and casts it to the given type. ThrowsIllegalArgumentExceptionin case of type mismatch.- Specified by:
getTypedObjectContextin interfaceIContextCollectingSession- Parameters:
bmObjectId- The identifier of the object to get the context for.objectEClass- TheEClassof the object to get the context for. Cannot benullsegmentId- The DD segment identifier. Cannot benullcontextType- The target type of the context. Cannot benull- Returns:
- The corresponding context for the object.
-
getTypedObjectContext
public <T extends IObjectDerivedDataContext> T getTypedObjectContext(Object objectId, org.eclipse.emf.ecore.EClass objectEClass, String segmentId, Class<T> contextType) Description copied from interface:IContextCollectingSessionConvenience method that checks the type of the internal context and casts it to the given type. Creates a new context if no context was collected since the last processing- Specified by:
getTypedObjectContextin interfaceIContextCollectingSessionobjectEClass- TheEClassof the object to get the context for. Cannot benullsegmentId- The DD segment identifier. May not benullcontextType- The target type of the context. May not benull- Returns:
- The corresponding context for the object. May not be
null
-
getExistingObjectContext
public <T extends IObjectDerivedDataContext> T getExistingObjectContext(Object objectId, String segmentId) Description copied from interface:IContextCollectingSessionGets existing (previously scheduled and not yet computed) context- Specified by:
getExistingObjectContextin interfaceIContextCollectingSession- Type Parameters:
T- A required type of the context- Parameters:
objectId- A target object identifier. May not benullsegmentId- A target DD segment identifier. May not benull- Returns:
- Required context if any.
nullif no object exists
-
isEmpty
public boolean isEmpty()Description copied from interface:IContextCollectingSessionChecks if the session has no collected contexts.- Specified by:
isEmptyin interfaceIContextCollectingSession- Returns:
- True if the session has no collected contexts; false otherwise.
-
scheduleOperation
public IObjectDerivedDataContext scheduleOperation(Consumer<org.eclipse.core.runtime.IProgressMonitor> operation, OperationType operationType, boolean important, DerivedDataSegmentBucket bucket) Description copied from interface:IContextCollectingSessionSchedules managed operation- Specified by:
scheduleOperationin interfaceIContextCollectingSession- Parameters:
operation- The oepration executable logic to schedule. May not benulloperationType- The type of the operation. May not benullbucket- The target stage of the async pipeline. May not benull
-
scheduleModalOperation
public Object scheduleModalOperation(Consumer<org.eclipse.core.runtime.IProgressMonitor> operation, DerivedDataSegmentBucket stage, IModalOperationController modalOperationController) Description copied from interface:IContextCollectingSessionSchedules a new modal operation with corresponding controller- Specified by:
scheduleModalOperationin interfaceIContextCollectingSession- Parameters:
operation- The operation executable to schedule. May not benullstage- The target stage of the operation. May not benullmodalOperationController- The modal operation controller. May not benull- Returns:
- The handle of the scheduled operation. May not be
null
-
removeOperation
Description copied from interface:IContextCollectingSessionRemoves previously scheduled operation- Specified by:
removeOperationin interfaceIContextCollectingSession- Parameters:
handle- The operation handle. May not benull
-