question: protected String [ ] [ ] toArray ( ) { int i ; int n ; int ii ; int nn ; int x ; int y ; String [ ] [ ] result ; String [ ] [ ] tmpResult ; int cols ; int rows ; boolean valueExists ; rows = getVisibleRowCount ( ) ; if ( getShowAverage ( ) ) { rows ++ ; } cols = getVisibleColCount ( ) ; if ( getShowStdDev ( ) ) { cols = cols * 3 ; } else { cols = cols * 2 ; } result = new String [ rows + 2 ] [ cols + 1 ] ; result [ 0 ] [ 0 ] = trimString ( "Dataset" , getRowNameWidth ( ) ) ; x = 1 ; for ( ii = 0 ; ii < getColCount ( ) ; ii ++ ) { i = getDisplayCol ( ii ) ; if ( getColHidden ( i ) ) { continue ; } result [ 0 ] [ x ] = trimString ( removeFilterName ( getColName ( i ) ) , getColNameWidth ( ) ) ; x ++ ; if ( getShowStdDev ( ) ) { result [ 0 ] [ x ] = "" ; x ++ ; } result [ 0 ] [ x ] = "" ; x ++ ; } y = 1 ; for ( ii = 0 ; ii < getRowCount ( ) ; ii ++ ) { i = getDisplayRow ( ii ) ; if ( ! getRowHidden ( i ) ) { result [ y ] [ 0 ] = trimString ( removeFilterName ( getRowName ( i ) ) , getRowNameWidth ( ) ) ; y ++ ; } } y = 1 ; for ( ii = 0 ; ii < getRowCount ( ) ; ii ++ ) { i = getDisplayRow ( ii ) ; if ( getRowHidden ( i ) ) { continue ; } x = 1 ; for ( nn = 0 ; nn < getColCount ( ) ; nn ++ ) { n = getDisplayCol ( nn ) ; if ( getColHidden ( n ) ) { continue ; } valueExists = ( ! Double . isNaN ( getMean ( n , i ) ) ) ; if ( ! valueExists ) { result [ y ] [ x ] = "" ; } else { result [ y ] [ x ] = doubleToString ( getMean ( n , i ) , getMeanPrec ( ) ) ; } x ++ ; if ( getShowStdDev ( ) ) { if ( ! valueExists ) { result [ y ] [ x ] = "" ; } else if ( Double . isInfinite ( getStdDev ( n , i ) ) ) { result [ y ] [ x ] = "Inf" ; } else { result [ y ] [ x ] = doubleToString ( getStdDev ( n , i ) , getStdDevPrec ( ) ) ; } x ++ ; } if ( ! valueExists ) { result [ y ] [ x ] = "" ; } else { switch ( getSignificance ( n , i ) ) { case SIGNIFICANCE_TIE : result [ y ] [ x ] = TIE_STRING ; break ; case SIGNIFICANCE_WIN : result [ y ] [ x ] = WIN_STRING ; break ; case SIGNIFICANCE_LOSS : result [ y ] [ x ] = LOSS_STRING ; break ; } } x ++ ; } y ++ ; } if ( getShowAverage ( ) ) { y = result . length - 2 ; x = 0 ; result [ y ] [ 0 ] = "Average" ; x ++ ; for ( ii = 0 ; ii < getColCount ( ) ; ii ++ ) { i = getDisplayCol ( ii ) ; if ( getColHidden ( i ) ) { continue ; } result [ y ] [ x ] = doubleToString ( getAverage ( i ) , getMeanPrec ( ) ) ; x ++ ; if ( getShowStdDev ( ) ) { result [ y ] [ x ] = "" ; x ++ ; } result [ y ] [ x ] = "" ; x ++ ; } } y = result . length - 1 ; x = 0 ; result [ y ] [ 0 ] = LEFT_PARENTHESES + WIN_STRING + "/" + TIE_STRING + "/" + LOSS_STRING + RIGHT_PARENTHESES ; x ++ ; for ( ii = 0 ; ii < getColCount ( ) ; ii ++ ) { i = getDisplayCol ( ii ) ; if ( getColHidden ( i ) ) { continue ; } result [ y ] [ x ] = "" ; x ++ ; if ( getShowStdDev ( ) ) { result [ y ] [ x ] = "" ; x ++ ; } result [ y ] [ x ] = LEFT_PARENTHESES + getSignificanceCount ( i , SIGNIFICANCE_WIN ) + "/" + getSignificanceCount ( i , SIGNIFICANCE_TIE ) + "/" + getSignificanceCount ( i , SIGNIFICANCE_LOSS ) + RIGHT_PARENTHESES ; x ++ ; } tmpResult = new String [ result . length ] [ result [ 0 ] . length - 1 ] ; x = 0 ; for ( i = 0 ; i < result [ 0 ] . length ; i ++ ) { if ( ( ( i == 3 ) && ( getShowStdDev ( ) ) ) || ( ( i == 2 ) && ( ! getShowStdDev ( ) ) ) ) { continue ; } for ( n = 0 ; n < result . length ; n ++ ) { tmpResult [ n ] [ x ] = result [ n ] [ i ] ; } x ++ ; } result = tmpResult ; return result ; }
target:  returns a 2-dimensional array with the prepared data. includes the column and row names. hidden cols/rows are already excluded. <br> first row: column names<br> last row: wins/ties/losses<br> first col: row names<br>