⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 creditapprovalimpl.java

📁 java在线商店的源代码。编写十分规范的哦
💻 JAVA
字号:
/**
 * Copyright (c) 1996-2004 Borland Software Corporation.  All Rights Reserved.
 * 
 * This SOURCE CODE FILE, which has been provided by Borland Software as part
 * of a Borland Software product for use ONLY by licensed users of the product,
 * includes CONFIDENTIAL and PROPRIETARY information of Borland Software.  
 *
 * 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 SOFTWARE, 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.
 */
//------------------------------------------------------------------------------
// Copyright (c) 1996-2004 Borland Software Corporation.  All Rights Reserved.
//------------------------------------------------------------------------------

package com.borland.samples.creditapproval.server;

import java.util.*;
import com.borland.samples.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 CreditApprovalPOA {

  private boolean connectOnDemand;

  // Do not use the singleton instance ( getDataModule() )
  CreditHistoryReviewer creditReviewer;
  CreditCardIssuer issueCreditCard;
  ResourceBundle res = Res.getBundle("com.borland.samples.creditapproval.server.Res");


  /**
   * Construct a persistently named object.
   * @param onDemmand boolean
   * @param randomData boolean
   * @throws Exception exception
   */
  public CreditApprovalImpl(boolean onDemmand, boolean randomData )
    throws Exception {

    connectOnDemand   = 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 (!connectOnDemand) {
      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.
   *
   * @param appInfo applicantInfoStruct
   * @param callback ClientCallback
   * @throws CreditApprovalException creditapprovalexception
   * @throws CreditDeniedException creditdeniedexception
   * @return creditApprovalStruct
   *
   */
  public creditApprovalStruct getCreditApproval(
    applicantInfoStruct appInfo,
    ClientCallback callback )
    throws CreditApprovalException,
           CreditDeniedException {

    creditApprovalStruct creditApproval;

    // First Approve the applicant.
    try{
      callback.updateStatusText(res.getString("Processing_Credit"));
      System.out.println("CreditApprovalImpl.getCreditApproval() validating entry form");

      // Make sure the applicant data is valid!
      validateData( appInfo );

      if (connectOnDemand) creditReviewer.connect( true );
      creditApproval = creditReviewer.approveCredit( appInfo );

      // Disconnect to free up a connection for the issueCreditCard DataModule.
      if (connectOnDemand) creditReviewer.connect( false );

      // If the applicant was approved, issue a credit card!
      if (creditApproval.approved) {
        callback.updateStatusText(res.getString("Applicant_Approved"));
        if (connectOnDemand) 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 (connectOnDemand) {
        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
   * @param appInfo applicantInfoStruct
   * @throws CreditApprovalException creditapprovalexception
   */
  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 = " ";
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -