protected ActionableDynamicQuery getRoleActionableDynamicQuery(
      final PortletDataContext portletDataContext, final boolean export) {

    ActionableDynamicQuery actionableDynamicQuery =
        RoleLocalServiceUtil.getExportActionableDynamicQuery(portletDataContext);

    actionableDynamicQuery.setAddCriteriaMethod(
        new ActionableDynamicQuery.AddCriteriaMethod() {

          @Override
          public void addCriteria(DynamicQuery dynamicQuery) {
            portletDataContext.addDateRangeCriteria(dynamicQuery, "modifiedDate");

            long classNameId = PortalUtil.getClassNameId(Team.class);

            Property classNameIdProperty = PropertyFactoryUtil.forName("classNameId");

            dynamicQuery.add(classNameIdProperty.ne(classNameId));
          }
        });

    final ActionableDynamicQuery.PerformActionMethod performActionMethod =
        actionableDynamicQuery.getPerformActionMethod();

    actionableDynamicQuery.setPerformActionMethod(
        new ActionableDynamicQuery.PerformActionMethod() {

          @Override
          public void performAction(Object object) throws PortalException {

            if (!export) {
              return;
            }

            Role role = (Role) object;

            long defaultUserId =
                UserLocalServiceUtil.getDefaultUserId(portletDataContext.getCompanyId());

            if (!portletDataContext.getBooleanParameter(NAMESPACE, "system-roles")
                && (role.getUserId() == defaultUserId)) {

              return;
            }

            performActionMethod.performAction(object);
          }
        });

    return actionableDynamicQuery;
  }