Class PartBasedObjectContext

    • Constructor Detail

      • PartBasedObjectContext

        public PartBasedObjectContext​(long bmObjectId,
                                      org.eclipse.emf.ecore.EClass eClass,
                                      String segmentId,
                                      boolean removal,
                                      Object computationCause,
                                      long baseVersion)
        Creates a new instance of the context.
        Parameters:
        bmObjectId - The identifier of the top BM object this context corresponds to
        eClass - The EClass of the of the top BM object this context corresponds to
        segmentId - The identifier of DD segment this context belongs to
        computationCause - The identifier of the sync. session
        baseVersion - The base verison of the context
      • PartBasedObjectContext

        public PartBasedObjectContext​(Object objectId,
                                      org.eclipse.emf.ecore.EClass eClass,
                                      String segmentId,
                                      boolean removal,
                                      Object computationCause,
                                      long baseVersion)
        Creates a new instance of the context.
        Parameters:
        bmObjectId - The identifier of the top BM object this context corresponds to
        eClass - The EClass of the of the top BM object this context corresponds to
        segmentId - The identifier of DD segment this context belongs to
        computationCause - The identifier of the sync. session
        baseVersion - The base verison of the context
    • Method Detail

      • addParts

        public void addParts​(Collection<String> parts)
        Adds new DD parts to the context.
        Parameters:
        parts - The DD part set that should be calculated for the object.
      • clear

        public void clear()
        Description copied from interface: IObjectDerivedDataContext
        Clears the context. Implemenentations aren't required to be safe, the thread safety during the snapshot creation is supported by the DD context management facilities (due to complexity and performance reasons).
        Specified by:
        clear in interface IObjectDerivedDataContext
      • getContainmentContext

        public PartBasedContainmentContext getContainmentContext​(IBmObject bmObject)
        Gets context for the containment object.
        Parameters:
        bmObject - The object to get context for.
        Returns:
        The specific containment context.
      • getContainmentContext

        public PartBasedContainmentContext getContainmentContext​(long bmObjectId)
        Gets context for the containment object.
        Parameters:
        bmObjectId - The BM object identifier to get context for.
        Returns:
        The specific containment context.
      • getContainmentContexts

        public Collection<PartBasedContainmentContext> getContainmentContexts()
        Gets the collection containment contexts associated with this context.
        Returns:
        The collection of containment contexts.
      • getSnapshot

        public IObjectDerivedDataContext getSnapshot()
        Description copied from interface: IObjectDerivedDataContext
        Gets the snapshot of the context. Implemenentations aren't required to be safe, the thread safety during the snapshot creation is supported by the DD context management facilities (due to complexity and performance reasons).
        Specified by:
        getSnapshot in interface IObjectDerivedDataContext
        Returns:
        The current snapshot of the context state.
      • clearExtendedData

        protected void clearExtendedData()
        Cleans extended data of the context on full rebuild to free the resources
      • copyExtendedDataForContainments

        protected void copyExtendedDataForContainments​(PartBasedContainmentContext sourceContext,
                                                       PartBasedContainmentContext destinationContext)
        Copies extended data of the containment context
        Parameters:
        sourceContext - Source context to copy data from. May not be null
        destinationContext - Destination context to copy data to. May not be null
      • createPartBasedContainmentContext

        protected PartBasedContainmentContext createPartBasedContainmentContext​(long bmObjectId)
        Creates a corresponding part-based containment context. May be used to customize containment contexts in client applications
        Parameters:
        bmObjectId - The BM object identifier to get context for.
        Returns:
        The context. May not be null
      • createTopObjectContextSnapshot

        protected PartBasedObjectContext createTopObjectContextSnapshot()
        Creates snapshot instance of the current context. Do not create snapshot of containments within this method, only data of the top object context itself must be copied
        Returns:
        The snapshot instance of the current context. May not be null
      • mergeExtendedDataUpdates

        protected boolean mergeExtendedDataUpdates​(IObjectDerivedDataContext context)
        Merges extended data updates.
        Parameters:
        context - The context to get data from. May not be null
        Returns:
        True if changes were made during the merge of the extended updates