Creación de instancias e interfaces EGL de tipo JavaObject

Al utilizar una interfaz de tipo JavaObject, a menudo es necesario acceder a un método estático que crea un objeto durante la ejecución. Este requisito se debe a que la tecnología de interfaces EGL no permite crear instancias de un objeto Java desde el código EGL.

Observe el siguiente archivo fuente EGL:
  package myInterfaces;

  Interface HelloWorld type JavaObject
    {javaName = "HelloWorld", 
     packageName = "com.ibm.examples.helloWorld"}
     
    function sayHello(name String) 
						 returns (String);
  End
La clase Java relacionada debería estar disponible tanto durante la compilación como durante la ejecución:
  package com.ibm.examples.helloWorld;

  class HelloWorld
  {
     // constructor de clases Java
     public HelloWorld()
     {
     }

     // implementación de la función 
     // a la que se hace referencia en la interfaz
     public String sayHello(String name)
     {
       return "Hello " + name;
     }
   }
Sin embargo, es apropiado un componente de interfaz EGL adicional:
  package myInterfaces;

  Interface HelloWorldFactory
    {javaName = "HelloWorldFactory", 
     packageName = "com.ibm.examples.helloWorld"}
    static function createHelloWorld() 
      returns (HelloWorld);
  End
El componente de interfaz HelloWorldFactory hace referencia a la siguiente clase Java, que incluye un método estático que devuelve un objeto de tipo HelloWorld:
  package com.ibm.examples.helloWorld;

  class HelloWorldFactory
  {
    // constructor de clases Java
    public HelloWorldFactory()
    {
    }

    // implementación de la función 
    // a la que se hace referencia en la interfaz
    public static HelloWorld createHelloWorld()
    {
      return new HelloWorld;
    }
  }
Un programa EGL puede incluir el siguiente código:
  package myDriver;
  import myInterfaces.*;

  program myProgram { }
  
    function myFunction()
      echo STRING;

      // crear una variable de tipo HelloWorld;
      // esta variable de referencia señala a NIL
      hwVar HellowWorld;

      // asignar un objeto Java a la variable
      hwVar = HelloWorldFactory.createHelloWorld();

      // acceder a cualquier método Java que se encuentre 
      // en el objeto de tipo HelloWorld 
      // y tenga una descripción
      // de función correspondiente
      // en el componente de interfaz EGL
      echo = hwVar.sayHello("John Doe");
    End
  End

Si está escribiendo un pageHandler que interactúa con el árbol de componentes JSF, creará variables basadas en un componentes de interfaz EGL; sin embargo, no le preocupará la creación de objetos, ya que EGL maneja la cuestión durante la ejecución. Para tener una visón general, consulte la sección Árbol de componentes JSF.

Conceptos relacionados
Interfaces EGL
Árbol de componentes JSF

Tareas relacionadas
Crear un componente de interfaz de EGL

Consulta relacionada
Componente de interfaz en formato fuente EGL
Interfaces de tipo JavaObject

Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.