Class SoftRefCachingRowMapper

    • Field Detail

      • cacheQueue

        public final VCSInvalidationsQueue cacheQueue
        The queue of cache invalidations received from other session, to process at pre-transaction time.
      • registry

        protected final io.dropwizard.metrics5.MetricRegistry registry
        Cache statistics
        Since:
        5.7
      • cacheHitCount

        protected io.dropwizard.metrics5.Counter cacheHitCount
      • cacheGetTimer

        protected io.dropwizard.metrics5.Timer cacheGetTimer
      • sorRows

        protected io.dropwizard.metrics5.Counter sorRows
      • sorGetTimer

        protected io.dropwizard.metrics5.Timer sorGetTimer
    • Method Detail

      • close

        public void close()
      • isAbsent

        protected static boolean isAbsent​(Row row)
      • sendInvalidations

        public void sendInvalidations​(VCSInvalidations invalidations)
        Description copied from interface: RowMapper
        Post-transaction invalidations notification.

        Called post-transaction by session commit/rollback or transactionless save.

        Specified by:
        sendInvalidations in interface RowMapper
        Parameters:
        invalidations - the known invalidations to send to others, or null
      • clearCache

        public void clearCache()
        Description copied from interface: RowMapper
        Clears the mapper's cache (if any)

        Called after a rollback, or a manual clear through RepositoryStatus MBean.

        Specified by:
        clearCache in interface RowMapper
      • rollback

        public void rollback()
        Description copied from interface: RowMapper
        Rollback the transaction.

        This is in the RowMapper interface because on rollback the cache must be invalidated.

        Specified by:
        rollback in interface RowMapper
      • read

        public List<? extends RowIdread​(Collection<RowId> rowIds,
                                          boolean cacheOnly)
        Description copied from interface: RowMapper
        Reads a set of rows for the given RowIds.

        For each requested row, either a Row is found and returned, or a RowId (not implementing Row) is returned to signify an absent row.

        Specified by:
        read in interface RowMapper
        Parameters:
        rowIds - the row ids (including their table name)
        cacheOnly - if true, only hit memory
        Returns:
        the collection of Rows (or RowIds if the row was absent from the database). Order is not the same as the input rowIds
      • write

        public void write​(RowMapper.RowBatch batch)
        Description copied from interface: RowMapper
        Writes a set of rows. This includes creating, updating and deleting rows.
        Specified by:
        write in interface RowMapper
        Parameters:
        batch - the set of rows and the operations to do on them
      • readSimpleRow

        public Row readSimpleRow​(RowId rowId)
        Description copied from interface: RowMapper
        Gets a row for a SimpleFragment from the database, given its table name and id. If the row doesn't exist, null is returned.
        Specified by:
        readSimpleRow in interface RowMapper
        Parameters:
        rowId - the row id
        Returns:
        the row, or null
      • readSelectionRows

        public List<RowreadSelectionRows​(SelectionType selType,
                                           Serializable selId,
                                           Serializable filter,
                                           Serializable criterion,
                                           boolean limitToOne)
        Description copied from interface: RowMapper
        Reads the rows corresponding to a selection.
        Specified by:
        readSelectionRows in interface RowMapper
        Parameters:
        selType - the selection type
        selId - the selection id (parent id for a hierarchy selection)
        filter - the filter value (name for a hierarchy selection)
        criterion - an optional additional criterion depending on the selection type (complex prop flag for a hierarchy selection)
        limitToOne - whether to stop after one row retrieved
        Returns:
        the list of rows
      • copy

        public RowMapper.CopyResult copy​(RowMapper.IdWithTypes source,
                                         Serializable destParentId,
                                         String destName,
                                         Row overwriteRow,
                                         boolean excludeSpecialChildren,
                                         boolean excludeACL)
        Description copied from interface: RowMapper
        Copies the hierarchy starting from a given row to a new parent with a new name.

        If the new parent is null, then this is a version creation, which doesn't recurse in regular children.

        If overwriteRow is passed, the copy is done onto this existing node as its root (version restore) instead of creating a new node in the parent.

        Specified by:
        copy in interface RowMapper
        Parameters:
        source - the id, primary type and mixin types of the row to copy
        destParentId - the new parent id, or null
        destName - the new name
        overwriteRow - when not null, the copy is done onto this existing row, and the values are set in hierarchy
        excludeSpecialChildren - the flag to exclude special children from copy
        excludeACL - the flag to exclude ACL from copy
        Returns:
        info about the copy
      • remove

        public void remove​(Serializable rootId,
                           List<RowMapper.NodeInfo> nodeInfos)
        Description copied from interface: RowMapper
        Deletes a hierarchy.
        Specified by:
        remove in interface RowMapper
        Parameters:
        rootId - the id of the root node to be deleted with its children
        nodeInfos - the information about all descendants being deleted along the root node