jip
Class JIPCommand

java.lang.Object
  |
  +--jip.JIPCommand
Direct Known Subclasses:
AddPoint, AddSegment, Binarize, Brightness, Canny, ColorToGray, Contrast, ConvolveAscii, ConvolveImage, Crop, Equalize, Flip, Gamma, GeoToGray, Grad, GrayToGray, InterSegment, Link, Mag, Maximum, Minimum, Mirror, Negate, Noise, Op, Phase, Pixelate, RandomPoint, RandomSegment, Rotate, SegEdges, Sharpen, SharpenMore, Skeleton, Skew, SmoothAverage, SmoothGaussian, SmoothMedian, SmoothRadial, WaveHoriz, WaveVert

public abstract class JIPCommand
extends java.lang.Object

Descripción:
Clase base para definir objetos comando. Un comando es un objeto que tiene un objeto función asociado y que nos permite crear de forma simple una aplicación que procese dicha función sobre una secuencia contenida en un fichero, devolviendo en otro fichero la secuencia de salida. No podremos crear directamente objetos de la clase comando, tendremos que crear subclases de ésta que al heredar implementen como mínimo el constructor (que debe asignar la función asociada al comando) y el método main() que recoja los argumentos desde la línea de comandos y lance la ejecución del comando en sí. Internamente el objeto comando al ejecutar chequeará los argumentos introducidos y dará valores a los parámetros de la función, cargará la secuencia de entrada y obtendrá el nombre del fichero en el que almacenar la secuencia de salida (por defecto "out.jip"). En caso de que algún parámetro requerido no tome valor, o se especifique un parámetro desconocido o no se de el nombre del fichero que contiene la secuencia de entrada, se presentará por la salida estándar una ayuda construída con las descripciones obtenidas de la función asociada y sus parámetros. Sea cual sea la función asociada al comando y tenga o no parámetros, siempre se admitirá un argumento -help que provocará la presentación de las lineas de ayuda. Si la función asociada al comando devuelve resultados adicionales, podremos acceder a ellos en main() tras la ejecución y mostrarlos por pantalla o generar ficheros con ellos.


Field Summary
protected  java.lang.String fichdest
          Variable que contendrá el nombre del fichero en el que salvar la secuencia resultado tras procesar el comando.
protected  JIPFunction function
          Variable que contendrá el objeto función asociado al comando.
protected  JIPSequence source
          Variable que contendrá la secuencia de entrada a procesar.
 
Constructor Summary
JIPCommand()
           Descripción:
Constructor de un comando.
 
Method Summary
 void error(java.lang.String str)
           Descripción:
Muestra un error por la salida de error estándar y las lineas de ayuda del comando por la salida estándar.
 void execute(java.lang.String[] args)
           Descripción:
Invoca la ejecución del comando a partir de un vector de argumentos.
 void help()
           Descripción:
Muestra las lineas de ayuda del comando por la salida estándar.
 boolean parseArgs(java.lang.String[] args)
           Descripción:
Este método se encarga de chequear los argumentos que le pasamos y preparar el comando para su ejecución.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

fichdest

protected java.lang.String fichdest
Variable que contendrá el nombre del fichero en el que salvar la secuencia resultado tras procesar el comando. Esta variable toma valor tras invocar con éxito el método parseArgs().
See Also:
parseArgs(java.lang.String[])

source

protected JIPSequence source
Variable que contendrá la secuencia de entrada a procesar. Esta variable toma valor tras invocar con éxito el método parseArgs(), el cual la cargará desde el fichero de entrada especificado en los argumentos.
See Also:
parseArgs(java.lang.String[])

function

protected JIPFunction function
Variable que contendrá el objeto función asociado al comando. Sólo será accesible desde las clases derivadas que deberán asignar esta variable en su constructor.
See Also:
JIPFunction
Constructor Detail

JIPCommand

public JIPCommand()

Descripción:
Constructor de un comando. La clase derivada debe implementarlo asignando la variable function.

Method Detail

execute

public void execute(java.lang.String[] args)

Descripción:
Invoca la ejecución del comando a partir de un vector de argumentos. Los argumentos pueden ser: -help -> Provoca la muestra de unas lineas de ayuda basadas en las descripciones de la función y sus parámetros. -nombre_parametro -> Provoca la asignación de un valor a un parámetro de la función asociada al comando. El valor a asignar será el siguiente argumento al actual (se comprobará que el valor corresponde al tipo de parámetro y que este parámetro existe). nombre_fichero -> La primera aparición es obligatoria y se referirá a un fichero que contenga la secuencia de entrada a procesar (se comprobará que el fichero exista y tenga formato JIP). La segunda aparición es opcional y especificará un nombre de fichero para la secuencia de salida (por defecto out.jip). En el caso de que algo falle (no se especifique el fichero de entrada, no se de valor a un parámetro requerido, ...) la ejecución mostrará un error y las lineas de ayuda del comando. Este método invoca internamente al método parseArgs() con los mismos argumentos que recibe.

Parameters:
args - Vector de argumentos obtenidos de la linea de comando de la aplicación. Normalmente será directamente el vector recibido en el método main() de la aplicación.

error

public void error(java.lang.String str)

Descripción:
Muestra un error por la salida de error estándar y las lineas de ayuda del comando por la salida estándar.

Parameters:
str - Error a mostrar.

help

public void help()

Descripción:
Muestra las lineas de ayuda del comando por la salida estándar. Esta ayuda se construye a partir de los nombres y descripciones de la función asociada al comando y de sus parámetros.


parseArgs

public boolean parseArgs(java.lang.String[] args)

Descripción:
Este método se encarga de chequear los argumentos que le pasamos y preparar el comando para su ejecución. Comprobará que los parámetros existen en la función del comando, asignará los valores comprobando que son del tipo adecuado y cargará la secuencia de entrada asignándola a la variable source del comando. Para parámetros del tipo pIMAGE se asignará como imagen el primer frame del fichero especificado como valor del parámetro, comprobándose que existe y tiene formato JIP. También asignará el nombre del fichero de salida a la variable fichdest (por defecto out.jip si no se especifica en los argumentos) y comprobará que todos los parámetros requeridos de la función han tomado valor. Si algo no va bien, el método mostrará un error y devolverá FALSE. Si estamos utilizando el método execute(), no tiene sentido utilizar antes éste método pues ya lo hace execute(). Este método es útil cuando queramos controlar nosotros la ejecución del comando y por tanto no utilicemos execute(). Por ejemplo, si deseamos ir ejecutando el comando sobre la secuencia de entrada frame a frame, para ir accediendo a ciertos resultados propios del procesamiento de cada frame, podemos utilizar este método al principio ara chequear los argumentos y cargar la secuencia de entrada en la variable source, luego meternos en un bucle que procese cada frame de la secuencia con el método function.processImg(frame), obtener los resultados obtenidos del proceso y mostrarlos, e ir creando la secuencia de salida para almacenarla al final en el fichero con nombre fichdest.

Parameters:
args - Vector de argumentos de la linea de comando.
Returns:
TRUE si todo ha ido correctamente.