1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package net.sf.emarket.account.service;
21
22 import java.io.Serializable;
23 import java.util.List;
24
25 import net.sf.emarket.account.domain.Account;
26 import net.sf.emarket.account.domain.AcctPosition;
27 import net.sf.emarket.account.domain.AcctPositionSummary;
28 import net.sf.emarket.account.domain.AcctPositionTransfer;
29 import net.sf.emarket.account.domain.AcctValue;
30 import net.sf.emarket.account.domain.CashBalance;
31 import net.sf.emarket.account.domain.CashTransfer;
32 import net.sf.emarket.user.domain.User;
33
34 public interface IAccountManagerService extends Serializable {
35
36 public void addAccount(Account account);
37 public Account getAccountById(String acctId);
38 public int updateAccount(Account account);
39 public int deleteAccountById(String acctId);
40 public List<Account> getAccountsForUser(User user);
41 public List<Account> getAccountsOfType( String acctType );
42
43 public CashBalance getCashBalance(Account account);
44 public void tranferCash(CashTransfer transfer) throws NotEnoughCashException, NotValidAccountException;
45
46 public AcctPosition getAccountPosition( long acctPositionId);
47 public AcctPosition addAccountPosition( AcctPosition position );
48 public AcctPosition updateAccountPosition( AcctPosition position );
49 public void deleteAccountPosition( AcctPosition position);
50 public void transferPosition( AcctPositionTransfer transfer ) throws NotEnoughPositionsException, NotValidAccountException;
51
52 public List<AcctPosition> getAccountPositions( String acctId );
53 public List<AcctPosition> getAccountPositions( String acctId, String symbol );
54 public List<AcctPositionSummary> getAccountPositionsSummary( String acctId);
55 public float getTotalValueOfPositions( String acctId );
56
57 public List<AcctValue> getTopAccounts(int count);
58 }