Package org.internna.ossmoney.mvc

Source Code of org.internna.ossmoney.mvc.AbstractTransactionController

package org.internna.ossmoney.mvc;

import java.util.Set;
import java.util.List;
import java.util.ArrayList;
import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils;
import org.internna.ossmoney.model.Account;
import org.internna.ossmoney.model.Subcategory;
import org.internna.ossmoney.model.support.Interval;
import org.internna.ossmoney.model.AccountTransaction;
import org.internna.ossmoney.model.security.UserDetails;

import static org.springframework.util.StringUtils.hasText;

public abstract class AbstractTransactionController {

  protected UserDetails getCurrentUser() {
    return UserDetails.findCurrentUser();
  }

  protected final Set<Account> getAccounts() {
    return getAccounts(getCurrentUser());
  }

    protected final Set<Account> getAccounts(UserDetails user) {
        return user.getAccounts();
    }

    protected Interval getInterval(String intervals) {
      return hasText(intervals) ? new Interval(intervals) : new Interval();
    }

    protected final List<AccountTransaction> getTransactions(String intervals, Subcategory subcategory, ModelMap modelMap) {
      return getTransactions(getCurrentUser(), intervals, subcategory, modelMap);
    }

    protected final List<AccountTransaction> getTransactions(UserDetails user, String intervals, Subcategory subcategory, ModelMap modelMap) {
      return getTransactions(user, getInterval(intervals), subcategory, modelMap);
    }

    protected final List<AccountTransaction> getTransactions(Interval interval, Subcategory subcategory, ModelMap modelMap) {
      return getTransactions(getCurrentUser(), interval, subcategory, modelMap);
    }

    protected final List<AccountTransaction> getTransactions(UserDetails user, Interval interval, Subcategory subcategory, ModelMap modelMap) {
      List<AccountTransaction> transactions = new ArrayList<AccountTransaction>();
      modelMap.addAttribute("interval", interval);
      Set<Account> accounts = getAccounts(user);
      if (!CollectionUtils.isEmpty(accounts)) {
        for (Account account : accounts) {
          transactions.addAll(account.getTransactionsInPeriod(interval, subcategory, true));
        }
      }
      return transactions;
    }

}
TOP

Related Classes of org.internna.ossmoney.mvc.AbstractTransactionController

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.