Documentación |   
La interfaz de clase personalizada de Java
Arachnophilia is © Copyright 2015, P. Lutus.

Arachnophilia es CareWare

Usando macros del sistema, Arachnophilia puede interactuar con clases Java externas escritas por el usuario o proporcionadas por terceros. Esto esencialmente significa cualquier función imaginable puede agregarse a Arachnophilia.

Aquí está cómo proceder:

Esta es la idea general, y la mayoría de los programadores no tendrán ningún problema. Pero, solo para un ejemplo, invocaremos una clase Java de muestra que está incluida con Arachnophilia.

Aquí hay una lista de la clase de prueba (Copie el bloque abajo para crear su propio contenido):

        
/*
 * Created on Oct 26, 2009 12:06:55 PM
 */
/* TestClass is meant to demonstrate the use
 * of Arachnophilia's custom class launcher feature.
 * Just compile this class in place, create
 * a macro that looks like this:
 * "[RunCustomClassDoc:CustomClasses/TestClass]",
 * load a suitable document, and activate the macro.
 */
package CustomClasses;
import java.util.*;
public class TestClass {
   
   // this is a generic, minimal global search & replace method
   
   private String searchReplace(String data,String find,String replace)
   {
      StringBuffer sb = new StringBuffer();
      int a = 0,b;
      int findLength = find.length();
      while((b = data.indexOf(find,a)) != -1) {
         sb.append(data.substring(a,b));
         sb.append(replace);
         a = b + findLength;
      }
      if(a < data.length()) {
         sb.append(data.substring(a));
      }
      return sb.toString();
   }
   
   // this is the default method that custom classes
   // must have to work with Arachnophilia's class
   // launcher feature unless a specific method name
   // is provided
   
   public String processString(String s)
   {
      String result = "Hello! This is an example of Java Custom Class Interfacing!\n\n"
      + "You sent over this:\n"
      + "\"" + s + "\"\n"
      + "Here it is all uppercase:\n"
      + "\"" + s.toUpperCase() + "\"\n"
      + "Here it is all lowercase:\n"
      + "\"" + s.toLowerCase() + "\"\n"
      + "Here it is with a global change:\n"
      + "\"" + searchReplace(s,"a","(A)") + "\"\n";
      return result;
   }
   
   // this is another method to show the ability to choose
   // any method by name
   
   public String reallyBoringMethod(String s)
   {
      return "On " + new Date() + ", you invoked this really boring Java method.";
   }
}

        
        

Esta clase de prueba ya ha sido creada y compilada, y debería estar en su directorio de usuario bajo un subdirectorio llamado "Clase Personalizada". Veamos si es.:)

Abrir un nuevo documento de texto y escribir algo en él. Aquí está nuestro texto de ejemplo:
This is a test phrase.
Ahora encuentra el elemento del menú Programación ... Demostración de clase personalizada y haga clic en él. La macro detrás de este elemento del menú tiene este contenido de forma predeterminada:

[RunCustomClassDoc:CustomClasses/TestClass]
Esta macro significa "Buscar una clase Java en un subdirectorio del directorio de usuario de Arachnophilia llamado "Clase Personalizada", buscar una clase allí nombrada 'TestClass' y ejecutar un método llamado 'Cadena de Proceso' con el contenido del documento actual como su argumento."

Aquí está el resultado de nuestra oración de ejemplo:

Hello! This is an example of Java Custom Class Interfacing!
You sent over this:
"This is a test phrase."
Here it is all uppercase:
"THIS IS A TEST PHRASE."
Here it is all lowercase:
"this is a test phrase."
Here it is with a global change:
"This is (A) test phr(A)se."
          

Si la macro se invoca como arriba, asumirá la existencia de un método público llamado "Cadena de proceso" y le dirá si no puede encontrarlo.

[RunCustomClassDoc:CustomClasses/TestClass.reallyBoringMethod]

Ocurre que hay un método con este nombre en nuestra clase de prueba, y si se invoca regresará (algo parecido):

On Fri Mar 08 21:58:27 PST 2002, you invoked this really boring Java method.
          

Las clases personalizadas creadas por el usuario pueden ubicarse en cualquier lugar en el directorio o subdirectorios de Arachnophilia del usuario, y puede haber cualquier número de métodos con cualquier nombre en las clases. Los únicos requisitos son que el identificador del paquete sea el mismo que el listado anterior ("CustomClasses") y que los métodos sean públicos y reciban y devuelvan una Cadena.

 

Documentación |