define( function() { "use strict"; var DataStoreUtils = {}; DataStoreUtils.extractData = function( oDataStore ) { var aColumns = []; var iColumnCount = oDataStore.columnCount; for ( var iCol = 0; iCol < iColumnCount; iCol++ ) { aColumns[iCol] = { name : oDataStore.columnNames[iCol], dataType : oDataStore.dataTypes[iCol], values : oDataStore.columnFormattedValues[iCol] || oDataStore.columnValues[iCol], }; } var aRows = []; var iRowCount = oDataStore.rowCount; for ( var iRow = 0; iRow < iRowCount; iRow++ ) { var aRow = []; for ( var iCol = 0; iCol < iColumnCount; iCol++ ) { aRow.push( oDataStore.getCell( iRow, iCol ).valueIndex ); } aRows.push( aRow ); } return { columns : aColumns, rows : aRows }; }; DataStoreUtils.filterByColumnValueIndex = function( oJson, iColumnIndex, iValueIndex ) { var aRows = []; for ( var iRow = 0; iRow < oJson.rows.length; iRow++ ) { var aRow = oJson.rows[iRow]; if ( aRow[iColumnIndex] == iValueIndex ) { aRows.push( aRow ); break; } } return { columns : oJson.columns, rows : aRows }; }; DataStoreUtils.filterByColumnValueIndexes = function( oJson, iColumnIndex, oValueIndexes ) { return { columns : oJson.columns, rows : oJson.rows.filter( function( aRow ) { return oValueIndexes.has( aRow[iColumnIndex] ) } ) }; }; DataStoreUtils.filterToUniqueRows = function( oJson, iColumnIndex ) { var oValueIndexes = new Set(); return { columns : oJson.columns, rows : oJson.rows.filter( function( aRow ) { if ( oValueIndexes.has( aRow[iColumnIndex] ) ) { return false; } oValueIndexes.add( aRow[iColumnIndex] ); return true; } ) }; }; return DataStoreUtils; });