📄 creditapprovalimpl.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 + -