Class UnifiedCachingRowMapper

    • Field Detail

      • isXA

        protected static boolean isXA
      • 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
    • Constructor Detail

      • UnifiedCachingRowMapper

        public UnifiedCachingRowMapper()
    • Method Detail

      • setMetrics

        protected void setMetrics​(String repositoryName)
      • close

        public void close()
      • hasTransaction

        protected boolean hasTransaction()
      • useEhCache

        protected boolean useEhCache()
      • ehCachePut

        protected void ehCachePut​(net.sf.ehcache.Element element)
      • ehCacheGet

        protected net.sf.ehcache.Element ehCacheGet​(Serializable key)
      • ehCacheGetSize

        protected int ehCacheGetSize()
      • ehCacheRemove

        protected boolean ehCacheRemove​(Serializable key)
      • ehCacheRemoveAll

        protected void ehCacheRemoveAll()
      • isAbsent

        protected static boolean isAbsent​(Row row)
      • cachePut

        protected void cachePut​(Row row)
      • sortACLRows

        protected ACLRow[] sortACLRows​(ACLRow[] acls)
      • cachePutAbsent

        protected void cachePutAbsent​(RowId rowId)
      • cachePutAbsentIfNull

        protected void cachePutAbsentIfNull​(RowId rowId,
                                            Row row)
      • cachePutAbsentIfRowId

        protected void cachePutAbsentIfRowId​(RowId rowId)
      • cacheGet

        protected Row cacheGet​(RowId rowId)
      • cacheRemove

        protected void cacheRemove​(RowId rowId)
      • receiveInvalidations

        public VCSInvalidations receiveInvalidations()
        Description copied from interface: RowMapper
        Processes and returns the invalidations queued for processing by the cache (if any).

        Called pre-transaction by session start or transactionless save;

        Specified by:
        receiveInvalidations in interface RowMapper
        Returns:
        the invalidations, or null
      • 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 RowId> read​(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
      • getBinaryFulltext

        public Map<String,​String> getBinaryFulltext​(RowId rowId)
        Description copied from interface: RowMapper
        Gets the fulltext extracted from the binary fields.
        Specified by:
        getBinaryFulltext in interface RowMapper
        Parameters:
        rowId - the row id
        Returns:
        the fulltext string representation or null if unsupported
      • readCollectionRowArray

        public Serializable[] readCollectionRowArray​(RowId rowId)
        Description copied from interface: RowMapper
        Gets an array for a CollectionFragment from the database, given its table name and id. If no rows are found, an empty array is returned.
        Specified by:
        readCollectionRowArray in interface RowMapper
        Parameters:
        rowId - the row id
        Returns:
        the array
      • readSelectionRows

        public List<Row> readSelectionRows​(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
      • getDescendantsInfo

        public List<RowMapper.NodeInfo> getDescendantsInfo​(Serializable rootId)
        Description copied from interface: RowMapper
        Gets descendants infos from a given root node. This does not include information about the root node itself.
        Specified by:
        getDescendantsInfo in interface RowMapper
        Parameters:
        rootId - the root node id from which to get descendants info
        Returns:
        the list of descendant nodes info
      • 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
      • getCacheSize

        public long getCacheSize()
        Description copied from interface: RowMapper
        Evaluate the cached elements size
        Specified by:
        getCacheSize in interface RowMapper