package rd1obj1.ejb;

//import test.interfaces.AddressValue;
//import test.interfaces.AddressUtil;

import javax.ejb.CreateException;
import javax.ejb.EntityBean;
import javax.ejb.FinderException;

/**
 * @ejb.bean
 *     name="CustomerAddress"
 *     jndi-name="CustomerHome"
 *     view-type="local"
 *     primkey-field="id"
 *
 * @ejb.finder
 *     signature="Collection findByStreet(java.lang.String street)"
 *     unchecked="true"
 *
 * @ejb.finder
 *     signature="Collection findByCity(java.lang.String city)"
 *
 * @ejb.finder
 *     signature="Collection findByPhone_no(java.lang.String phone_no)"
 *
 * @ejb.persistence
 *     table-name="address"
 *
 * @jonas.bean
 *     ejb-name="Address"
 *     jndi-name="AddressHome"
 * @jonas.jdbc-mapping
 *     jndi-name="jdbc_1"
 *     jdbc-table-name="address"
 * @jonas.finder-method-jdbc-mapping
 *     method-name="findByStreet"
 *     jdbc-where-clause="street = ?"
 * @jonas.finder-method-jdbc-mapping
 *     method-name="findByCity"
 *     jdbc-where-clause="city = ?"
 * @jonas.finder-method-jdbc-mapping
 *     method-name="findByPhone_no"
 *     jdbc-where-clause="phone_no = ?"
 *
 */
public abstract class CustomerAddressBean extends BaseEntityBean implements EntityBean {
    /** @ejb.create-method */
    public String ejbCreate(String id, String street, String city, String phone_no)
		throws CreateException {
        setId(id);
		setStreet(street);
		setCity(city);
		setPhone_no(phone_no);
        return null;
    }

    public void ejbPostCreate(String id, String street, String city, String phone_no)
		throws CreateException {
        
    }

    //========== ATTRIBUTES ==========//

    /**
     * @ejb.pk-field
     * @ejb.persistent-field
     * @ejb.persistence
     *     column-name="id"
     *     sql-type="VARCHAR"
     * 
     * @jonas.cmp-field-jdbc-mapping
     *     field-name="id"
     *     jdbc-field-name="id" 
     */

    public abstract String getId();

    /**
     * No interface method for setId(..). See page 130 of the EJB 2.0 specification:
     * "Once the primary key for an entity bean has been set, the Bean Provider must
     * not attempt to change it by use of set accessor methods on the primary key
     * cmp-fields. The Bean provider should therefore not expose the set accessor
     * methods for the primary key cmp-fields in the component interface of the
     * entity bean.". A work around would be to remove and then an re-create the bean.
     */
    public abstract void setId(String id);

    /**
     * @ejb.persistent-field
     * @ejb.persistence
     *     column-name="street"
     *     sql-type="VARCHAR"
     * 
     * @jonas.cmp-field-jdbc-mapping
     *     field-name="street"
     *     jdbc-field-name="street"
     */
    public abstract String getStreet();

	public abstract void setStreet(String street);

    /**
     * @ejb.persistent-field
     * @ejb.persistence
     *     column-name="city"
     *     sql-type="VARCHAR"
     * 
     * @jonas.cmp-field-jdbc-mapping
     *     field-name="city"
     *     jdbc-field-name="city"
     */
    public abstract String getCity();

	public abstract void setCity(String city);

	/**
     * @ejb.persistent-field
     * @ejb.persistence
     *     column-name="phone_no"
     *     sql-type="VARCHAR"
     * 
     * @jonas.cmp-field-jdbc-mapping
     *     field-name="phone_no"
     *     jdbc-field-name="phone_no"
     */
    public abstract String getPhone_no();

	public abstract void setPhone_no(String phone_no);

}
