home *** CD-ROM | disk | FTP | other *** search
Java Source | 1998-05-08 | 5.9 KB | 155 lines |
- /*
- * Copyright (c) 1997-1998 Borland International, Inc. All Rights Reserved.
- *
- * This SOURCE CODE FILE, which has been provided by Borland as part
- * of a Borland product for use ONLY by licensed users of the product,
- * includes CONFIDENTIAL and PROPRIETARY information of Borland.
- *
- * USE OF THIS SOFTWARE IS GOVERNED BY THE TERMS AND CONDITIONS
- * OF THE LICENSE STATEMENT AND LIMITED WARRANTY FURNISHED WITH
- * THE PRODUCT.
- *
- * IN PARTICULAR, YOU WILL INDEMNIFY AND HOLD BORLAND, ITS RELATED
- * COMPANIES AND ITS SUPPLIERS, HARMLESS FROM AND AGAINST ANY CLAIMS
- * OR LIABILITIES ARISING OUT OF THE USE, REPRODUCTION, OR DISTRIBUTION
- * OF YOUR PROGRAMS, INCLUDING ANY CLAIMS OR LIABILITIES ARISING OUT OF
- * OR RESULTING FROM THE USE, MODIFICATION, OR DISTRIBUTION OF PROGRAMS
- * OR FILES CREATED FROM, BASED ON, AND/OR DERIVED FROM THIS SOURCE
- * CODE FILE.
- */
- //--------------------------------------------------------------------------------------------------
- // CORBA Reference Application
- // Copyright (c) 1997 by Borland International, All Rights Reserved
- //
- // Conatins Main Server class for the Server portion of the CORBA
- // Reference Application
- //--------------------------------------------------------------------------------------------------
-
- package borland.reference.creditapproval.server;
-
- import java.util.*;
- import borland.reference.creditapproval.CORBAInterface.*;
-
- /**
- * CreditApprovalImpl implements the IDL-defined CreditApproval
- * interface. This class is instantiated by the CreditApprovalDispenserImpl class.
- *
- * Requests to approve credit are made by the client to this object.
- */
- public class CreditApprovalImpl extends _sk_CreditApproval {
-
- private boolean connectOnDemmand;
-
- // Do not use the singleton instance ( getDataModule() )
- CreditHistoryReviewer creditReviewer;
- CreditCardIssuer issueCreditCard;
- ResourceBundle res = Res.getBundle("borland.reference.creditapproval.server.Res");
-
- /**
- * Construct a persistently named object.
- */
- public CreditApprovalImpl(java.lang.String name, boolean onDemmand, boolean randomData )
- throws Exception {
-
- super(name);
-
- connectOnDemmand = onDemmand;
-
- // Instantiate Data Modules
- creditReviewer = new CreditHistoryReviewer( randomData );
- issueCreditCard = new CreditCardIssuer();
-
- // If not connecting on demand, have the datamodules establish a DB connection
- // now.
- if (!connectOnDemmand) {
- creditReviewer.connect( true );
- issueCreditCard.connect( true );
- }
- }
-
- /**
- * Construct a transient object.
- */
- public CreditApprovalImpl() {
- super();
- }
-
- /**
- * Called by the client to approve and applicant for a credit card. If the
- * applicant is approved, a credit card is also issued.
- */
- public creditApprovalStruct getCreditApproval(
- applicantInfoStruct appInfo,
- ClientCallback callback )
- throws CreditApprovalException,
- CreditDeniedException {
-
- creditApprovalStruct creditApproval;
-
- // First Approve the applicant.
- try{
- callback.updateStatusText(res.getString("Processing_Credit") + "...");
- // Make sure the applicant data is valid!
- validateData( appInfo );
-
- if (connectOnDemmand) creditReviewer.connect( true );
- creditApproval = creditReviewer.approveCredit( appInfo );
-
- // Disconnect to free up a connection for the issueCreditCard DataModule.
- if (connectOnDemmand) creditReviewer.connect( false );
-
- // If the applicant was approved, issue a credit card!
- if (creditApproval.approved) {
- callback.updateStatusText(res.getString("Applicant_Approved") + "...");
- if (connectOnDemmand) issueCreditCard.connect( true );
- issueCreditCard.issueCreditCard( appInfo, creditApproval);
- }
- } catch( CreditApprovalException e) {
- throw(e);
- } catch (CreditDeniedException e ) {
- throw(e);
- } catch (Exception e) {
- throw new CreditApprovalException(
- e.getMessage() );
- } finally {
- // Make sure both objects are disconnected
- if (connectOnDemmand) {
- try {
- creditReviewer.connect( false );
- issueCreditCard.connect( false );
- } catch (Exception e) {
- System.err.println( e );
- }
- }
- }
-
- // Return approval information.
- return creditApproval;
- }
-
- /**
- * Check the applicant information for validity
- */
- protected void validateData( applicantInfoStruct appInfo )
- throws CreditApprovalException {
-
- // Make sure all REQUIRED fields contain data
- if (appInfo.firstName.compareTo("") == 0) throw new CreditApprovalException("First name is required.");
- if (appInfo.lastName.compareTo("") == 0) throw new CreditApprovalException("Last name is required.");
- if (appInfo.address1.compareTo("") == 0) throw new CreditApprovalException("Address Line 1 is required.");
- if (appInfo.city.compareTo("") == 0) throw new CreditApprovalException("City is required.");
- if (appInfo.state.compareTo("") == 0) throw new CreditApprovalException("State is required.");
- if (appInfo.postalCode.compareTo("") == 0) throw new CreditApprovalException("Postal Code is required.");
- if (appInfo.country.compareTo("") == 0) throw new CreditApprovalException("Country is required.");
- if (appInfo.phone.compareTo("") == 0) throw new CreditApprovalException("Phone is required.");
- if (appInfo.DOB.compareTo("") == 0) throw new CreditApprovalException("DOB is required.");
-
- // Set non-required empty strings to SPACES to satisfy the Visigenic ODBC/JDBC driver.
- // These should really be set to a database NULL.
- if (appInfo.MI.compareTo("") == 0) appInfo.MI = " ";
- if (appInfo.address2.compareTo("") == 0) appInfo.address2 = " ";
- if (appInfo.PID.compareTo("") == 0) appInfo.PID = " ";
- }
- }
-
-