code: @Override
      public final void collect(@NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) throws CollectorException {
          for (ReportField field : reportFields) {
              try {
                  if (shouldCollect(context, config, field, reportBuilder)) {
                      collect(field, context, config, reportBuilder, target);
                  }
              } catch (Exception t) {
                  target.put(field, (String) null);
                  throw new CollectorException("Error while retrieving " + field.name() + " data:" + t.getMessage(), t);
              }
          }
      }
docs: Calls {@link #shouldCollect(Context, CoreConfiguration, ReportField, ReportBuilder)} for each ReportField
  and then {@link #collect(ReportField, Context, CoreConfiguration, ReportBuilder, CrashReportData)} if it returned true