FileDocCategorySizeDatePackage
TravelAgentBean.javaAPI DocExample5805Sat Sep 11 10:00:02 BST 1999com.titan.travelagent

TravelAgentBean

public class TravelAgentBean extends Object implements javax.ejb.SessionBean

Fields Summary
public Customer
customer
public Cruise
cruise
public Cabin
cabin
public javax.ejb.SessionContext
ejbContext
public transient Context
jndiContext
Constructors Summary
Methods Summary
public TicketbookPassage(CreditCard card, double price)


        if(customer == null || cruise == null || cabin == null){
            throw new IncompleteConversationalState();
        }
        try{
           ReservationHome resHome =
               (ReservationHome) getHome("jndiName_ReservationHome");
           Reservation reservation =
               resHome.create(customer, cruise, cabin,price);
           ProcessPaymentHome ppHome =
               (ProcessPaymentHome) getHome("jndiName_ProcessPaymentHome");
           ProcessPayment process = ppHome.create();
           process.byCredit(customer, card, price);

           Ticket ticket = new Ticket(customer,cruise,cabin,price);
           return ticket;
        }catch(javax.ejb.DuplicateKeyException dke){
            throw new DoubleBookingException(
                "The cabin is already reserved");
        }catch(Exception ce){
            throw new RemoteException("Book Passage",ce);
        }
    
public voidejbActivate()

public voidejbCreate(Customer cust)

        customer = cust;
    
public voidejbPassivate()

        try{
            jndiContext.close();
        }catch(javax.naming.NamingException ne){}
        jndiContext = null;
    
public voidejbRemove()

public intgetCabinID()

        if(cabin==null)
            throw new RemoteException();
        return ((CabinPK)cabin.getPrimaryKey()).id;
    
private java.sql.ConnectiongetConnection()

        return DriverManager.getConnection(
        ejbContext.getEnvironment().getProperty("jdbcURL"));
    
public intgetCruiseID()

        if(cruise == null)
            throw new RemoteException();
        return ((CruisePK)cruise.getPrimaryKey()).id;
    
public intgetCustomerID()

        if(customer == null)
            throw new RemoteException();
        return ((CustomerPK)customer.getPrimaryKey()).id;
    
protected java.lang.ObjectgetHome(java.lang.String name)

        try{
            String jndiName =
                ejbContext.getEnvironment().getProperty(name);
            return getJndiContext().lookup(jndiName);
        }catch(javax.naming.NamingException ne){
            throw new RemoteException("Could not lookup ("+name+")",ne);
        }
    
protected javax.naming.ContextgetJndiContext()


        if(jndiContext!=null)
            return jndiContext;

        // ... specify the JNDI properties specific to the vendor

        jndiContext = new InitialContext(p);
        return jndiContext;
    
public java.lang.String[]listAvailableCabins(int bedCount)


        if(cruise == null) throw new IncompleteConversationalState();

        int cruiseID = ((CruisePK)cruise.getPrimaryKey()).id;
        int shipID = cruise.getShipID();

        Connection con = null;
        PreparedStatement ps = null;;
        ResultSet result = null;
        try {
          con = getConnection();
          ps = con.prepareStatement(
              "select ID, NAME, DECK_LEVEL  from CABIN "+
              "where SHIP_ID = ? and ID NOT IN "+
              "(SELECT CABIN_ID FROM RESERVATION WHERE CRUISE_ID = ?)");

          ps.setInt(1,shipID);
          ps.setInt(2,cruiseID);
          result = ps.executeQuery();
          Vector vect = new Vector();
          while(result.next()){
               StringBuffer buf = new StringBuffer();
               buf.append(result.getString(1));
               buf.append(',");
               buf.append(result.getString(2));
               buf.append(',");
               buf.append(result.getString(3));
               vect.addElement(buf.toString());
          }
          String [] returnArray = new String[vect.size()];
          vect.copyInto(returnArray);
          return returnArray;
        }
        catch (SQLException se) {
          throw new RemoteException (se.getMessage());
        }
        finally {
          try {
            if (result != null) result.close();
            if (ps != null) ps.close();
            if (con!= null) con.close();
          }catch(SQLException se){se.printStackTrace();}
        }
    
public voidsetCabinID(int cabinID)

        CabinHome home = (CabinHome)getHome("jndiName_CabinHome");
        CabinPK pk = new CabinPK();
        pk.id=cabinID;
        cabin = home.findByPrimaryKey(pk);
    
public voidsetCruiseID(int cruiseID)

        CruiseHome home = (CruiseHome)getHome("jndiName_CruiseHome");
        cruise = home.findByPrimaryKey(new CruisePK(cruiseID));
    
public voidsetSessionContext(javax.ejb.SessionContext cntx)

        ejbContext = cntx;