edu.northwestern.at.utils.math.matrix
Class MatrixFromString.MatrixFromStringParser

java.lang.Object
  extended by edu.northwestern.at.utils.math.matrix.MatrixFromString.MatrixFromStringParser
Enclosing class:
MatrixFromString

public static class MatrixFromString.MatrixFromStringParser
extends java.lang.Object

General recursive descent parser class for matrices whose forma can be parsed with regular expressions.


Field Summary
protected  java.lang.String endEntryString
          String which ends a matrix entry.
protected  java.lang.String endMatrixString
          String which ends matrix definition.
protected  java.lang.String endRowString
          String which ends each row of matrix.
protected  boolean skipLF
          True to ignore linefeed characters when parsing matrix string.
protected  java.lang.String startEntryString
          String which starts a matrix entry.
protected  java.lang.String startMatrixString
          String which starts matrix definition.
protected  java.lang.String startRowString
          String which starts each row of matrix.
 
Constructor Summary
MatrixFromString.MatrixFromStringParser(java.lang.String startMatrixString, java.lang.String endMatrixString, java.lang.String startRowString, java.lang.String endRowString, java.lang.String startEntryString, java.lang.String endEntryString)
          Define a matrix parser.
 
Method Summary
protected static java.lang.String deleteRedundantWhitespace(java.lang.String inputString, boolean skipLF)
          Delete redundant whitespace from a matrix definition string.
protected  java.lang.String discardStartEnd(java.lang.String sourceString, java.lang.String startString, java.lang.String endString)
          Discard matching start and end element brackets.
protected  java.lang.String[] divideIntoRows(java.lang.String sourceString)
          Split string into rows.
protected  Matrix parse(java.lang.String matrixDefinition)
          Parse matrix string.
protected  double[][] parseIndividualEntries(java.lang.String rowString, int row, double[][] values)
          Parse individual double entries from string.
protected  double[][] processRows(java.lang.String[] rows)
          Process row strings.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

startMatrixString

protected java.lang.String startMatrixString
String which starts matrix definition.


endMatrixString

protected java.lang.String endMatrixString
String which ends matrix definition.


startRowString

protected java.lang.String startRowString
String which starts each row of matrix.


endRowString

protected java.lang.String endRowString
String which ends each row of matrix.


startEntryString

protected java.lang.String startEntryString
String which starts a matrix entry.


endEntryString

protected java.lang.String endEntryString
String which ends a matrix entry.


skipLF

protected boolean skipLF
True to ignore linefeed characters when parsing matrix string.

Constructor Detail

MatrixFromString.MatrixFromStringParser

public MatrixFromString.MatrixFromStringParser(java.lang.String startMatrixString,
                                               java.lang.String endMatrixString,
                                               java.lang.String startRowString,
                                               java.lang.String endRowString,
                                               java.lang.String startEntryString,
                                               java.lang.String endEntryString)
Define a matrix parser.

Parameters:
startMatrixString - String which starts matrix definition.
endMatrixString - String which ends matrix definition.
startRowString - String which starts each row of matrix.
endRowString - String which ends each row of matrix.
startEntryString - String which starts each matrix element.
endEntryString - String which ends each matrix element.
Method Detail

parse

protected Matrix parse(java.lang.String matrixDefinition)
Parse matrix string.

Parameters:
matrixDefinition - The matrix definition string to parse.
Returns:
Matrix holding values extracted from matrix definition string.

discardStartEnd

protected java.lang.String discardStartEnd(java.lang.String sourceString,
                                           java.lang.String startString,
                                           java.lang.String endString)
Discard matching start and end element brackets.

Parameters:
sourceString - String from which start/end brackets should be removed.
startString - Starting string to remove.
endString - Ending string to remove.
Returns:
The source string with starting/ending strings removed.

Either or both of the starting/ending strings may be empty.


divideIntoRows

protected java.lang.String[] divideIntoRows(java.lang.String sourceString)
Split string into rows.

Parameters:
sourceString - The string to split into rows.
Returns:
Array of row strings.

The source string is split into rows using the startRowString and/or endRowString values. Both the startRowString and endRowString are removed from each row string.


processRows

protected double[][] processRows(java.lang.String[] rows)
Process row strings.

Parameters:
rows - String array of row strings.
Returns:
Array of entry values as doubles for each row.

parseIndividualEntries

protected double[][] parseIndividualEntries(java.lang.String rowString,
                                            int row,
                                            double[][] values)
Parse individual double entries from string.

Parameters:
rowString - The string containing one row of values.
row - The row number of the row string (0 based).
values - The resulting double values.
Returns:
Double array with parsed double values.

deleteRedundantWhitespace

protected static java.lang.String deleteRedundantWhitespace(java.lang.String inputString,
                                                            boolean skipLF)
Delete redundant whitespace from a matrix definition string.

Parameters:
inputString - The string from which to remove whitespace.
skipLF - true to consider linefeed as whitespace.
Returns:
The string with redundant whitespace removed.