Package ome.util

Interface SqlAction

  • All Known Implementing Classes:
    PostgresSqlAction, SqlAction.Impl

    public interface SqlAction
    Single wrapper for all JDBC activities.

    This interface is meant to replace all uses of both JdbcTemplate and Session.createSQLQuery(String) for the entire OMERO code base.

    Since:
    4.2.1
    See Also:
    #73, #2684
    • Method Summary

      All Methods Instance Methods Abstract Methods Deprecated Methods 
      Modifier and Type Method Description
      boolean activeSession​(java.lang.String sessionUUID)
      Returns whether the given string is the UUID of a session that is currently active.
      void addMessageWithinDbPatchEnd​(java.lang.String version, int patch, java.lang.String message)
      Add a unique message to the DB patch table within the current patch.
      void addMessageWithinDbPatchStart​(java.lang.String version, int patch, java.lang.String message)
      Add a unique message to the DB patch table within the current patch.
      int changeGroupPermissions​(java.lang.Long id, java.lang.Long internal)  
      int changeTablePermissionsForGroup​(java.lang.String table, java.lang.Long id, java.lang.Long internal)  
      boolean clearPermissionsBit​(java.lang.String table, long id, int bit)
      Sets the given permissions bit to 0.
      int closeNode​(java.lang.String uuid)  
      int closeNodeSessions​(java.lang.String uuid)  
      int closeSessions​(java.lang.String uuid)  
      java.lang.String configValue​(java.lang.String name)  
      long countFormat​(java.lang.String name)  
      java.lang.String createIdsTempTable​(java.util.Collection<java.lang.Long> ids)
      Creates a temporary table filled with the given ids and returns its name.
      void createInsertTrigger​(java.lang.String name, java.lang.String table, java.lang.String procedure)
      Creates an insert trigger of the given name, for the given table, with the given procedure.
      void createSavepoint​(java.lang.String savepoint)  
      java.util.Set<java.lang.String> currentUserNames()  
      long currValue​(java.lang.String segmentName)  
      java.lang.String dbUuid()  
      java.lang.String dbVersion()  
      void deferConstraints()  
      int delConfigValue​(java.lang.String name)  
      void delCurrentEventLog​(java.lang.String key)  
      void deleteCurrentAdminPrivileges()
      Delete the current light administrator privileges for the current transaction.
      void deleteOldAdminPrivileges​(java.util.Collection<java.lang.Long> transactionIds)
      Delete the current light administrator privileges for the given transactions.
      int deleteRepoDeleteLogs​(SqlAction.DeleteLog template)
      Delete all SqlAction.DeleteLog entries which match all of the non-null fields provided in the template.
      java.util.List<java.lang.Long> fileIdsInDb​(java.lang.String uuid, java.util.Set<java.lang.String> mimetypes)
      Return all IDs matching the given mimetypes, or all IDs if mimetypes is null.
      java.lang.String fileRepo​(long fileId)  
      java.util.List<java.lang.Long> filterFileIdsByRepo​(java.lang.String uuid, java.util.List<java.lang.Long> fileIds)
      Find the original file IDs among those given that are in the given repository.
      java.util.Collection<java.lang.Long> findOldAdminPrivileges()
      Find the completed transactions among the current light administrator privileges.
      java.util.List<SqlAction.DeleteLog> findRepoDeleteLogs​(SqlAction.DeleteLog template)
      Find all SqlAction.DeleteLog entries which match all of the non-null fields provided in the template.
      java.lang.Long findRepoFile​(java.lang.String uuid, java.lang.String dirname, java.lang.String basename)
      java.lang.Long findRepoFile​(java.lang.String uuid, java.lang.String dirname, java.lang.String basename, java.lang.String mimetype)
      java.lang.Long findRepoFile​(java.lang.String uuid, java.lang.String dirname, java.lang.String basename, java.util.Set<java.lang.String> mimetypes)
      Lookup the id of an OriginalFile in a given repository or return null if none is found.
      java.lang.String findRepoFilePath​(java.lang.String uuid, long id)  
      java.util.List<java.lang.Long> findRepoFiles​(java.lang.String repoUuid, java.lang.String dirname)
      Return a list of original file ids that all have a path value matching the passed dirname in the given repository.
      java.util.Map<java.lang.String,​java.lang.Long> findRepoFiles​(java.lang.String uuid, java.lang.String dirname, java.util.List<java.lang.String> basenames, java.util.Set<java.lang.String> mimetypes)
      Like findRepoFile(String, String, String, Set), but queries in bulk and returns a map for the found IDs.
      java.lang.Long findRepoImageFromPixels​(long id)  
      java.util.List<java.lang.Long> findRepoPixels​(java.lang.String uuid, java.lang.String dirname, java.lang.String basename)  
      java.lang.String findRepoRootPath​(java.lang.String uuid)
      Find the path of the repository root.
      java.util.List<java.lang.Long> getDeletedIds​(java.lang.String entityType)  
      java.util.List<java.lang.Object[]> getEventLogPartitions​(java.util.Collection<java.lang.String> types, java.util.Collection<java.lang.String> actions, long offset, long limit)
      Loads up to "limit" event logs using partioning so that only the last event log of a particular (type, id) pair is returned.
      float getEventLogPercent​(java.lang.String key)
      Returns the percent (e.g.
      java.util.Map<java.lang.String,​java.lang.Long> getGroupIds​(java.util.Collection<java.lang.String> names)  
      long getGroupPermissions​(long id)
      Returns the permissions for the given group id.
      java.util.List<java.lang.Long> getLdapExperimenters()
      Gets the experimenters who have the ldap attribute enabled.
      java.lang.String getPasswordHash​(java.lang.Long experimenterID)  
      java.util.List<java.lang.String> getPixelsNamePathRepo​(long id)
      Retrieves the name, path and repo for the given pixels set.
      java.util.List<java.lang.Long> getShapeIds​(long roiId)  
      java.util.Map<java.lang.Long,​byte[]> getShareData​(java.util.List<java.lang.Long> ids)
      Returns a map of Share ID to Share data blob.
      java.lang.String getUserEmailByOmeName​(java.lang.String omeName)
      Load the email address for the given user.
      java.util.Collection<java.lang.String> getUserEmailsByGroup​(long groupId)
      Load all the non-empty email addresses for users in a given group.
      java.util.List<java.lang.String> getUserGroups​(java.lang.String userName)  
      java.lang.Long getUserId​(java.lang.String userName)
      Get the user's ID
      java.lang.String getUsername​(long userId)
      Get the user's name
      java.lang.String getUserPrettyNameByOmeName​(java.lang.String omeName)
      Load the pretty name for the given user.
      ExperimenterGroup groupInfoFor​(java.lang.String table, long id)
      Return a mostly unloaded ExperimenterGroup object containing only the id, name, and permissions.
      boolean hasUnicodeUnits()  
      void insertCurrentAdminPrivileges​(java.lang.Iterable<AdminPrivilege> privileges)
      Insert the current light administrator privileges for the current transaction.
      int insertFormat​(java.lang.String name)
      Deprecated.
      void insertLogs​(java.util.List<java.lang.Object[]> batchData)  
      int insertSession​(java.util.Map<java.lang.String,​java.lang.Object> params)  
      int isFileInRepo​(java.lang.String uuid, long id, java.util.Set<java.lang.String> mimetypes)  
      boolean isLdapExperimenter​(java.lang.Long id)
      Checks whether the specified experimenter ID has the ldap flag set.
      java.util.List<long[]> nextPixelsDataLogForRepo​(java.lang.String repo, long lastEventId, int howmany)
      Returns arrays of longs for the following SQL return values: experimenter, eventlog, entityid as pixels, rownumber The oldest N eventlogs with action = "PIXELDATA" and entitytype = "ome.model.core.Pixels" is found per user and returned.
      java.lang.Long nextSessionId()  
      long nextValue​(java.lang.String segmentName, int incrementSize)
      The implementation of this method guarantees that even if the current transaction fails that the value found will not be used by another transaction.
      long nodeId​(java.lang.String internal_uuid)  
      java.util.Date now()  
      void prepareSession​(long eventId, long userId, long groupId)
      Stores the current event context information in a temporary table so that triggers can make use of them.
      void refreshEventLogFromUpdatedAnnotations()
      Convert the _reindexing_required table to REINDEX entries in the event log.
      void releaseSavepoint​(java.lang.String savepoint)  
      int removePassword​(java.lang.Long id)  
      java.util.Map<java.lang.String,​java.lang.Object> repoFile​(long value)  
      int repoScriptCount​(java.lang.String uuid, java.util.Set<java.lang.String> mimetypes)  
      java.lang.String rewriteHql​(java.lang.String query, java.lang.String key, java.lang.Object value)
      Allows the specific database implementations a chance to modify queries.
      java.util.List<java.util.Map<java.lang.String,​java.lang.Object>> roiByImage​(long imageId)  
      void rollbackSavepoint​(java.lang.String savepoint)  
      java.lang.String scriptRepo​(long fileId, java.util.Set<java.lang.String> mimetypes)
      Similar to fileRepo(long), but only returns values for files which are also scripts.
      long selectCurrentEventLog​(java.lang.String key)  
      java.lang.Long sessionId​(java.lang.String uuid)  
      void setCurrentEventLog​(long id, java.lang.String key)  
      void setFileRepo​(java.util.Collection<java.lang.Long> ids, java.lang.String repoId)  
      boolean setPermissionsBit​(java.lang.String table, long id, int bit)
      Sets the given permissions bit to 1.
      void setPixelsNamePathRepo​(long pixId, java.lang.String name, java.lang.String path, java.lang.String repoId)  
      void setRoles​(long rootUserId, long guestUserId, long systemGroupId, long userGroupId, long guestGroupId)
      Note the roles in the database.
      long setStatsInfo​(Channel ch, StatsInfo si)  
      boolean setUserPassword​(java.lang.Long experimenterID, java.lang.String password)  
      int synchronizeJobs​(java.util.List<java.lang.Long> ids)  
      int updateConfiguration​(java.lang.String key, java.lang.String value)  
      int updateOrInsertConfigValue​(java.lang.String name, java.lang.String value)  
      int updateSessionUserIP​(long sessionId, java.lang.String userIP)  
    • Method Detail

      • prepareSession

        void prepareSession​(long eventId,
                            long userId,
                            long groupId)
        Stores the current event context information in a temporary table so that triggers can make use of them.
        Parameters:
        eventId -
        userId -
        groupId -
      • rewriteHql

        java.lang.String rewriteHql​(java.lang.String query,
                                    java.lang.String key,
                                    java.lang.Object value)
        Allows the specific database implementations a chance to modify queries.
        Parameters:
        query - String query (non-null) which is in effect.
        key - Key of the argument e.g. (:ids)
        value - value which has been passed in for that parameter.
        Returns:
        Returns a query replacement.
        See Also:
        ticket 3697
      • createIdsTempTable

        java.lang.String createIdsTempTable​(java.util.Collection<java.lang.Long> ids)
        Creates a temporary table filled with the given ids and returns its name. The table is only available for the period if the transaction.
      • createInsertTrigger

        void createInsertTrigger​(java.lang.String name,
                                 java.lang.String table,
                                 java.lang.String procedure)
        Creates an insert trigger of the given name, for the given table, with the given procedure. No error handling is performed.
      • activeSession

        boolean activeSession​(java.lang.String sessionUUID)
        Returns whether the given string is the UUID of a session that is currently active.
        Parameters:
        sessionUUID - NOT NULL.
        Returns:
        true if sessionUUID is an active session, false otherwise
      • getGroupPermissions

        long getGroupPermissions​(long id)
        Returns the permissions for the given group id.
      • groupInfoFor

        ExperimenterGroup groupInfoFor​(java.lang.String table,
                                       long id)
        Return a mostly unloaded ExperimenterGroup object containing only the id, name, and permissions.
      • fileRepo

        java.lang.String fileRepo​(long fileId)
      • scriptRepo

        java.lang.String scriptRepo​(long fileId,
                                    java.util.Set<java.lang.String> mimetypes)
        Similar to fileRepo(long), but only returns values for files which are also scripts. Null may be returned
        Parameters:
        fileId -
        mimetypes - null implies all files are checked
      • synchronizeJobs

        int synchronizeJobs​(java.util.List<java.lang.Long> ids)
      • findRepoFile

        java.lang.Long findRepoFile​(java.lang.String uuid,
                                    java.lang.String dirname,
                                    java.lang.String basename,
                                    java.util.Set<java.lang.String> mimetypes)
        Lookup the id of an OriginalFile in a given repository or return null if none is found.
        Parameters:
        uuid - The UUID of the repository (originalfile.sha1)
        dirname - the full directory path minus the file name.
        basename - i.e. the filename without any directory path
        mimetypes - if null, then no mimetype query fragement will be added.
        Returns:
        null if no OriginalFile is found, otherwise the id.
      • findRepoFiles

        java.util.Map<java.lang.String,​java.lang.Long> findRepoFiles​(java.lang.String uuid,
                                                                           java.lang.String dirname,
                                                                           java.util.List<java.lang.String> basenames,
                                                                           java.util.Set<java.lang.String> mimetypes)
        Like findRepoFile(String, String, String, Set), but queries in bulk and returns a map for the found IDs.
      • findRepoFiles

        java.util.List<java.lang.Long> findRepoFiles​(java.lang.String repoUuid,
                                                     java.lang.String dirname)
        Return a list of original file ids that all have a path value matching the passed dirname in the given repository.
        Parameters:
        repoUuid -
        dirname -
        Returns:
        possibly empty list of ids.
      • deleteRepoDeleteLogs

        int deleteRepoDeleteLogs​(SqlAction.DeleteLog template)
        Delete all SqlAction.DeleteLog entries which match all of the non-null fields provided in the template.
        Parameters:
        template - not-null
        Returns:
        the number of rows deleted.
      • findRepoRootPath

        java.lang.String findRepoRootPath​(java.lang.String uuid)
        Find the path of the repository root.
        Parameters:
        uuid - a repository UUID
        Returns:
        the repository root
      • findRepoFilePath

        java.lang.String findRepoFilePath​(java.lang.String uuid,
                                          long id)
      • findRepoPixels

        java.util.List<java.lang.Long> findRepoPixels​(java.lang.String uuid,
                                                      java.lang.String dirname,
                                                      java.lang.String basename)
      • findRepoImageFromPixels

        java.lang.Long findRepoImageFromPixels​(long id)
      • repoScriptCount

        int repoScriptCount​(java.lang.String uuid,
                            java.util.Set<java.lang.String> mimetypes)
        Parameters:
        uuid - repository identifier
        mimetypes - file mimetypes to check; if null, all files;
      • nextSessionId

        java.lang.Long nextSessionId()
      • fileIdsInDb

        java.util.List<java.lang.Long> fileIdsInDb​(java.lang.String uuid,
                                                   java.util.Set<java.lang.String> mimetypes)
        Return all IDs matching the given mimetypes, or all IDs if mimetypes is null.
      • filterFileIdsByRepo

        java.util.List<java.lang.Long> filterFileIdsByRepo​(java.lang.String uuid,
                                                           java.util.List<java.lang.Long> fileIds)
        Find the original file IDs among those given that are in the given repository.
        Parameters:
        uuid - a repository UUID
        fileIds - IDs of original files
        Returns:
        those IDs among those given whose original files are in the given repository
      • repoFile

        java.util.Map<java.lang.String,​java.lang.Object> repoFile​(long value)
      • nextPixelsDataLogForRepo

        java.util.List<long[]> nextPixelsDataLogForRepo​(java.lang.String repo,
                                                        long lastEventId,
                                                        int howmany)
        Returns arrays of longs for the following SQL return values: experimenter, eventlog, entityid as pixels, rownumber The oldest N eventlogs with action = "PIXELDATA" and entitytype = "ome.model.core.Pixels" is found per user and returned. Multiple eventlogs are returned per user in order to support multi-threading. Duplicate pixel ids are stripped.
      • countFormat

        long countFormat​(java.lang.String name)
      • insertFormat

        @Deprecated
        int insertFormat​(java.lang.String name)
        Deprecated.
      • closeSessions

        int closeSessions​(java.lang.String uuid)
      • closeNodeSessions

        int closeNodeSessions​(java.lang.String uuid)
      • closeNode

        int closeNode​(java.lang.String uuid)
      • nodeId

        long nodeId​(java.lang.String internal_uuid)
      • insertSession

        int insertSession​(java.util.Map<java.lang.String,​java.lang.Object> params)
      • updateSessionUserIP

        int updateSessionUserIP​(long sessionId,
                                java.lang.String userIP)
      • sessionId

        java.lang.Long sessionId​(java.lang.String uuid)
      • isFileInRepo

        int isFileInRepo​(java.lang.String uuid,
                         long id,
                         java.util.Set<java.lang.String> mimetypes)
        Parameters:
        uuid - Repository identifier
        id - file identifier
        mimetypes - Set of mimetypes to check; if null, all files.
      • removePassword

        int removePassword​(java.lang.Long id)
      • now

        java.util.Date now()
      • updateConfiguration

        int updateConfiguration​(java.lang.String key,
                                java.lang.String value)
      • dbVersion

        java.lang.String dbVersion()
      • configValue

        java.lang.String configValue​(java.lang.String name)
      • delConfigValue

        int delConfigValue​(java.lang.String name)
      • updateOrInsertConfigValue

        int updateOrInsertConfigValue​(java.lang.String name,
                                      java.lang.String value)
      • dbUuid

        java.lang.String dbUuid()
      • selectCurrentEventLog

        long selectCurrentEventLog​(java.lang.String key)
      • getEventLogPercent

        float getEventLogPercent​(java.lang.String key)
        Returns the percent (e.g. 0-100%) as calculated by the number of rows represented as completed by the configuration table row of this key divided by the total number of rows in the event log. Since this method executes 2 counts over the event log table, it can take a significant amount of time.
        Parameters:
        key - PersistentEventLogLoader key for lookup in the configuration table
        Returns:
        float value between 0 and 100 of the percent completed
      • getEventLogPartitions

        java.util.List<java.lang.Object[]> getEventLogPartitions​(java.util.Collection<java.lang.String> types,
                                                                 java.util.Collection<java.lang.String> actions,
                                                                 long offset,
                                                                 long limit)
        Loads up to "limit" event logs using partioning so that only the last event log of a particular (type, id) pair is returned. The contents of the object array are:
        1. the id of the event log (Long)
        2. the entity type of the event log (String)
        3. the entity id of the event log (Long)
        4. the action of the event log (String)
        5. the number of skipped event logs (Integer)
        Parameters:
        types - Collection of entityType strings which should be queried
        actions - Collection of ACTION strings which should be queried
        offset - Offset to the row which should be queried first
        limit - Maximum number of rows (after partionting) which should be returned.
      • setCurrentEventLog

        void setCurrentEventLog​(long id,
                                java.lang.String key)
      • delCurrentEventLog

        void delCurrentEventLog​(java.lang.String key)
      • refreshEventLogFromUpdatedAnnotations

        void refreshEventLogFromUpdatedAnnotations()
        Convert the _reindexing_required table to REINDEX entries in the event log.
      • nextValue

        long nextValue​(java.lang.String segmentName,
                       int incrementSize)
        The implementation of this method guarantees that even if the current transaction fails that the value found will not be used by another transaction. Database implementations can choose whether to do this at the procedure level or by using transaction PROPAGATION settings in Java.
        Parameters:
        segmentName -
        incrementSize -
        See Also:
        ticket 3697, ticket 3253
      • currValue

        long currValue​(java.lang.String segmentName)
      • insertLogs

        void insertLogs​(java.util.List<java.lang.Object[]> batchData)
      • roiByImage

        java.util.List<java.util.Map<java.lang.String,​java.lang.Object>> roiByImage​(long imageId)
      • getShapeIds

        java.util.List<java.lang.Long> getShapeIds​(long roiId)
      • setUserPassword

        boolean setUserPassword​(java.lang.Long experimenterID,
                                java.lang.String password)
      • getPasswordHash

        java.lang.String getPasswordHash​(java.lang.Long experimenterID)
      • getUserId

        java.lang.Long getUserId​(java.lang.String userName)
        Get the user's ID
        Parameters:
        userName - the user's name
        Returns:
        their ID, or null if they cannot be found
      • getUsername

        java.lang.String getUsername​(long userId)
        Get the user's name
        Parameters:
        userId - the user's ID
        Returns:
        their name, or null if they cannot be found
      • getUserPrettyNameByOmeName

        java.lang.String getUserPrettyNameByOmeName​(java.lang.String omeName)
        Load the pretty name for the given user.
        Parameters:
        omeName - a user's OME name
        Returns:
        the user's name for presentation, may be null if their OME name does not exist
      • getUserEmailByOmeName

        java.lang.String getUserEmailByOmeName​(java.lang.String omeName)
        Load the email address for the given user.
        Parameters:
        omeName - a user's OME name
        Returns:
        the user's email address, may be null if they have none or their OME name does not exist
      • getUserEmailsByGroup

        java.util.Collection<java.lang.String> getUserEmailsByGroup​(long groupId)
        Load all the non-empty email addresses for users in a given group.
        Parameters:
        groupId -
        Returns:
        a non-null Collection of non-empty user email addresses.
      • getLdapExperimenters

        java.util.List<java.lang.Long> getLdapExperimenters()
        Gets the experimenters who have the ldap attribute enabled.
        Returns:
        a list of user IDs.
      • isLdapExperimenter

        boolean isLdapExperimenter​(java.lang.Long id)
        Checks whether the specified experimenter ID has the ldap flag set.
        Parameters:
        id - The experimenter ID.
        Returns:
        true if the experimenter is an LDAP user; false otherwise.
      • getGroupIds

        java.util.Map<java.lang.String,​java.lang.Long> getGroupIds​(java.util.Collection<java.lang.String> names)
      • getUserGroups

        java.util.List<java.lang.String> getUserGroups​(java.lang.String userName)
      • setFileRepo

        void setFileRepo​(java.util.Collection<java.lang.Long> ids,
                         java.lang.String repoId)
      • setPixelsNamePathRepo

        void setPixelsNamePathRepo​(long pixId,
                                   java.lang.String name,
                                   java.lang.String path,
                                   java.lang.String repoId)
      • getDeletedIds

        java.util.List<java.lang.Long> getDeletedIds​(java.lang.String entityType)
      • createSavepoint

        void createSavepoint​(java.lang.String savepoint)
      • releaseSavepoint

        void releaseSavepoint​(java.lang.String savepoint)
      • rollbackSavepoint

        void rollbackSavepoint​(java.lang.String savepoint)
      • deferConstraints

        void deferConstraints()
      • getShareData

        java.util.Map<java.lang.Long,​byte[]> getShareData​(java.util.List<java.lang.Long> ids)
        Returns a map of Share ID to Share data blob.
        Parameters:
        ids - IDs of Shares for which data blobs are to be returned.
        Returns:
        map of ID to data blob.
      • getPixelsNamePathRepo

        java.util.List<java.lang.String> getPixelsNamePathRepo​(long id)
                                                        throws InternalException
        Retrieves the name, path and repo for the given pixels set. If the id is not found, null is returned.
        Throws:
        InternalException
      • currentUserNames

        java.util.Set<java.lang.String> currentUserNames()
      • changeGroupPermissions

        int changeGroupPermissions​(java.lang.Long id,
                                   java.lang.Long internal)
      • changeTablePermissionsForGroup

        int changeTablePermissionsForGroup​(java.lang.String table,
                                           java.lang.Long id,
                                           java.lang.Long internal)
      • hasUnicodeUnits

        boolean hasUnicodeUnits()
        Returns:
        if the database's type system contains correctly encoded units of measure
      • addMessageWithinDbPatchStart

        void addMessageWithinDbPatchStart​(java.lang.String version,
                                          int patch,
                                          java.lang.String message)
        Add a unique message to the DB patch table within the current patch. This method marks the start of the corresponding DB adjustment process.
        Parameters:
        version - the version of the current DB
        patch - the patch of the current DB
        message - the new message to note
      • addMessageWithinDbPatchEnd

        void addMessageWithinDbPatchEnd​(java.lang.String version,
                                        int patch,
                                        java.lang.String message)
        Add a unique message to the DB patch table within the current patch. This method marks the end of the corresponding DB adjustment process.
        Parameters:
        version - the version of the current DB
        patch - the patch of the current DB
        message - the new message to note
      • setPermissionsBit

        boolean setPermissionsBit​(java.lang.String table,
                                  long id,
                                  int bit)
        Sets the given permissions bit to 1. Note: Actually sets the bit to 1 in the value stored in the database, does not adopt the inverse convention associated with permissions flags.
        Parameters:
        table - the table in which to find the row
        id - the value of the table's id column that identifies the row to update
        bit - the bit number to set to 1, counting from 0 as the least significant bit
        Returns:
        if the row was found in the table, regardless of the given bit's previous value
      • clearPermissionsBit

        boolean clearPermissionsBit​(java.lang.String table,
                                    long id,
                                    int bit)
        Sets the given permissions bit to 0. Note: Actually sets the bit to 0 in the value stored in the database, does not adopt the inverse convention associated with permissions flags.
        Parameters:
        table - the table in which to find the row
        id - the value of the table's id column that identifies the row to update
        bit - the bit number to set to 0, counting from 0 as the least significant bit
        Returns:
        if the row was found in the table, regardless of the given bit's previous value
      • setRoles

        void setRoles​(long rootUserId,
                      long guestUserId,
                      long systemGroupId,
                      long userGroupId,
                      long guestGroupId)
        Note the roles in the database.
        Parameters:
        rootUserId - the root user's ID
        guestUserId - the guest user's ID
        systemGroupId - the system group's ID
        userGroupId - the user group's ID
        guestGroupId - the guest group's ID
      • findOldAdminPrivileges

        java.util.Collection<java.lang.Long> findOldAdminPrivileges()
        Find the completed transactions among the current light administrator privileges.
        Returns:
        the transaction IDs
      • deleteOldAdminPrivileges

        void deleteOldAdminPrivileges​(java.util.Collection<java.lang.Long> transactionIds)
        Delete the current light administrator privileges for the given transactions.
        Parameters:
        transactionIds - the transaction IDs to delete
      • deleteCurrentAdminPrivileges

        void deleteCurrentAdminPrivileges()
        Delete the current light administrator privileges for the current transaction.
      • insertCurrentAdminPrivileges

        void insertCurrentAdminPrivileges​(java.lang.Iterable<AdminPrivilege> privileges)
        Insert the current light administrator privileges for the current transaction.
        Parameters:
        privileges - some light administrator privileges