diff options
Diffstat (limited to 'sandbox/slaws/bank-challenge/client-sl-contribution/src/main/java')
-rw-r--r-- | sandbox/slaws/bank-challenge/client-sl-contribution/src/main/java/client/impl/ClientImpl.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/sandbox/slaws/bank-challenge/client-sl-contribution/src/main/java/client/impl/ClientImpl.java b/sandbox/slaws/bank-challenge/client-sl-contribution/src/main/java/client/impl/ClientImpl.java new file mode 100644 index 0000000000..ab8b4de1b4 --- /dev/null +++ b/sandbox/slaws/bank-challenge/client-sl-contribution/src/main/java/client/impl/ClientImpl.java @@ -0,0 +1,75 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 client.impl; + +import java.util.List; + +import org.oasisopen.sca.annotation.Reference; +import org.oasisopen.sca.annotation.Scope; +import org.oasisopen.sca.annotation.Service; + +import bank.BankService; +import bank.ChallengeControl; +import bank.Statement; +import bank.StockHolding; +import bank.StockQuote; + +/** + * An implementation of the Bank service. + */ +@Service(ChallengeControl.class) +@Scope("COMPOSITE") +public class ClientImpl implements ChallengeControl { + + @Reference + protected BankService bankService; + + private String customerName = "SL"; + private String accountID; + + public ClientImpl(){ + } + + public void start() { + System.out.println("Starting bank client for " + customerName); + accountID = bankService.createAccount(customerName); + System.out.println("Account ID for " + customerName + " = " + accountID); + } + + public void increment() { + System.out.println("Increment " + customerName); + + List<StockQuote> stockQuotes = bankService.getAllStockQuotes(accountID); + + for (StockQuote stock : stockQuotes){ + bankService.buyEquity(accountID, stock.getStockCode(), 1); + } + + System.out.println("My statement " + bankService.getStatement(accountID)); + } + + public void stop() { + System.out.println("Stopping bank client for " + customerName); + Statement statement = bankService.getStatement(accountID); + + for (StockHolding holding : statement.getStockHolding()){ + bankService.sellEquity(accountID, holding.getStockCode(), holding.getNumberHeld()); + } + } +} |