Class SelectionContext


  • public class SelectionContext
    extends Object
    A SelectionContext holds information for a set Selection objects, mostly acting as a cache.

    Some of the information is identical to what's in the database and can be safely be GC'ed, so it lives in a memory-sensitive map (softMap), otherwise it's moved to a normal map (hardMap) (creation or deletion).

    • Field Detail

      • registry

        protected final io.dropwizard.metrics5.MetricRegistry registry
      • modifiedInTransactionCount

        protected final io.dropwizard.metrics5.Counter modifiedInTransactionCount
      • cacheHitCount

        protected final io.dropwizard.metrics5.Counter cacheHitCount
      • cacheGetTimer

        protected final io.dropwizard.metrics5.Timer cacheGetTimer
    • Method Detail

      • clearCaches

        public int clearCaches()
      • getSize

        public int getSize()
      • getSelectionOrNull

        protected Selection getSelectionOrNull​(Serializable selId)
        Gets the proper selection cache, if it exists, otherwise returns null.
        Since:
        9.2
      • recordCreated

        public void recordCreated​(SimpleFragment fragment)
        Records the fragment as a just-created selection member.
      • newSelection

        public void newSelection​(Serializable selId)
        Notes that a new empty selection should be created.
      • recordExisting

        public void recordExisting​(SimpleFragment fragment,
                                   boolean invalidate)
        Parameters:
        invalidate - true if this is for a fragment newly created by internal database process (copy, etc.) and must notified to other session; false if this is a normal read
      • recordRemoved

        public void recordRemoved​(SimpleFragment fragment)
        Removes a selection item from the selection.
      • recordRemoved

        public void recordRemoved​(Serializable id,
                                  Serializable selId)
        Removes a selection item from the selection.
      • recordRemovedSelection

        public void recordRemovedSelection​(Serializable selId)
        Records a selection as removed.
      • getSelectionFragment

        public SimpleFragment getSelectionFragment​(Serializable selId,
                                                   String filter)
        Find a fragment given its selection id and value.

        If the fragment is not in the context, fetch it from the mapper.

        Parameters:
        selId - the selection id
        filter - the value to filter on
        Returns:
        the fragment, or null if not found
      • getSelectionFragments

        public List<SimpleFragment> getSelectionFragments​(Serializable selId,
                                                          String filter)
        Finds all the selection fragments for a given id.

        No sorting on value is done.

        Parameters:
        selId - the selection id
        filter - the value to filter on, or null for all
        Returns:
        the list of fragments
      • getSelectionIds

        public Set<Serializable> getSelectionIds​(List<Serializable> values)
        Gets all the selection fragment ids for a given list of values.
        Since:
        9.2
      • postSave

        public void postSave()
      • markInvalidated

        public void markInvalidated​(Set<RowId> modified)
        Marks locally all the invalidations gathered by a Mapper operation (like a version restore).
      • gatherInvalidations

        public void gatherInvalidations​(VCSInvalidations invalidations)
        Gathers invalidations from this session.

        Called post-transaction to gathers invalidations to be sent to others.

      • processReceivedInvalidations

        public void processReceivedInvalidations​(Set<RowId> modified)
        Processes all invalidations accumulated.

        Called pre-transaction.