| Documentación | | ![]() | ![]() |
Arachnophilia es CareWare
/*
* 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: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:This is a test phrase.
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:[RunCustomClassDoc:CustomClasses/TestClass]
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 | | ![]() | ![]() |