class DBService implements RolesProvider {

    void updateRoleMetaFields(Role role, RoleMeta meta) {

        if (meta.getSelfServe() != null) {
            role.setSelfServe(meta.getSelfServe());
        }
        if (meta.getMemberExpiryDays() != null) {
            role.setMemberExpiryDays(meta.getMemberExpiryDays());
        }
        if (meta.getServiceExpiryDays() != null) {
            role.setServiceExpiryDays(meta.getServiceExpiryDays());
        }
        if (meta.getGroupExpiryDays() != null) {
            role.setGroupExpiryDays(meta.getGroupExpiryDays());
        }
        if (meta.getTokenExpiryMins() != null) {
            role.setTokenExpiryMins(meta.getTokenExpiryMins());
        }
        if (meta.getCertExpiryMins() != null) {
            role.setCertExpiryMins(meta.getCertExpiryMins());
        }
        if (meta.getSignAlgorithm() != null) {
            role.setSignAlgorithm(meta.getSignAlgorithm());
        }
        if (meta.getReviewEnabled() != null) {
            role.setReviewEnabled(meta.getReviewEnabled());
        }
        if (meta.getNotifyRoles() != null) {
            role.setNotifyRoles(meta.getNotifyRoles());
        }
        if (meta.getMemberReviewDays() != null) {
            role.setMemberReviewDays(meta.getMemberReviewDays());
        }
        if (meta.getServiceReviewDays() != null) {
            role.setServiceReviewDays(meta.getServiceReviewDays());
        }
        if (meta.getUserAuthorityFilter() != null) {
            role.setUserAuthorityFilter(meta.getUserAuthorityFilter());
        }
        if (meta.getUserAuthorityExpiration() != null) {
            role.setUserAuthorityExpiration(meta.getUserAuthorityExpiration());
        }
    }

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

}