2007-12-14 02:27:48 +00:00
|
|
|
package bigbank;
|
|
|
|
|
2008-04-01 17:15:31 +00:00
|
|
|
import org.aspectj.lang.annotation.Pointcut;
|
2007-12-14 02:27:48 +00:00
|
|
|
import org.springframework.util.Assert;
|
|
|
|
|
|
|
|
public class BankServiceImpl implements BankService {
|
|
|
|
private BankDao bankDao;
|
2008-04-01 17:15:31 +00:00
|
|
|
|
|
|
|
// Not used unless you declare a <protect-pointcut>
|
|
|
|
@Pointcut("execution(* bigbank.BankServiceImpl.*(..))")
|
|
|
|
public void myPointcut() {}
|
|
|
|
|
2007-12-14 02:27:48 +00:00
|
|
|
public BankServiceImpl(BankDao bankDao) {
|
|
|
|
Assert.notNull(bankDao);
|
|
|
|
this.bankDao = bankDao;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Account[] findAccounts() {
|
|
|
|
return this.bankDao.findAccounts();
|
|
|
|
}
|
|
|
|
|
|
|
|
public Account post(Account account, double amount) {
|
|
|
|
Assert.notNull(account);
|
|
|
|
Assert.notNull(account.getId());
|
|
|
|
|
|
|
|
// We read account bank from DAO so it reflects the latest balance
|
|
|
|
Account a = bankDao.readAccount(account.getId());
|
|
|
|
if (account == null) {
|
|
|
|
throw new IllegalArgumentException("Couldn't find requested account");
|
|
|
|
}
|
|
|
|
|
|
|
|
a.setBalance(a.getBalance() + amount);
|
|
|
|
bankDao.createOrUpdateAccount(a);
|
|
|
|
return a;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Account readAccount(Long id) {
|
|
|
|
return bankDao.readAccount(id);
|
|
|
|
}
|
|
|
|
}
|