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;
	}
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" ) ; } 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
@return