class DBService implements RolesProvider {

    boolean updateRoleMemberDisabledState(ResourceContext ctx, ObjectStoreConnection con, List<RoleMember> roleMembers,
                                          final String domainName, final String roleName, final String principal,
                                          final String auditRef, final String caller) {

        boolean bDataChanged = false;
        for (RoleMember roleMember : roleMembers) {
            try {
                if (!con.updateRoleMemberDisabledState(domainName, roleName, roleMember.getMemberName(), principal,
                        roleMember.getSystemDisabled(), auditRef)) {
                    LOG.error("unable to update member {}", roleMember.getMemberName());
                    continue;
                }
            } catch (Exception ex) {
                LOG.error("unable to update member {} error: {}", roleMember.getMemberName(), ex.getMessage());
                continue;
            }

            // audit log the request

            StringBuilder auditDetails = new StringBuilder(ZMSConsts.STRING_BLDR_SIZE_DEFAULT);
            auditLogRoleMember(auditDetails, roleMember, true);
            auditLogRequest(ctx, domainName, auditRef, caller, ZMSConsts.HTTP_PUT, roleName,
                    auditDetails.toString());

            bDataChanged = true;
        }

        return bDataChanged;
    }

    public  DBService(ObjectStore store, AuditLogger auditLogger, ZMSConfig zmsConfig, AuditReferenceValidator auditReferenceValidator);

}