Package org.openbankdata.core.service

Source Code of org.openbankdata.core.service.AbstractTransactionService

package org.openbankdata.core.service;

import org.openbankdata.core.Account;
import org.openbankdata.core.Transaction;

import org.joda.time.LocalDate;

import java.util.ArrayList;
import java.util.List;

/**
* Abstract class with default implementation and helpers to classes that implements the
* {@link TransactionService} interface.
*/
public abstract class AbstractTransactionService implements
    TransactionService {

  @Override
  public List<Transaction> getTransactions(Account pAccount, LocalDate pFromDateTime) {
    return getTransactions(pAccount, pFromDateTime, null);
  }

  @Override
  public List<Transaction> getTransactions(Account pAccount) {
    return getTransactions(pAccount, null, null);
  }

  protected List<Transaction> filterTransactions(List<Transaction> pTransactions,
      LocalDate pFromDateTime, LocalDate pToDateTime) {
    List<Transaction> transactions = new ArrayList<Transaction>();
    if (pTransactions == null || pTransactions.isEmpty()) {
      return transactions;
    }
    for (Transaction transaction : pTransactions) {
      if (isTransactionWithinRange(transaction, pFromDateTime, pToDateTime)) {
        transactions.add(transaction);
      }
    }
    return transactions;

  }

  private boolean isTransactionWithinRange(Transaction pTransaction, LocalDate pFromDate,
      LocalDate pToDate) {
    LocalDate transactionDate = pTransaction.getTransactionDate();
    return (pFromDate == null || pFromDate.equals(transactionDate) || pFromDate
        .isBefore(transactionDate))
        && (pToDate == null || pToDate.equals(transactionDate) || pToDate.isAfter(transactionDate));
  }

}
TOP

Related Classes of org.openbankdata.core.service.AbstractTransactionService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.