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

📄 quickorderprocessorbean.java

📁 一个Enterprise Service Arch.的简单例子
💻 JAVA
字号:
package com.zklee.test.quickcarrental;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;

import javax.ejb.CreateException;
import javax.ejb.FinderException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import com.zklee.test.util.Constants;
import com.zklee.test.util.QuickBookingModel;
import com.zklee.test.util.QuickCarRentalException;
/**
 * @ejbHome <{com.zklee.test.quickcarrental.QuickOrderProcessorHome}>
 * @ejbLocal <{com.zklee.test.quickcarrental.QuickOrderProcessorLocal}>
 * @ejbLocalHome <{com.zklee.test.quickcarrental.QuickOrderProcessorLocalHome}>
 * @ejbRemote <{com.zklee.test.quickcarrental.QuickOrderProcessor}>
 * @stateless 
 * @transactionType Container
 */
public class QuickOrderProcessorBean implements SessionBean {

	private QuickBookingLocalHome bookingHome;

	public void ejbRemove() {
	}

	public void ejbActivate() {
	}

	public void ejbPassivate() {
	}

	public void setSessionContext(SessionContext context) {
		myContext = context;
	}

	private SessionContext myContext;
	/**
	 * Business Method.
	 */
	public QuickBookingModel saveBooking(
		String vehicleTypeId,
		String dateFromString,
		String dateToString,
		String pickupLocation,
		String dropoffLocation)
		throws QuickCarRentalException {
			
		Date dateFrom = getDate(dateFromString);
		Date dateTo = getDate(dateToString);
		QuickBookingLocal booking = null;
		java.util.Date reservationDate = new java.util.Date();
		java.lang.String bookingId = generateId();
		try {
			booking =
				bookingHome.create(
					bookingId,
					vehicleTypeId,
					reservationDate,
					dateFrom,
					dateTo,
					pickupLocation,
					dropoffLocation,
					Constants.STATUS_ACTIVE);
		} catch (CreateException e) {
			e.printStackTrace();
			throw new QuickCarRentalException(e.getMessage());
		}
		return getBookingModel(booking);
	}

	/**
	 * Business Method.
	 */
	public String cancelBooking(String bookingId)
		throws QuickCarRentalException {
			try {
				QuickBookingLocal booking =
					bookingHome.findByPrimaryKey(bookingId);
				booking.setStatus(Constants.STATUS_CANCELLED);
			} catch (FinderException e) {
				e.printStackTrace();
				throw new QuickCarRentalException(e.getMessage());
			}
			return bookingId + " cancelled.";		
	}

	/**
	 * Business Method.
	 */
	public QuickBookingModel[] viewActiveBookings()throws QuickCarRentalException {		
		ArrayList bookings = new ArrayList();
		try {
			Collection active =
				bookingHome.findByStatus(Constants.STATUS_ACTIVE);
			for (Iterator iterator = active.iterator(); iterator.hasNext();) {
				bookings.add(
					getBookingModel((QuickBookingLocal) iterator.next()));
			}
		} catch (FinderException e) {
			e.printStackTrace();
			throw new QuickCarRentalException(e.getMessage());
		}
		QuickBookingModel[] result = new QuickBookingModel[bookings.size()];
		bookings.toArray(result);
		return result;
	}
 
	/**
	 * Create Method.
	 */
	public void ejbCreate() throws CreateException {
		try {
		Context ctx = new InitialContext();
		bookingHome =
		(QuickBookingLocalHome) ctx.lookup(
		"java:comp/env/QuickCarRental/QuickBookingBean");
		} catch (NamingException e) {
		throw new CreateException(e.getMessage());
		}
	}

	private String generateId() {
		Date temp = new Date();
		String stemp = String.valueOf(temp.hashCode());
		if (stemp.length() < 10)
			return stemp.substring(1, stemp.length());
		else
			return stemp.substring(1, 9);
	}

	private QuickBookingModel getBookingModel(QuickBookingLocal booking) {
		QuickBookingModel data = new QuickBookingModel();
		data.setBookingId(booking.getBookingId());
		data.setPickupLocation(booking.getPickupLocation());
		data.setVehicleType(booking.getVehicleTypeId());
		data.setDateFrom(Constants.FORMATTER.format(booking.getDateFrom()));
		data.setDateTo(Constants.FORMATTER.format(booking.getDateTo()));
		data.setDropoffLocation(booking.getDropoffLocation());
		int days =
			(int) ((booking.getDateTo().getTime()
				- booking.getDateFrom().getTime())
				/ (1000 * 60 * 60 * 24));
		if (days == 0)
			days = 1;
		data.setPrice(Float.toString(40 * days) + " EUR");
		return data;
	}
	
	private Date getDate(java.lang.String dateString)
		throws QuickCarRentalException {
		try {
			return Constants.FORMATTER.parse(dateString);
		} catch (java.text.ParseException pe) {
			pe.printStackTrace();
			throw new QuickCarRentalException("The date has to be in format dd.MM.yyyy, for example 21.04.2004");
		}
	}
}

⌨️ 快捷键说明

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