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 |
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
JIPCommand
public JIPCommand()
Descripción:
Constructor de un comando. La clase derivada debe implementarlo asignando
la variable function.
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.