Package xpetstore.domain.order.ejb

Source Code of xpetstore.domain.order.ejb.OrderEJB

package xpetstore.domain.order.ejb;

import java.rmi.RemoteException;

import java.util.Collection;
import java.util.Date;
import java.util.Iterator;

import javax.ejb.CreateException;
import javax.ejb.EJBException;
import javax.ejb.EntityBean;
import javax.ejb.FinderException;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import xpetstore.domain.catalog.interfaces.ItemLocal;
import xpetstore.domain.catalog.util.ItemUtil;
import xpetstore.domain.customer.interfaces.CustomerLocal;
import xpetstore.domain.order.interfaces.OrderItemLocal;
import xpetstore.domain.order.model.OrderValue;
import xpetstore.domain.order.util.OrderItemUtil;

import xpetstore.util.JNDINames;
import xpetstore.util.uidgen.util.UIDGeneratorUtil;


/**
* @author <a href="mailto:tchbansi@sourceforge.net">Herve Tchepannou</a>
*
* @ejb.bean
*      name="Order"
*      type="CMP"
*      view-type="local"
*      primkey-field="orderUId"
*      schema="Order"
*      cmp-version="${ejb.cmp.version}"
* @ejb.value-object
*      name="Order"
*      match="*"
* @ejb.transaction
*      type="Required"
* @ejb.persistence
*      table-name="T_ORDER"
* @ejb.finder
*      signature="Collection findByCustomer(java.lang.String userId)"
*      query="SELECT OBJECT(o) FROM Order AS o WHERE o.customer.userId = ?1"
* @ejb.ejb-ref
*      ejb-name="OrderItem"
*      view-type="local"
*     ref-name="ejb/OrderItemLocal"
* @ejb.ejb-ref
*      ejb-name="UIDGenerator"
*      view-type="local"
*     ref-name="ejb/UIDGeneratorLocal"
*
* @jboss.persistence
*      create-table="${jboss.create.table}"
*      remove-table="${jboss.remove.table}"
*/
public abstract class OrderEJB
    implements EntityBean
{
    //~ Static fields/initializers ---------------------------------------------

    public static final String COUNTER_NAME = "Order";

    //~ Methods ----------------------------------------------------------------

    //==========================================
    // Business methods
    //==========================================

    /**
     * @ejb.interface-method
     */
    public void addItem( String itemId,
                         int    quantity )
        throws FinderException,
                   CreateException
    {
        try
        {
            ItemLocal      item = ItemUtil.getLocalHome(  ).findByPrimaryKey( itemId );

            OrderItemLocal oitem = OrderItemUtil.getLocalHome(  ).create( quantity, item.getItemValue(  ).getListPrice(  ) );
            oitem.setItem( item );
            getOrderItems(  ).add( oitem );
        }
        catch ( NamingException n )
        {
            throw new CreateException( n.toString(  ) );
        }
    }

    /**
     * @ejb.interface-method
     */
    public void changeStatus( String status )
    {
        setStatus( status );
    }

    /**
     * @ejb.interface-method
     */
    public double getTotal(  )
    {
        double   total = 0;
        Iterator it = getOrderItems(  ).iterator(  );
        while ( it.hasNext(  ) )
        {
            total += ( ( OrderItemLocal ) it.next(  ) ).getSubTotal(  );
        }

        return total;
    }

    /**
     * @ejb.interface-method
     */
    public abstract OrderValue getOrderValue(  );

    /**
     * @ejb.interface-method
     */
    public abstract void setOrderValue( OrderValue data );

    //==========================================
    // CMP fields
    //==========================================

    /**
     * @ejb.pk-field
     * @ejb.persistence
     *      column-name="orderUId"
     * @ejb.interface-method
     * @ejb.transaction
     *      type="Supports"
     */
    public abstract Integer getOrderUId(  );

    public abstract void setOrderUId( Integer orderUId );

    /**
     * @ejb.persistence
     *      column-name="orderDate"
     */
    public abstract Date getOrderDate(  );

    public abstract void setOrderDate( Date orderDate );

    /**
     * @ejb.persistence
     *      column-name="status"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(25)"
     */
    public abstract String getStatus(  );

    public abstract void setStatus( String status );

    /**
     * @ejb.persistence
     *      column-name="street1"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(50)"
     */
    public abstract String getStreet1(  );

    public abstract void setStreet1( java.lang.String street1 );

    /**
     * @ejb.persistence
     *      column-name="street2"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(50)"
     */
    public abstract String getStreet2(  );

    public abstract void setStreet2( String street2 );

    /**
     * @ejb.persistence
     *      column-name="city"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(25)"
     */
    public abstract java.lang.String getCity(  );

    public abstract void setCity( String city );

    /**
     * @ejb.persistence
     *      column-name="state"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(3)"
     */
    public abstract String getState(  );

    public abstract void setState( String state );

    /**
     * @ejb.persistence
     *      column-name="zipcode"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(10)"
     */
    public abstract String getZipcode(  );

    public abstract void setZipcode( String zipcode );

    /**
     * @ejb.persistence
     *      column-name="country"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(3)"
     */
    public abstract java.lang.String getCountry(  );

    public abstract void setCountry( String country );

    /**
     * @ejb.persistence
     *      column-name="creditCardNumber"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(25)"
     */
    public abstract String getCreditCardNumber(  );

    public abstract void setCreditCardNumber( String creditCardNumber );

    /**
     * @ejb.persistence
     *      column-name="creditCardType"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(25)"
     */
    public abstract String getCreditCardType(  );

    public abstract void setCreditCardType( String creditCardType );

    /**
     * @ejb.persistence
     *      column-name="creditCardExpiryDate"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(10)"
     */
    public abstract String getCreditCardExpiryDate(  );

    public abstract void setCreditCardExpiryDate( String creditCardExpiryDate );

    //==========================================
    // CMR fields
    //==========================================

    /**
     * @ejb.interface-method
     * @ejb.relation
     *      name="order-customer"
     *      role-name="order-belongs_to-customer"
     *      target-ejb="Customer"
     *      target-role-name="customer-has-orders"
     *      target=multiple="yes"
     *
     * @jboss.relation
     *      fk-column="customer_fk"
     *      related-pk-field="userId"
     *
     * @weblogic.column-map
     *      foreign-key-column="customer_fk"
     */
    public abstract CustomerLocal getCustomer(  );

    /**
     * @ejb.interface-method
     */
    public abstract void setCustomer( CustomerLocal customer );

    /**
     * @ejb.interface-method
     * @ejb.relation
     *      name="order-orderItem"
     *      role-name="order-has-orderItems"
     *      target-ejb="OrderItem"
     *      target-role-name="orderItem-belongs_to-order"
     *      target-cascade-delete="yes"
     *
     * @jboss.target-relation
     *      fk-column="order_fk"
     *      related-pk-field="orderUId"
     *      fk-contraint="${db.foreign.key}
     *
     * @weblogic.target-column-map
     *      foreign-key-column="order_fk"
     */
    public abstract Collection getOrderItems(  );

    public abstract void setOrderItems( Collection orderItems );

    //==========================================
    // EJB callbacks
    //==========================================

    /**
     * @ejb.create-method
     */
    public Integer ejbCreate( OrderValue data )
        throws CreateException
    {
        int uid = 0;
        try
        {
          uid = UIDGeneratorUtil.getLocalHome().create().getUniqueId(COUNTER_NAME);
        }
        catch( Exception e )
        {
          throw new EJBException( e );
        }
       
        setOrderUId( new Integer( uid ) );
        setOrderValue( data );

        return null;
    }

    public void ejbPostCreate( OrderValue data )
        throws CreateException {}
}
TOP

Related Classes of xpetstore.domain.order.ejb.OrderEJB

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.