class DatawaveRoleManager implements RoleManager {

    @Override
    public boolean canRunQuery(QueryLogic<?> queryLogic, Principal principal) {
        if (principal instanceof DatawavePrincipal == false)
            return false;
        DatawavePrincipal datawavePrincipal = (DatawavePrincipal) principal;
        if (requiredRoles != null && !requiredRoles.isEmpty()) {
            Set<String> usersRoles = new HashSet<>(datawavePrincipal.getPrimaryUser().getRoles());
            return usersRoles.containsAll(requiredRoles);
        }
        return true;
    }

    public  DatawaveRoleManager();
    public  DatawaveRoleManager(Collection<String> requiredRoles);

}