public DJCrosstab build ( ) { if ( crosstab . getMeasures ( ) . isEmpty ( ) ) { throw new LayoutException ( "Crosstabs must have at least one measure" ) ; } if ( crosstab . getColumns ( ) . isEmpty ( ) ) { throw new LayoutException ( "Crosstabs must have at least one column" ) ; } if ( crosstab . getRows ( ) . isEmpty ( ) ) { throw new LayoutException ( "Crosstabs must have at least one row" ) ; } //Ensure default dimension values for ( DJCrosstabColumn col : crosstab . getColumns ( ) ) { if ( col . getWidth ( ) == - 1 && cellWidth != - 1 ) col . setWidth ( cellWidth ) ; if ( col . getWidth ( ) == - 1 ) col . setWidth ( DEFAULT_CELL_WIDTH ) ; if ( col . getHeaderHeight ( ) == - 1 && columnHeaderHeight != - 1 ) col . setHeaderHeight ( columnHeaderHeight ) ; if ( col . getHeaderHeight ( ) == - 1 ) col . setHeaderHeight ( DEFAULT_COLUMN_HEADER_HEIGHT ) ; } for ( DJCrosstabRow row : crosstab . getRows ( ) ) { if ( row . getHeight ( ) == - 1 && cellHeight != - 1 ) row . setHeight ( cellHeight ) ; if ( row . getHeight ( ) == - 1 ) row . setHeight ( DEFAULT_CELL_HEIGHT ) ; if ( row . getHeaderWidth ( ) == - 1 && rowHeaderWidth != - 1 ) row . setHeaderWidth ( rowHeaderWidth ) ; if ( row . getHeaderWidth ( ) == - 1 ) row . setHeaderWidth ( DEFAULT_ROW_HEADER_WIDTH ) ; } return crosstab ; }
Build the crosstab . Throws LayoutException if anything is wrong