package com.acme.phone.ejb;

import javax.ejb.EntityContext;
import javax.ejb.CreateException;
import java.util.Date;

/** @ejb.bean 
 *      name="Phone" 
 *      type="CMP"
 *      view-type="local"
 *      local-jndi-name="PhoneJNDI"
 *      primkey-field="id"
 *      schema="PHONE"
 *      cmp-version="2.x"
 *
 * @ejb.security-identity use-caller-identity="true" 
 * @ejb.transaction
 *      type="Required"
 * @ejb.persistence
 *      table-name="PHONE"
 * @jboss.persistence
 *      create-table="true"
 *      remove-table="true"
 */
public abstract class PhoneBean implements javax.ejb.EntityBean 
{
   private static final int IDGEN_START = (int)System.currentTimeMillis();
   private static int idgen = IDGEN_START;
    
    /** @ejb.create-method */ 
   public Object ejbCreate(String number, byte type)
      throws CreateException
   {
      System.out.println("ejbCreate");
      setId(new Integer(idgen++));
      setNumb(number);
      setType(type);
      return null;
   }

   public void ejbPostCreate(String number, byte type) 
   {
      System.out.println("ejbPostCreate");
   }

   // persistent fields
   
   /**
     * @ejb.pk-field 
     * @ejb.persistent-field
     * @ejb.persistence
     *     column-name="PHONE_ID"
     *      jdbc-type="INTEGER"
     *     sql-type="NUMBER(10)"
     *
     */
   public abstract Integer getId();
   
   //Not used, set once in create
   public abstract void setId(Integer id);
    /**
     * @ejb.persistent-field
     * @ejb.persistence
     *     column-name="PHONE_NUMB"
     *      jdbc-type="VARCHAR"
     *      sql-type="varchar(255)"
     * 
     * @ejb.interface-method view-type="local"
     */
   public abstract String getNumb();
   
   /**
   * @ejb.interface-method view-type="local"
   */
   public abstract void setNumb(String number);
   
    /**
     * @ejb.persistent-field
     * @ejb.persistence
     *     column-name="NUMB_TYPE"
     *      jdbc-type="NUMERIC"
     *      sql-type="NUMBER(3))"
     * 
     * @ejb.interface-method view-type="local"
     */
   public abstract byte getType();
   
   /**
   * @ejb.interface-method view-type="local"
   */
   public abstract void setType(byte type);

   // standard call back methods
    
   public void setEntityContext(EntityContext ec){}
   public void unsetEntityContext(){}
   public void ejbLoad(){}
   public void ejbStore(){}
   public void ejbActivate(){}
   public void ejbPassivate(){}
   public void ejbRemove()throws javax.ejb.RemoveException { }

}
