Android Open Source - TrackEveryPenny Transaction Csv Format






From Project

Back to project page TrackEveryPenny.

License

The source code is released under:

Apache License

If you think the Android project TrackEveryPenny listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package ca.jbrains.upfp.view;
//w w  w.  j  av a 2s.c o  m
import ca.jbrains.toolkit.ProgrammerMistake;
import ca.jbrains.upfp.model.*;
import com.google.common.base.Joiner;
import com.google.common.collect.*;
import org.joda.time.LocalDate;

import java.util.List;

public class TransactionCsvFormat
    implements CsvFormat<Transaction> {
  private final CsvFormat<LocalDate> dateCsvFormat;
  private final CsvFormat<Category> categoryCsvFormat;
  private final CsvFormat<Amount> amountCsvFormat;

  public TransactionCsvFormat(
      CsvFormat<LocalDate> dateCsvFormat,
      CsvFormat<Category> categoryCsvFormat,
      CsvFormat<Amount> amountCsvFormat
  ) {
    this.dateCsvFormat = dateCsvFormat;
    this.categoryCsvFormat = categoryCsvFormat;
    this.amountCsvFormat = amountCsvFormat;
  }

  public String format(Transaction transaction) {
    if (transaction == null) throw new ProgrammerMistake(
        "Can't format a null transaction.");

    final List<String> formattedPropertiesInCorrectSequence
        = Lists.newArrayList(
        dateCsvFormat.format(transaction.getDate()),
        categoryCsvFormat.format(transaction.getCategory()),
        amountCsvFormat.format(transaction.getAmount()));

    return assembleIntoCsvRow(
        formattedPropertiesInCorrectSequence);
  }

  private String assembleIntoCsvRow(
      List<String> formattedPropertiesInCorrectSequence
  ) {
    return Joiner.on(",").join(
        Collections2.transform(
            formattedPropertiesInCorrectSequence,
            SurroundWithQuotes.INSTANCE));
  }
}




Java Source Code List

ca.jbrains.toolkit.ProgrammerMistake.java
ca.jbrains.upfp.BrowseTransactionsActivity.java
ca.jbrains.upfp.Conveniences.java
ca.jbrains.upfp.controller.android.AndroidDevicePublicStorageGateway.java
ca.jbrains.upfp.controller.android.PublicStorageMediaNotAvailableException.java
ca.jbrains.upfp.controller.android.PublicStorageMediaNotWritableException.java
ca.jbrains.upfp.model.Amount.java
ca.jbrains.upfp.model.BrowseTransactionsModel.java
ca.jbrains.upfp.model.Category.java
ca.jbrains.upfp.model.InternalStorageException.java
ca.jbrains.upfp.model.Transaction.java
ca.jbrains.upfp.model.android.AndroidDevicePublicStorageGatewayImpl.java
ca.jbrains.upfp.presenter.BrowseTransactionsPresenter.java
ca.jbrains.upfp.presenter.ExportAllTransactionsAction.java
ca.jbrains.upfp.presenter.ExportAllTransactionsAsCsvToFileAction.java
ca.jbrains.upfp.presenter.RendersView.java
ca.jbrains.upfp.presenter.WriteTextAction.java
ca.jbrains.upfp.view.AmountCsvFormat.java
ca.jbrains.upfp.view.BrowseTransactionsView.java
ca.jbrains.upfp.view.CategoryCsvFormat.java
ca.jbrains.upfp.view.CsvFormat.java
ca.jbrains.upfp.view.CsvHeaderFormat.java
ca.jbrains.upfp.view.DateCsvFormat.java
ca.jbrains.upfp.view.SurroundWithQuotes.java
ca.jbrains.upfp.view.TransactionCsvFormat.java
ca.jbrains.upfp.view.TransactionsCsvFileFormat.java
ca.jbrains.upfp.view.TransactionsCsvHeader.java
ca.jbrains.upfp.view.WriteTextToFileAction.java
ca.jbrains.upfp.view.android.AndroidBrowseTransactionsView.java