001 package controlProjectTest;
002
003 /**
004 * A web service to test the controls built from the JavaControlProject
005 * project in the SamplesApp application. <br/><br/>
006 *
007 * If you change code in those controls to try other scenarios,
008 * remember to build JavaControlProject (right-click JavaControlProject,
009 * then click Build JavaControlProject). When you build that project, the
010 * resulting JavaControlProject.jar file is copied to the Libraries of
011 * the SamplesApp application. From there, they are accessible to
012 * this web service. <br/><br/>
013 *
014 * Note that the WebServices project also includes local versions
015 * of these controls, along with a corresponding test web service.
016 * @common:target-namespace namespace="http://workshop.bea.com/ControlTest"
017 */
018 public class ControlTest implements com.bea.jws.WebService
019 {
020 public Callback callback;
021
022 /**
023 * @common:control
024 */
025 private verifyFunds.VerifyFunds verifyFundsControl;
026
027 /**
028 * Tests the VerifyFunds control, which submits purchase
029 * order information after ensuring that inventory and
030 * the customer's account support it. <br/><br/>
031 *
032 * To test the control, enter a PO number, customer ID,
033 * item number, and item quantity. After clicking testVerifyFunds,
034 * click Refresh until Test View displays the results of the
035 * test as a message returned by the verifyFundsTestDone callback.
036 *
037 * The following table lists item numbers and quantities known
038 * to the database when WebLogic Workshop is installed. The
039 * VerifyFunds control decreases quantities with successful
040 * orders. This web service gives the customer a balance
041 * of $200.00 to spend for each request. You can change
042 * this amount to test with another.
043 *
044 * <table style="font-size: 8 pt">
045 * <tr><td style="width: 100px">itemNumber</td><td style="width: 100px">quantity</td><td>price</td></tr>
046 *
047 * <tr><td>624</td><td>5</td><td>34.95</td></tr>
048 * <tr><td>625</td><td>6</td><td>39.95</td></tr>
049 * <tr><td>629</td><td>10</td><td>34.95</td></tr>
050 * <tr><td>631</td><td>15</td><td>65.95</td></tr>
051 * <tr><td>640</td><td>1</td><td>24.95</td></tr>
052 *
053 * </table>
054 *
055 * @param poNumber A number for this purchase order. May be any
056 * number, and may include non-numeric characters (these will be removed
057 * by the control).
058 * @param customerID The customer's unique ID. This may be any number.
059 * @param item The number for the item being ordered. Use a number from
060 * the range given above.
061 * @param quantity The number of the specified items to order. Note that
062 * this number must be lower than the quantities given above in order
063 * for this order to succeed. Give larger numbers to test the control's
064 * inventory checking. Also, keep in mind that a successful PO transaction
065 * will decrease the inventory quantity in the database by the amount
066 * ordered.
067 * @common:operation
068 * @jws:conversation phase="start"
069 * @common:message-buffer enable="true"
070 */
071 public void testVerifyFunds(String poNumber,
072 String customerID, int item, int quantity)
073 {
074 /*
075 * The amount the customer can spend. Changing this amount may
076 * change the results of the control's check to verify customer
077 * funds for the purchase.
078 */
079 double balance = 200.00;
080
081 /* Call the VerifyFunds control with the details of the purchase order. */
082 verifyFundsControl.submitPO(poNumber, customerID, item, quantity, balance);
083 }
084
085 /*
086 * A handler for the VerifyFunds control's onTransactionComplete callback.
087 * The results are essentially summarized for a callback of this web service.
088 */
089 public void verifyFundsControl_onTransactionComplete(java.lang.String message,
090 boolean balanceAvailable, boolean inventoryAvailable)
091 {
092 callback.verifyFundsTestDone(message +
093 "\n Balance available: " + balanceAvailable +
094 "\n Inventory available: " + inventoryAvailable);
095 }
096
097
098 public interface Callback
099 {
100 /**
101 * Sends a response to the client of this web service when the VerifyFunds
102 * control's callback is received.
103 *
104 * @jws:conversation phase="finish"
105 */
106 void verifyFundsTestDone(String responseMessage);
107 }
108
109 }
|