diff options
Diffstat (limited to 'sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/account/AccountServiceImpl.java')
-rw-r--r-- | sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/account/AccountServiceImpl.java | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/account/AccountServiceImpl.java b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/account/AccountServiceImpl.java new file mode 100644 index 0000000000..4552615227 --- /dev/null +++ b/sca-java-1.x/tags/java-stable-20060304/samples/bigbank/account/src/main/java/org/apache/tuscany/samples/bigbank/account/services/account/AccountServiceImpl.java @@ -0,0 +1,91 @@ +/** + * + * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.tuscany.samples.bigbank.account.services.account; + +import java.util.List; + +import org.apache.tuscany.samples.bigbank.account.AccountFactory; +import org.apache.tuscany.samples.bigbank.account.AccountReport; +import org.apache.tuscany.samples.bigbank.account.AccountSummary; +import org.apache.tuscany.samples.bigbank.account.services.accountdata.AccountDataService; +import org.apache.tuscany.samples.bigbank.account.services.accountdata.CheckingAccount; +import org.apache.tuscany.samples.bigbank.account.services.accountdata.SavingsAccount; +import org.apache.tuscany.samples.bigbank.account.services.accountdata.StockAccount; +import org.apache.tuscany.samples.bigbank.account.services.stockquote.StockQuoteService; +import org.apache.tuscany.sdo.util.SDOUtil; +import org.osoa.sca.annotations.Property; +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +@Service(interfaces=AccountService.class) +public class AccountServiceImpl implements AccountService { + + static { + SDOUtil.registerStaticTypes(AccountFactory.class); + } + + @Property + private String currency = "USD"; + + @Reference + private AccountDataService accountDataService; + @Reference + private StockQuoteService stockQuoteService; + + public AccountServiceImpl() { + } + + public AccountReport getAccountReport(String customerID) { + + AccountFactory accountFactory=new AccountFactory(); + + AccountReport accountReport = accountFactory.createAccountReport(); + List accountSummaries = accountReport.getAccountSummaries(); + + CheckingAccount checkingAccount = accountDataService.getCheckingAccount(customerID); + AccountSummary checkingAccountSummary = accountFactory.createAccountSummary(); + checkingAccountSummary.setAccountNumber(checkingAccount.getAccountNumber()); + checkingAccountSummary.setAccountType("checking"); + checkingAccountSummary.setBalance(fromUSDollarToCurrency(checkingAccount.getBalance())); + accountSummaries.add(checkingAccountSummary); + + SavingsAccount savingsAccount = accountDataService.getSavingsAccount(customerID); + AccountSummary savingsAccountSummary = accountFactory.createAccountSummary(); + savingsAccountSummary.setAccountNumber(savingsAccount.getAccountNumber()); + savingsAccountSummary.setAccountType("savings"); + savingsAccountSummary.setBalance(fromUSDollarToCurrency(savingsAccount.getBalance())); + accountSummaries.add(savingsAccountSummary); + + StockAccount stockAccount = accountDataService.getStockAccount(customerID); + AccountSummary stockAccountSummary = accountFactory.createAccountSummary(); + stockAccountSummary.setAccountNumber(stockAccount.getAccountNumber()); + stockAccountSummary.setAccountType("stock"); + float balance = (stockQuoteService.getQuote(stockAccount.getSymbol())) * stockAccount.getQuantity(); + stockAccountSummary.setBalance(fromUSDollarToCurrency(balance)); + accountSummaries.add(stockAccountSummary); + + return accountReport; + } + + private float fromUSDollarToCurrency(float value) { + + if (currency.equals("USD")) return value; + else if (currency.equals("EURO")) return value * 0.8f; + else + return 0.0f; + } +} |