GiciParser
Class ArgumentsParser

java.lang.Object
  extended by GiciParser.ArgumentsParser
Direct Known Subclasses:
DisplayFrameParser

public class ArgumentsParser
extends java.lang.Object

Arguments parser definition (useful for extending in other classe). This class analyses a string of arguments and extract and check its validity. Use example: import java.lang.reflect.*; public class CoderParser extends ArgumentsParser{ //ARGUMENTS SPECIFICATION String[][] coderArguments = { {"-ct", "--colourTransformType", "{int}", "if 3 first components are RGB: 1 if WT is 1 or 0, 2 if WT is 2. Otherwise 0.", "0", "1", "Colour transform type:\n 0- No colour transform\n 1- Reversible Colour Transform\n 2- Irreversible Colour Transform" } }; //ARGUMENTS VARIABLES int CTType = -1; public CoderParser(String[] arguments) throws ParameterException, ErrorException{ try{ Method m = this.getClass().getMethod("parseArgument", new Class[] {int.class, String[].class}); parse(coderArguments, arguments, this, m); }catch(NoSuchMethodException e){ throw new ErrorException("Coder parser error invoking parse function."); } } public void parseArgument(int argFound, String[] options) throws ParameterException{ switch(argFound){ case 0: //-c --colourTransformType CTType = parseIntegerPositive(options); break; } } public int getCTType(){ return(CTType); } }

Version:
1.0
Author:
Group on Interactive Coding of Images (GICI)

Field Summary
(package private)  java.lang.String[][] argumentsSpecification
          Arguments specificiation.
 
Constructor Summary
ArgumentsParser()
           
 
Method Summary
(package private)  int argFind(java.lang.String arg)
          Finds the argument string in arguments specification array.
 void parse(java.lang.String[][] argumentsSpecification, java.lang.String[] args, java.lang.Object parseClass, java.lang.reflect.Method parseArgument)
          Receives the arguments string and parses all the arguments.
 boolean parseBoolean(java.lang.String[] options)
           
 boolean[] parseBooleanArray(java.lang.String[] options, int numOptions)
           
 float[] parseFloatArray(java.lang.String[] options)
           
 float[] parseFloatArray(java.lang.String[] options, int numOptions)
           
 float parseFloatPositive(java.lang.String[] options)
           
 int[] parseIntegerArray(java.lang.String[] options)
           
 int[] parseIntegerArray(java.lang.String[] options, int numOptions)
           
 int parseIntegerPositive(java.lang.String[] options)
           
 long[] parseLongArray(java.lang.String[] options)
           
 long[] parseLongArray(java.lang.String[] options, int numOptions)
           
 long parseLongPositive(java.lang.String[] options)
           
 java.lang.String parseString(java.lang.String[] options)
           
 void showArgsInfo()
          This function shows arguments information to console.
 void showArgsInfoLatexTable()
          This function shows arguments information to console using a formatted table in latex (useful to write manuals in latex).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

argumentsSpecification

java.lang.String[][] argumentsSpecification
Arguments specificiation. The array describes argument, explain what is used and its default parameters. First index of array is argument; second specifies:

String arguments.

Constructor Detail

ArgumentsParser

public ArgumentsParser()
Method Detail

parse

public void parse(java.lang.String[][] argumentsSpecification,
                  java.lang.String[] args,
                  java.lang.Object parseClass,
                  java.lang.reflect.Method parseArgument)
           throws ParameterException,
                  ErrorException
Receives the arguments string and parses all the arguments. It calls a method passed to class passing to it the number of argument and its options (this method can use parseInteger,... functions to extract arguments values).

Parameters:
argumentsSpecification - defined in this class
args - the array of strings passed at the command line
parseClass - class where the invocated method is
parseArgument - method to invoke for each argument
Throws:
ParameterException - when an invalid parsing is detected
ErrorException - when some problem with method invocation occurs

argFind

int argFind(java.lang.String arg)
Finds the argument string in arguments specification array.

Parameters:
arg - argument to find out in argumentsSpecification
Returns:
the argument index of argumentsSpecification (-1 if it doesn't exist)

showArgsInfo

public void showArgsInfo()
This function shows arguments information to console.


showArgsInfoLatexTable

public void showArgsInfoLatexTable()
This function shows arguments information to console using a formatted table in latex (useful to write manuals in latex).


parseBoolean

public boolean parseBoolean(java.lang.String[] options)
                     throws ParameterException
Throws:
ParameterException

parseIntegerPositive

public int parseIntegerPositive(java.lang.String[] options)
                         throws ParameterException
Throws:
ParameterException

parseLongPositive

public long parseLongPositive(java.lang.String[] options)
                       throws ParameterException
Throws:
ParameterException

parseFloatPositive

public float parseFloatPositive(java.lang.String[] options)
                         throws ParameterException
Throws:
ParameterException

parseString

public java.lang.String parseString(java.lang.String[] options)
                             throws ParameterException
Throws:
ParameterException

parseBooleanArray

public boolean[] parseBooleanArray(java.lang.String[] options,
                                   int numOptions)
                            throws ParameterException
Throws:
ParameterException

parseIntegerArray

public int[] parseIntegerArray(java.lang.String[] options)
                        throws ParameterException
Throws:
ParameterException

parseIntegerArray

public int[] parseIntegerArray(java.lang.String[] options,
                               int numOptions)
                        throws ParameterException
Throws:
ParameterException

parseLongArray

public long[] parseLongArray(java.lang.String[] options)
                      throws ParameterException
Throws:
ParameterException

parseLongArray

public long[] parseLongArray(java.lang.String[] options,
                             int numOptions)
                      throws ParameterException
Throws:
ParameterException

parseFloatArray

public float[] parseFloatArray(java.lang.String[] options)
                        throws ParameterException
Throws:
ParameterException

parseFloatArray

public float[] parseFloatArray(java.lang.String[] options,
                               int numOptions)
                        throws ParameterException
Throws:
ParameterException


TER - Copyright (C) 2006
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Group on Interactive Coding of Images (GICI) - UAB (Spain)