# JavaBeans Enterprise

## Paso 4: Escribir la Clase JavaBean EnterpriseTM

Este paso nos enseña cómo se crea el código de una aplicación (la lógica del negocio). Hasta ahora, hemos declarado interfaces para los que la herramienta de contenedores generaba código, pero aquí es donde se codifica la funcionalidad del JavaBean.

Una cosa importante a observar sobre la implementación del Bean, es el poco código que debemos generar. La mayoría del código es simplemente implementar métodos de la especificación de JavaBeans Enterprise. Es fácil crear plantillas y herramientas que nos hagan la mayor parte del trabajo de implementación. Esto es comparable con la forma en que algunas herramientas crean los entornos GUI para Beans.

Aquí está el código fuente del JavaBean DemoBean.java:

       /**
        * DemoBean -- This is implemented by the EnterPrise
        * Bean author This class must extend
        * javax.ejb.SessionBean and implement
        * the methods in this interface as well as providing
        * the implementation of the business methods.
        *
        */
    package ejb.demo;

    import javax.ejb.*;
    import java.io.Serializable;
    import java.util.*;
    import java.rmi.*;

    public class DemoBean implements SessionBean {
      static final boolean verbose = true;

      private transient SessionContext ctx;
      private transient Properties props;

      // Implement the methods in the SessionBean
      // interface
      public void ejbActivate() {
        if (verbose)
          System.out.println("ejbActivate called");
      }

      public void ejbRemove() {
        if (verbose)
          System.out.println("ejbRemove called");
      }

      public void ejbPassivate() {
        if (verbose)
          System.out.println("ejbPassivate called");
      }

        /**
         * Sets the session context.
         *
         * @param SessionContext
         */
      public void setSessionContext(SessionContext ctx) {
        if (verbose)
          System.out.println("setSessionContext called");
        this.ctx = ctx;
        props = ctx.getEnvironment();
      }

         /**
         * This method corresponds to the create method in
         * the home interface DemoHome.java.
         * The parameter sets of the two methods are
         * identical. When the client calls
         * DemoHome.create(), the container allocates an
         * instance of the EJBean and calls ejbCreate().
         */
      public void ejbCreate () {
        if (verbose)
          System.out.println("ejbCreate called");
      }

        /**
         * **** HERE IS THE BUSINESS LOGIC *****
         * Do the demoSelect() but don't even go to
         * the database in this eg but instead just
         * return a String.
         * The really BIG thing to notice here is that
         * this is the only code we have invented at all
         * the rest of the code has been declarations
         * or simply implementing methods which are
         * part of the EJB interfaces and in this example
         * are not even used.
         */
      public String demoSelect()
        throws RemoteException
      {
        return("hello world");
      }

    }

Ozito