summaryrefslogtreecommitdiffstats
path: root/sandbox/slaws/bank-challenge/client-sl-contribution/src/main/java/client/impl/ClientImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/slaws/bank-challenge/client-sl-contribution/src/main/java/client/impl/ClientImpl.java')
-rw-r--r--sandbox/slaws/bank-challenge/client-sl-contribution/src/main/java/client/impl/ClientImpl.java75
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());
+ }
+ }
+}