You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by dj...@apache.org on 2006/10/31 18:26:20 UTC

svn commit: r469573 - in /db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client: ./ Display.java Operations.java

Author: djd
Date: Tue Oct 31 09:26:18 2006
New Revision: 469573

URL: http://svn.apache.org/viewvc?view=rev&rev=469573
Log:
DERBY-1994 Add the interfaces to execute the business transactions and display the results for the order entry toolkit.

Added:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client/
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client/Display.java   (with props)
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client/Operations.java   (with props)

Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client/Display.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client/Display.java?view=auto&rev=469573
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client/Display.java (added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client/Display.java Tue Oct 31 09:26:18 2006
@@ -0,0 +1,121 @@
+/*
+ *
+ * Derby - Class org.apache.derbyTesting.system.oe.client.Display
+ *
+ * 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 org.apache.derbyTesting.system.oe.client;
+
+import org.apache.derbyTesting.system.oe.model.Customer;
+import org.apache.derbyTesting.system.oe.model.District;
+import org.apache.derbyTesting.system.oe.model.Order;
+import org.apache.derbyTesting.system.oe.model.Warehouse;
+
+/**
+ * Interface to display the results of the business operations.
+ * Methods are called by implementations of Operations.
+ * There is no requirement for implementations to follow
+ * the layout dictated by the TPC-C specification.
+ * All the information required by the TPC-C specification
+ * for display will be provided through the passed in parameters.
+ * <BR>
+ * Objects passed in from the data model (Customer etc.) may not
+ * be fully populated, but they will contain all the information
+ * required for that specific operation.
+ * <P>
+ * DECIMAL values are represented as String objects to allow
+ * Order Entry to be run on J2ME/CDC/Foundation which does
+ * not support BigDecimal.
+ */
+public interface Display {
+
+    /**
+     * Display the result of a stock level. Stock level terminal i/o is
+     * described in clause 2.8.3.
+     * 
+     * @param displayData
+     *            Client specific display information, such as servlet context.
+     * @param w
+     *            Warehouse (input)
+     * @param d
+     *            District (input)
+     * @param threshold
+     *            Threshold (input)
+     * @param level
+     *            (result)
+     * @throws Exception
+     *             Error displaying data
+     */
+    public void displayStockLevel(Object displayData, short w, short d,
+            int threshold, int level) throws Exception;
+
+    /**
+     * Display the result of an order status. Order status terminal i/o is
+     * decribed in clause 2.6.3.
+     * 
+     * @param displayData
+     *            Client specific display information, such as servlet context.
+     * @param byName
+     *            Executed by name or by identifier.
+     * @param customer
+     *            Customer for order
+     * @param order
+     *            Order fetched.
+     * @throws Exception
+     */
+    public void displayOrderStatus(Object displayData, boolean byName,
+            Customer customer, Order order) throws Exception;
+              
+    /**
+     * Display the result of a payment. Payment terminal i/o
+     * is described in clause 2.5.3.
+     * @param displayData Client specific display information, such as servlet context.
+     * @param amount Amount of payment.
+     * @param byName Executed by name or by identifier.
+     * @param warehouse Warehouse of payment
+     * @param district District of payment
+     * @param customer Customer of payment.
+     * @throws Exception
+     */
+    public void displayPayment(Object displayData, String amount,
+            boolean byName, Warehouse warehouse, District district,
+            Customer customer) throws Exception;
+
+    /**
+     * Display the result of a new order. New order terminal i/o
+     * is described in clause 2.4.3.
+     * May need more parameters.
+     * @param displayData Client specific display information, such as servlet context.
+     * @param warehouse Warehouse of new order
+     * @param district District of new order
+     * @param customer Customer of new order
+     * @param order The new order
+     * @throws Exception
+     */
+    public void displayNewOrder(Object displayData, Warehouse warehouse,
+            District district, Customer customer, Order order) throws Exception;
+
+    /**
+     * Display the result of a delivery schedule.
+     * 
+     * @param displayData Client specific display information, such as servlet context.
+     * @param w Warehouse identifier
+     * @param carrier Carrier identifier
+     * @throws Exception
+     */
+    public void displayScheduleDelivery(Object displayData, short w,
+            short carrier) throws Exception;
+}

Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client/Display.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client/Operations.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client/Operations.java?view=auto&rev=469573
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client/Operations.java (added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client/Operations.java Tue Oct 31 09:26:18 2006
@@ -0,0 +1,278 @@
+/*
+ *
+ * Derby - Class org.apache.derbyTesting.system.oe.client.Operations
+ *
+ * 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 org.apache.derbyTesting.system.oe.client;
+
+/**
+ * Interface for a client to execute the logical operations. Various
+ * implementations can be provided, e.g. client side SQL, procedure, etc.
+ * <P>
+ * Typical model is that each client has its own instance of an object that
+ * implements Operations. For example the implementation in a client side SQL
+ * implementation would have a reference to its own JDBC connection and prepared
+ * statements.
+ * <P>
+ * Setup methods are provided for each operation to allow testing with a single
+ * transaction or mixing of Operations implementations from a single client.
+ * <P>
+ * Implementations of the execution methods must perform the following:
+ * <OL>
+ * <LI>Execute business transaction
+ * <LI>Populate POJO objects required by display method
+ * <LI>Commit the database transaction(s)
+ * <LI>Call the appropriate display method from Display
+ * </UL>
+ * 
+ * <P>
+ * DECIMAL values are represented as String objects to allow Order Entry to be
+ * run on J2ME/CDC/Foundation which does not support BigDecimal.
+ */
+
+public interface Operations {
+
+    /**
+     * Perform any setup required to call stockLevel().
+     * 
+     * @throws Exception
+     *             Error performing the setup.
+     * @see #stockLevel(Display, Object, short, short, int)
+     */
+    public void setupStockLevel() throws Exception;
+
+    /**
+     * Perform any setup required to call either orderStatus().
+     * 
+     * @throws Exception
+     *             Error performing the setup.
+     * @see #orderStatus
+     */
+    public void setupOrderStatus() throws Exception;
+
+    /**
+     * Perform any setup required to call either payment().
+     * 
+     * @throws Exception
+     *             Error performing the setup.
+     * @see #payment
+     */
+    public void setupPayment() throws Exception;
+
+    /**
+     * Perform any setup required to call newOrder().
+     * 
+     * @throws Exception
+     *             Error performing the setup.
+     * @see #newOrder(Display, Object, short, short, int, int[], short[], short[])
+     */
+    public void setupNewOrder() throws Exception;
+
+    /**
+     * Perform any setup required to call scheduleDelivery().
+     * 
+     * @throws Exception
+     *             Error performing the setup.
+     */
+    public void setupScheduleDelivery() throws Exception;
+
+    /**
+     * Perform any setup required to call delivery().
+     * 
+     * @throws Exception
+     *             Error performing the setup.
+     */
+    public void setupDelivery() throws Exception;
+
+    /**
+     * Execute stock level. Stock level is described in clause 2.8.
+     * 
+     * @param display
+     *            Where to display the results, if null results are not
+     *            displayed.
+     * @param displayData
+     *            Any client specific display information, such as servlet
+     *            context.
+     * @param w
+     *            Warehouse for transaction
+     * @param d
+     *            District for transaction
+     * @param threshold
+     *            Threshold for transaction.
+     * @see #setupStockLevel()
+     * @see Display#displayStockLevel(Object, short, short, int, int)
+     */
+    public void stockLevel(Display display, Object displayData, short w,
+            short d, int threshold) throws Exception;
+
+    /**
+     * Execute order status by last name. Order status is described in clause
+     * 2.6.
+     * 
+     * @param display
+     *            Where to display the results, if null results are not
+     *            displayed.
+     * @param displayData
+     *            Any client specific display information, such as servlet
+     *            context.
+     * @param w
+     *            Warehouse identifier
+     * @param d
+     *            District identifier
+     * @param customerLast
+     *            Customer's last name.
+     */
+    public void orderStatus(Display display, Object displayData, short w,
+            short d, String customerLast) throws Exception;
+
+    /**
+     * Execute order status by customer identifer. Order status is described in
+     * clause 2.6.
+     * 
+     * @param display
+     *            Where to display the results, if null results are not
+     *            displayed.
+     * @param displayData
+     *            Any client specific display information, such as servlet
+     *            context.
+     * @param w
+     *            Warehouse identifier
+     * @param d
+     *            District identifier
+     * @param c
+     *            Customer identifer.
+     */
+    public void orderStatus(Display display, Object displayData, short w,
+            short d, int c) throws Exception;
+
+    /**
+     * Execute payment by last name. Payment is described in clause 2.5.
+     * 
+     * @param display
+     *            Where to display the results, if null results are not
+     *            displayed.
+     * @param displayData
+     *            Any client specific display information, such as servlet
+     *            context.
+     * @param w
+     *            Home warehouse identifier
+     * @param d
+     *            Home district identifier
+     * @param cw
+     *            Customer warehouse identifier
+     * @param cd
+     *            Customer district identifier
+     * @param c
+     *            Customer identifer.
+     * @param customerLast
+     *            Customer's last name.
+     * @param amount
+     *            Payment amount
+     */
+    public void payment(Display display, Object displayData, short w, short d,
+            short cw, short cd, String customerLast, String amount)
+            throws Exception;
+
+    /**
+     * Execute payment by customer identifer. Payment is described in clause
+     * 2.5.
+     * 
+     * @param display
+     *            Where to display the results, if null results are not
+     *            displayed.
+     * @param displayData
+     *            Any client specific display information, such as servlet
+     *            context.
+     * @param w
+     *            Home warehouse identifier
+     * @param d
+     *            Home district identifier
+     * @param cw
+     *            Customer warehouse identifier
+     * @param cd
+     *            Customer district identifier
+     * @param c
+     *            Customer identifer.
+     * @param amount
+     *            Payment amount
+     */
+    public void payment(Display display, Object displayData, short w, short d,
+            short cw, short cd, int c, String amount) throws Exception;
+
+    /**
+     * Execute new order. New order is described in clause 2.4.
+     * <P>
+     * Assumption is that items.length == quanties.length == supplyW.length.
+     * 
+     * @param display
+     *            Where to display the results, if null results are not
+     *            displayed.
+     * @param displayData
+     *            Client specific display information, such as servlet
+     *            context.
+     * @param w
+     *            Warehouse identifier
+     * @param d
+     *            District identifier
+     * @param c
+     *            Customer identifier
+     * @param items
+     *            array of item numbers
+     * @param quantities
+     *            quanties for each item
+     * @param supplyW
+     *            Supply warehouse for each item.
+     * @throws Exception
+     */
+    public void newOrder(Display display, Object displayData, short w, short d,
+            int c, int[] items, short[] quantities, short[] supplyW)
+            throws Exception;
+
+    /**
+     * Queue a delivery request. Queuing of delivery requests is described in
+     * clause 2.7.2.
+     * <P>
+     * The implementation of Operations is responsible for managing the FIFO
+     * queue of requests, which could be in a flat file, the database or
+     * memory etc.
+     * 
+     * @param display
+     *            Where to display the results, if null results are not
+     *            displayed.
+     * @param displayData
+     *            Any client specific display information, such as servlet
+     *            context.
+     * @param w
+     *            Warehouse identifier
+     * @param carrier
+     *            Carrier identifier
+     * @throws Exception
+     */
+    public void scheduleDelivery(Display display, Object displayData, short w,
+            short carrier) throws Exception;
+
+    /**
+     * Execute a single delivery from the FIFO queue. Processing a delivery
+     * request is described in clause 2.7.4.
+     * 
+     * @return Number of seconds the delivery request was queued for. If no
+     *         request was queued then -1 is returned.
+     * @throws Exception
+     */
+    public int delivery() throws Exception;
+
+}

Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/system/oe/client/Operations.java
------------------------------------------------------------------------------
    svn:eol-style = native