Example usage for org.apache.commons.csv CSVPrinter flush

List of usage examples for org.apache.commons.csv CSVPrinter flush

Introduction

In this page you can find the example usage for org.apache.commons.csv CSVPrinter flush.

Prototype

@Override
public void flush() throws IOException 

Source Link

Document

Flushes the underlying stream.

Usage

From source file:org.easybatch.extensions.apache.common.csv.ApacheCommonCsvRecordMarshaller.java

@Override
public StringRecord processRecord(final GenericRecord record) throws RecordMarshallingException {
    try {/* ww  w  . j  ava 2s  . c  o m*/
        StringWriter stringWriter = new StringWriter();
        CSVPrinter csvPrinter = new CSVPrinter(stringWriter, csvFormat);
        Iterable<Object> iterable = fieldExtractor.extractFields(record.getPayload());
        csvPrinter.printRecord(iterable);
        csvPrinter.flush();
        return new StringRecord(record.getHeader(), stringWriter.toString());
    } catch (Exception e) {
        throw new RecordMarshallingException(e);
    }
}

From source file:org.eclipse.sw360.portal.portlets.admin.UserPortlet.java

public void backUpUsers(ResourceRequest request, ResourceResponse response)
        throws PortletException, IOException, SystemException, PortalException {
    List<User> liferayUsers;
    try {//  ww  w .j  a v a2  s  .  c o m
        liferayUsers = UserLocalServiceUtil.getUsers(QueryUtil.ALL_POS, QueryUtil.ALL_POS);
    } catch (SystemException e) {
        log.error("Could not get user List from liferay", e);
        liferayUsers = Collections.emptyList();
    }

    final ByteArrayOutputStream outB = new ByteArrayOutputStream();
    Writer out = new BufferedWriter(new OutputStreamWriter(outB));

    CSVPrinter csvPrinter = new CSVPrinter(out, CommonUtils.sw360CsvFormat);

    csvPrinter.printRecord("GivenName", "Lastname", "Email", "Department", "UserGroup", "GID", "isMale",
            "PasswdHash", "wantsMailNotification");
    for (User liferayUser : liferayUsers) {

        String firstName = liferayUser.getFirstName();
        String lastName = liferayUser.getLastName();
        String emailAddress = liferayUser.getEmailAddress();
        List<Organization> organizations = liferayUser.getOrganizations();

        String department = "";

        if (organizations != null && organizations.size() > 0) {
            department = organizations.get(0).getName();
        }

        String gid = liferayUser.getOpenId();
        boolean isMale = liferayUser.isMale();
        String passwordHash = liferayUser.getPassword();
        if (isNullOrEmpty(emailAddress) || isNullOrEmpty(department)) {
            continue;
        }
        org.eclipse.sw360.datahandler.thrift.users.User sw360user = UserCacheHolder
                .getUserFromEmail(emailAddress);
        boolean wantsMailNotification = sw360user.isSetWantsMailNotification() ? sw360user.wantsMailNotification
                : true;
        String userGroup = sw360user.getUserGroup().toString();

        csvPrinter.printRecord(firstName, lastName, emailAddress, department, userGroup, gid, isMale,
                passwordHash, wantsMailNotification);
    }

    csvPrinter.flush();
    csvPrinter.close();

    ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(outB.toByteArray());
    PortletResponseUtil.sendFile(request, response, "Users.csv", byteArrayInputStream, "text/csv");
}

From source file:org.zanata.client.commands.stats.CsvStatisticsOutput.java

@Override
@SuppressFBWarnings("DM_DEFAULT_ENCODING")
public void write(ContainerTranslationStatistics statistics) {
    try {//w  w  w  .  j  a v  a2s.  c o m
        OutputStreamWriter streamWriter = new OutputStreamWriter(System.out);
        try {
            CSVPrinter csvPrinter = new CSVPrinter(streamWriter,
                    CSVFormat.DEFAULT.withRecordSeparator(NEW_LINE_SEPARATOR));

            try {
                writeToCsv(statistics, csvPrinter);
                csvPrinter.flush();
            } finally {
                csvPrinter.close();
            }
        } finally {
            streamWriter.close();
        }
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

From source file:org.zanata.client.commands.stats.CsvStatisticsOutput.java

private void writeToCsv(ContainerTranslationStatistics statistics, CSVPrinter writer) throws IOException {

    writer.printRecord(Lists.newArrayList());

    // Display headers
    Link sourceRef = statistics.getRefs().findLinkByRel("statSource");
    if (sourceRef.getType().equals("PROJ_ITER")) {
        writer.printRecord(Lists.newArrayList("Project Version: ", statistics.getId()));
    } else if (sourceRef.getType().equals("DOC")) {
        writer.printRecord(Lists.newArrayList("Document: ", statistics.getId()));
    }// w w  w.  java 2  s . c  o m

    // Write headers
    writer.printRecord(Lists.newArrayList("Locale", "Unit", "Total", "Translated", "Need Review",
            "Untranslated", "Last Translated"));

    // Write stats
    if (statistics.getStats() != null) {
        for (TranslationStatistics transStats : statistics.getStats()) {
            writer.printRecord(Lists.newArrayList(transStats.getLocale(), transStats.getUnit().toString(),
                    Long.toString(transStats.getTotal()), Long.toString(transStats.getTranslatedAndApproved()),
                    Long.toString(transStats.getDraft()), Long.toString(transStats.getUntranslated()),
                    transStats.getLastTranslated()));
        }
    }

    writer.printRecord(Lists.newArrayList());

    try {
        writer.flush();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }

    // Detailed stats
    if (statistics.getDetailedStats() != null) {
        for (ContainerTranslationStatistics detailedStats : statistics.getDetailedStats()) {
            writeToCsv(detailedStats, writer);
        }
    }
}

From source file:password.pwm.event.AuditManager.java

public int outputVaultToCsv(OutputStream outputStream, final Locale locale, final boolean includeHeader)
        throws IOException {
    final Configuration config = null;

    final CSVPrinter csvPrinter = Helper.makeCsvPrinter(outputStream);

    csvPrinter.printComment(" " + PwmConstants.PWM_APP_NAME + " audit record output ");
    csvPrinter.printComment(" " + PwmConstants.DEFAULT_DATETIME_FORMAT.format(new Date()));

    if (includeHeader) {
        final List<String> headers = new ArrayList<>();
        headers.add("Type");
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_EventCode", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_Timestamp", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_GUID", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_Message", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_Instance", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_PerpetratorID", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_PerpetratorDN", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_TargetID", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_TargetDN", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_SourceAddress", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_SourceHost", config,
                password.pwm.i18n.Admin.class));
        csvPrinter.printRecord(headers);
    }/*from w  w w . ja  va2 s.c o  m*/

    int counter = 0;
    for (final Iterator<AuditRecord> recordIterator = readVault(); recordIterator.hasNext();) {
        final AuditRecord loopRecord = recordIterator.next();
        counter++;

        final List<String> lineOutput = new ArrayList<>();
        lineOutput.add(loopRecord.getEventCode().getType().toString());
        lineOutput.add(loopRecord.getEventCode().toString());
        lineOutput.add(PwmConstants.DEFAULT_DATETIME_FORMAT.format(loopRecord.getTimestamp()));
        lineOutput.add(loopRecord.getGuid());
        lineOutput.add(loopRecord.getMessage() == null ? "" : loopRecord.getMessage());
        if (loopRecord instanceof SystemAuditRecord) {
            lineOutput.add(((SystemAuditRecord) loopRecord).getInstance());
        }
        if (loopRecord instanceof UserAuditRecord) {
            lineOutput.add(((UserAuditRecord) loopRecord).getPerpetratorID());
            lineOutput.add(((UserAuditRecord) loopRecord).getPerpetratorDN());
            lineOutput.add("");
            lineOutput.add("");
            lineOutput.add(((UserAuditRecord) loopRecord).getSourceAddress());
            lineOutput.add(((UserAuditRecord) loopRecord).getSourceHost());
        }
        if (loopRecord instanceof HelpdeskAuditRecord) {
            lineOutput.add(((HelpdeskAuditRecord) loopRecord).getPerpetratorID());
            lineOutput.add(((HelpdeskAuditRecord) loopRecord).getPerpetratorDN());
            lineOutput.add(((HelpdeskAuditRecord) loopRecord).getTargetID());
            lineOutput.add(((HelpdeskAuditRecord) loopRecord).getTargetDN());
            lineOutput.add(((HelpdeskAuditRecord) loopRecord).getSourceAddress());
            lineOutput.add(((HelpdeskAuditRecord) loopRecord).getSourceHost());
        }
        csvPrinter.printRecord(lineOutput);
    }
    csvPrinter.flush();

    return counter;
}

From source file:password.pwm.http.servlet.configmanager.DebugItemGenerator.java

static void outputZipDebugFile(final PwmRequest pwmRequest, final ZipOutputStream zipOutput,
        final String pathPrefix) throws IOException, PwmUnrecoverableException {
    final PwmApplication pwmApplication = pwmRequest.getPwmApplication();
    final String DEBUG_FILENAME = "zipDebugGeneration.csv";

    final ByteArrayOutputStream debugGeneratorLogBaos = new ByteArrayOutputStream();
    final CSVPrinter debugGeneratorLogFile = JavaHelper.makeCsvPrinter(debugGeneratorLogBaos);

    for (final Class<? extends DebugItemGenerator.Generator> serviceClass : DEBUG_ZIP_ITEM_GENERATORS) {
        try {/*from w  w w .  j  a  va  2 s .co  m*/
            final Instant startTime = Instant.now();
            LOGGER.trace(pwmRequest, "beginning output of item " + serviceClass.getSimpleName());
            final Object newInstance = serviceClass.newInstance();
            final DebugItemGenerator.Generator newGeneratorItem = (DebugItemGenerator.Generator) newInstance;
            zipOutput.putNextEntry(new ZipEntry(pathPrefix + newGeneratorItem.getFilename()));
            newGeneratorItem.outputItem(pwmApplication, pwmRequest, zipOutput);
            zipOutput.closeEntry();
            zipOutput.flush();
            final String finishMsg = "completed output of " + newGeneratorItem.getFilename() + " in "
                    + TimeDuration.fromCurrent(startTime).asCompactString();
            LOGGER.trace(pwmRequest, finishMsg);
            debugGeneratorLogFile.printRecord(JavaHelper.toIsoDate(new Date()), finishMsg);
        } catch (Throwable e) {
            final String errorMsg = "unexpected error executing debug item output class '"
                    + serviceClass.getName() + "', error: " + e.toString();
            LOGGER.error(pwmRequest, errorMsg);
            debugGeneratorLogFile.printRecord(JavaHelper.toIsoDate(new Date()), errorMsg);
            final Writer stackTraceOutput = new StringWriter();
            e.printStackTrace(new PrintWriter(stackTraceOutput));
            debugGeneratorLogFile.printRecord(stackTraceOutput);
        }
    }

    try {
        zipOutput.putNextEntry(new ZipEntry(pathPrefix + DEBUG_FILENAME));
        debugGeneratorLogFile.flush();
        zipOutput.write(debugGeneratorLogBaos.toByteArray());
        zipOutput.closeEntry();
    } catch (Exception e) {
        LOGGER.error("error generating " + DEBUG_FILENAME + ": " + e.getMessage());
    }

    zipOutput.flush();
}

From source file:password.pwm.svc.event.AuditService.java

public int outputVaultToCsv(final OutputStream outputStream, final Locale locale, final boolean includeHeader)
        throws IOException {
    final Configuration config = null;

    final CSVPrinter csvPrinter = JavaHelper.makeCsvPrinter(outputStream);

    csvPrinter.printComment(" " + PwmConstants.PWM_APP_NAME + " audit record output ");
    csvPrinter.printComment(" " + JavaHelper.toIsoDate(Instant.now()));

    if (includeHeader) {
        final List<String> headers = new ArrayList<>();
        headers.add("Type");
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_EventCode", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_Timestamp", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_GUID", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_Message", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_Instance", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_PerpetratorID", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_PerpetratorDN", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_TargetID", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_TargetDN", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_SourceAddress", config,
                password.pwm.i18n.Admin.class));
        headers.add(LocaleHelper.getLocalizedMessage(locale, "Field_Audit_SourceHost", config,
                password.pwm.i18n.Admin.class));
        csvPrinter.printRecord(headers);
    }/*  w  w w  .  j  a v a 2  s . c o  m*/

    int counter = 0;
    for (final Iterator<AuditRecord> recordIterator = readVault(); recordIterator.hasNext();) {
        final AuditRecord loopRecord = recordIterator.next();
        counter++;

        final List<String> lineOutput = new ArrayList<>();
        lineOutput.add(loopRecord.getEventCode().getType().toString());
        lineOutput.add(loopRecord.getEventCode().toString());
        lineOutput.add(JavaHelper.toIsoDate(loopRecord.getTimestamp()));
        lineOutput.add(loopRecord.getGuid());
        lineOutput.add(loopRecord.getMessage() == null ? "" : loopRecord.getMessage());
        if (loopRecord instanceof SystemAuditRecord) {
            lineOutput.add(((SystemAuditRecord) loopRecord).getInstance());
        }
        if (loopRecord instanceof UserAuditRecord) {
            lineOutput.add(((UserAuditRecord) loopRecord).getPerpetratorID());
            lineOutput.add(((UserAuditRecord) loopRecord).getPerpetratorDN());
            lineOutput.add("");
            lineOutput.add("");
            lineOutput.add(((UserAuditRecord) loopRecord).getSourceAddress());
            lineOutput.add(((UserAuditRecord) loopRecord).getSourceHost());
        }
        if (loopRecord instanceof HelpdeskAuditRecord) {
            lineOutput.add(((HelpdeskAuditRecord) loopRecord).getPerpetratorID());
            lineOutput.add(((HelpdeskAuditRecord) loopRecord).getPerpetratorDN());
            lineOutput.add(((HelpdeskAuditRecord) loopRecord).getTargetID());
            lineOutput.add(((HelpdeskAuditRecord) loopRecord).getTargetDN());
            lineOutput.add(((HelpdeskAuditRecord) loopRecord).getSourceAddress());
            lineOutput.add(((HelpdeskAuditRecord) loopRecord).getSourceHost());
        }
        csvPrinter.printRecord(lineOutput);
    }
    csvPrinter.flush();

    return counter;
}

From source file:password.pwm.svc.report.ReportCsvUtility.java

public void outputToCsv(final OutputStream outputStream, final boolean includeHeader, final Locale locale,
        final Configuration config, final ReportColumnFilter columnFilter) throws IOException,
        ChaiUnavailableException, ChaiOperationException, PwmUnrecoverableException, PwmOperationalException {
    final CSVPrinter csvPrinter = JavaHelper.makeCsvPrinter(outputStream);
    final Class localeClass = password.pwm.i18n.Admin.class;
    if (includeHeader) {
        final List<String> headerRow = new ArrayList<>();

        if (columnFilter.isUsernameVisible()) {
            headerRow.add(/* www  .  j  a v a2  s  .  c o  m*/
                    LocaleHelper.getLocalizedMessage(locale, "Field_Report_Username", config, localeClass));
        }
        if (columnFilter.isUserDnVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_UserDN", config, localeClass));
        }
        if (columnFilter.isLdapProfileVisible()) {
            headerRow.add(
                    LocaleHelper.getLocalizedMessage(locale, "Field_Report_LDAP_Profile", config, localeClass));
        }
        if (columnFilter.isEmailVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_Email", config, localeClass));
        }
        if (columnFilter.isUserGuidVisible()) {
            headerRow.add(
                    LocaleHelper.getLocalizedMessage(locale, "Field_Report_UserGuid", config, localeClass));
        }
        if (columnFilter.isAccountExpirationTimeVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_AccountExpireTime", config,
                    localeClass));
        }
        if (columnFilter.isPasswordExpirationTimeVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_PwdExpireTime", config,
                    localeClass));
        }
        if (columnFilter.isPasswordChangeTimeVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_PwdChangeTime", config,
                    localeClass));
        }
        if (columnFilter.isResponseSetTimeVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_ResponseSaveTime", config,
                    localeClass));
        }
        if (columnFilter.isLastLoginTimeVisible()) {
            headerRow.add(
                    LocaleHelper.getLocalizedMessage(locale, "Field_Report_LastLogin", config, localeClass));
        }
        if (columnFilter.isHasResponsesVisible()) {
            headerRow.add(
                    LocaleHelper.getLocalizedMessage(locale, "Field_Report_HasResponses", config, localeClass));
        }
        if (columnFilter.isHasHelpdeskResponsesVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_HasHelpdeskResponses", config,
                    localeClass));
        }
        if (columnFilter.isResponseStorageMethodVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_ResponseStorageMethod", config,
                    localeClass));
        }
        if (columnFilter.isResponseFormatTypeVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_ResponseFormatType", config,
                    localeClass));
        }
        if (columnFilter.isPasswordStatusExpiredVisible()) {
            headerRow.add(
                    LocaleHelper.getLocalizedMessage(locale, "Field_Report_PwdExpired", config, localeClass));
        }
        if (columnFilter.isPasswordStatusPreExpiredVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_PwdPreExpired", config,
                    localeClass));
        }
        if (columnFilter.isPasswordStatusViolatesPolicyVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_PwdViolatesPolicy", config,
                    localeClass));
        }
        if (columnFilter.isPasswordStatusWarnPeriodVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_PwdWarnPeriod", config,
                    localeClass));
        }
        if (columnFilter.isRequiresPasswordUpdateVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_RequiresPasswordUpdate",
                    config, localeClass));
        }
        if (columnFilter.isRequiresResponseUpdateVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_RequiresResponseUpdate",
                    config, localeClass));
        }
        if (columnFilter.isRequiresProfileUpdateVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_RequiresProfileUpdate", config,
                    localeClass));
        }
        if (columnFilter.isCacheTimestampVisible()) {
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_RecordCacheTime", config,
                    localeClass));
        }

        csvPrinter.printRecord(headerRow);
    }

    ClosableIterator<UserCacheRecord> cacheBeanIterator = null;
    try {
        cacheBeanIterator = iterator();
        while (cacheBeanIterator.hasNext()) {
            final UserCacheRecord userCacheRecord = cacheBeanIterator.next();
            outputRecordRow(config, locale, userCacheRecord, csvPrinter, columnFilter);
        }
    } finally {
        if (cacheBeanIterator != null) {
            cacheBeanIterator.close();
        }
    }

    csvPrinter.flush();
}

From source file:password.pwm.svc.report.ReportService.java

public void outputToCsv(final OutputStream outputStream, final boolean includeHeader, final Locale locale,
        final Configuration config, final ReportColumnFilter columnFilter) throws IOException,
        ChaiUnavailableException, ChaiOperationException, PwmUnrecoverableException, PwmOperationalException {
    final CSVPrinter csvPrinter = Helper.makeCsvPrinter(outputStream);
    final Class localeClass = password.pwm.i18n.Admin.class;
    if (includeHeader) {
        final List<String> headerRow = new ArrayList<>();

        if (columnFilter.isUsernameVisible())
            headerRow.add(/*  w w  w  . ja va  2s  . c  o  m*/
                    LocaleHelper.getLocalizedMessage(locale, "Field_Report_Username", config, localeClass));
        if (columnFilter.isUserDnVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_UserDN", config, localeClass));
        if (columnFilter.isLdapProfileVisible())
            headerRow.add(
                    LocaleHelper.getLocalizedMessage(locale, "Field_Report_LDAP_Profile", config, localeClass));
        if (columnFilter.isEmailVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_Email", config, localeClass));
        if (columnFilter.isUserGuidVisible())
            headerRow.add(
                    LocaleHelper.getLocalizedMessage(locale, "Field_Report_UserGuid", config, localeClass));
        if (columnFilter.isAccountExpirationTimeVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_AccountExpireTime", config,
                    localeClass));
        if (columnFilter.isPasswordExpirationTimeVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_PwdExpireTime", config,
                    localeClass));
        if (columnFilter.isPasswordChangeTimeVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_PwdChangeTime", config,
                    localeClass));
        if (columnFilter.isResponseSetTimeVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_ResponseSaveTime", config,
                    localeClass));
        if (columnFilter.isLastLoginTimeVisible())
            headerRow.add(
                    LocaleHelper.getLocalizedMessage(locale, "Field_Report_LastLogin", config, localeClass));
        if (columnFilter.isHasResponsesVisible())
            headerRow.add(
                    LocaleHelper.getLocalizedMessage(locale, "Field_Report_HasResponses", config, localeClass));
        if (columnFilter.isHasHelpdeskResponsesVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_HasHelpdeskResponses", config,
                    localeClass));
        if (columnFilter.isResponseStorageMethodVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_ResponseStorageMethod", config,
                    localeClass));
        if (columnFilter.isResponseFormatTypeVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_ResponseFormatType", config,
                    localeClass));
        if (columnFilter.isPasswordStatusExpiredVisible())
            headerRow.add(
                    LocaleHelper.getLocalizedMessage(locale, "Field_Report_PwdExpired", config, localeClass));
        if (columnFilter.isPasswordStatusPreExpiredVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_PwdPreExpired", config,
                    localeClass));
        if (columnFilter.isPasswordStatusViolatesPolicyVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_PwdViolatesPolicy", config,
                    localeClass));
        if (columnFilter.isPasswordStatusWarnPeriodVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_PwdWarnPeriod", config,
                    localeClass));
        if (columnFilter.isRequiresPasswordUpdateVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_RequiresPasswordUpdate",
                    config, localeClass));
        if (columnFilter.isRequiresResponseUpdateVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_RequiresResponseUpdate",
                    config, localeClass));
        if (columnFilter.isRequiresProfileUpdateVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_RequiresProfileUpdate", config,
                    localeClass));
        if (columnFilter.isCacheTimestampVisible())
            headerRow.add(LocaleHelper.getLocalizedMessage(locale, "Field_Report_RecordCacheTime", config,
                    localeClass));

        csvPrinter.printRecord(headerRow);
    }

    ClosableIterator<UserCacheRecord> cacheBeanIterator = null;
    try {
        cacheBeanIterator = this.iterator();
        while (cacheBeanIterator.hasNext()) {
            final UserCacheRecord userCacheRecord = cacheBeanIterator.next();
            outputRecordRow(config, locale, userCacheRecord, csvPrinter, columnFilter);
        }
    } finally {
        if (cacheBeanIterator != null) {
            cacheBeanIterator.close();
        }
    }

    csvPrinter.flush();
}

From source file:password.pwm.svc.stats.StatisticsManager.java

public int outputStatsToCsv(final OutputStream outputStream, final Locale locale, final boolean includeHeader)
        throws IOException {
    LOGGER.trace("beginning output stats to csv process");
    final Instant startTime = Instant.now();

    final StatisticsManager statsManger = pwmApplication.getStatisticsManager();
    final CSVPrinter csvPrinter = JavaHelper.makeCsvPrinter(outputStream);

    if (includeHeader) {
        final List<String> headers = new ArrayList<>();
        headers.add("KEY");
        headers.add("YEAR");
        headers.add("DAY");
        for (final Statistic stat : Statistic.values()) {
            headers.add(stat.getLabel(locale));
        }//ww  w.  j a  v  a 2s  . c  om
        csvPrinter.printRecord(headers);
    }

    int counter = 0;
    final Map<StatisticsManager.DailyKey, String> keys = statsManger
            .getAvailableKeys(PwmConstants.DEFAULT_LOCALE);
    for (final StatisticsManager.DailyKey loopKey : keys.keySet()) {
        counter++;
        final StatisticsBundle bundle = statsManger.getStatBundleForKey(loopKey.toString());
        final List<String> lineOutput = new ArrayList<>();
        lineOutput.add(loopKey.toString());
        lineOutput.add(String.valueOf(loopKey.year));
        lineOutput.add(String.valueOf(loopKey.day));
        for (final Statistic stat : Statistic.values()) {
            lineOutput.add(bundle.getStatistic(stat));
        }
        csvPrinter.printRecord(lineOutput);
    }

    csvPrinter.flush();
    LOGGER.trace("completed output stats to csv process; output " + counter + " records in "
            + TimeDuration.fromCurrent(startTime).asCompactString());
    return counter;
}