Interface IContextCollectingSession


  • public interface IContextCollectingSession
    Context collecting session is used as a convenience wrapper around the context management facility during operations of context collection. The session tracks down used contexts and performs transparent blocking/unblocking of target contexts.
    • Method Detail

      • commit

        void commit()
        Commits the session, unlocking context objects being locked during the context collecting session.
      • getObjectContext

        IObjectDerivedDataContext getObjectContext​(IBmObject bmObject,
                                                   String segmentId)
        Gets 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
        Parameters:
        bmObject - The object to get the context for.
        segmentId - The DD segment identifier.
        Returns:
        The corresponding context for the object.
      • isContextExists

        boolean isContextExists​(IBmObject bmObject,
                                String segmentId)
        Checks if the DD context exists(supported) for the given object and segment
        Parameters:
        bmObject - The object to get the context for. May not be null
        segmentId - The DD segment identifier. May not be null
        Returns:
        True if the context is exist/may be created
      • isContextExists

        boolean isContextExists​(org.eclipse.emf.ecore.EClass topObjectEClass,
                                long topObjectId,
                                String segmentId)
        Checks if the DD context exists(supported) for the given object and segment
        Parameters:
        topObjectEClass - Top object EClass. May not be null
        topObjectId - Top object identifier. May not be null
        segmentId - The DD segment identifier. May not be null
        Returns:
        True if the context is exist/may be created
      • getServiceId

        Object getServiceId()
        Gets 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.
        Returns:
        The identifier of the service to check the equality against. Can be null,
      • getTypedObjectContext

        <T extends IObjectDerivedDataContext> T getTypedObjectContext​(IBmObject bmObject,
                                                                      String segmentId,
                                                                      Class<T> contextType)
        Convenience 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
        Parameters:
        bmObject - The object to get the context for. Cannot be null or proxy
        segmentId - The DD segment identifier. May not be null
        contextType - The target type of the context. May not be null
        Returns:
        The corresponding context for the object. May not be null
        Throws:
        IllegalArgumentException - Throws IllegalArgumentException in case of type mismatch.
      • getTypedObjectContext

        <T extends IObjectDerivedDataContext> T getTypedObjectContext​(IBmObject bmObject,
                                                                      String segmentId)
        Convenience 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
        Type Parameters:
        T - A required type of the context
        Parameters:
        bmObject - A target object. May not be null
        segmentId - A target DD segment identifier. May not be null
        Returns:
        Required context if any. May not be null
      • getTypedObjectContext

        <T extends IObjectDerivedDataContext> T getTypedObjectContext​(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. Throws IllegalArgumentException in case of type mismatch.
        Parameters:
        bmObjectId - The identifier of the object to get the context for.
        objectEClass - The EClass of the object to get the context for. Cannot be null
        segmentId - The DD segment identifier. Cannot be null
        contextType - The target type of the context. Cannot be null
        Returns:
        The corresponding context for the object.
      • getTypedObjectContext

        <T extends IObjectDerivedDataContext> T getTypedObjectContext​(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. Creates a new context if no context was collected since the last processing
        Parameters:
        bmObjectId - The identifier of the object to get the context for.
        objectEClass - The EClass of the object to get the context for. Cannot be null
        segmentId - The DD segment identifier. May not be null
        contextType - The target type of the context. May not be null
        Returns:
        The corresponding context for the object. May not be null
        Throws:
        IllegalArgumentException - Throws IllegalArgumentException in case of type mismatch.
      • getExistingObjectContext

        <T extends IObjectDerivedDataContext> T getExistingObjectContext​(Object objectId,
                                                                         String segmentId)
        Gets existing (previously scheduled and not yet computed) context
        Type Parameters:
        T - A required type of the context
        Parameters:
        objectId - A target object identifier. May not be null
        segmentId - A target DD segment identifier. May not be null
        Returns:
        Required context if any. null if no object exists
      • isEmpty

        boolean isEmpty()
        Checks if the session has no collected contexts.
        Returns:
        True if the session has no collected contexts; false otherwise.
      • scheduleOperation

        default IObjectDerivedDataContext scheduleOperation​(Consumer<org.eclipse.core.runtime.IProgressMonitor> operation,
                                                            OperationType operationType,
                                                            boolean important,
                                                            DerivedDataSegmentBucket stage)
        Schedules managed operation
        Parameters:
        operation - The oepration executable logic to schedule. May not be null
        operationType - The type of the operation. May not be null
        important -
        stage - The target stage of the async pipeline. May not be null
      • removeOperation

        void removeOperation​(IObjectDerivedDataContext handle)
        Removes previously scheduled operation
        Parameters:
        handle - The operation handle. May not be null
      • scheduleModalOperation

        default Object scheduleModalOperation​(Consumer<org.eclipse.core.runtime.IProgressMonitor> operation,
                                              DerivedDataSegmentBucket stage,
                                              IModalOperationController modalOperationController)
        Schedules a new modal operation with corresponding controller
        Parameters:
        operation - The operation executable to schedule. May not be null
        stage - The target stage of the operation. May not be null
        modalOperationController - The modal operation controller. May not be null
        Returns:
        The handle of the scheduled operation. May not be null