code: function(oColumn, iNewIndex) {
  			var oTable = oColumn.getParent();
  
  			if (!oTable || iNewIndex === undefined || !TableColumnUtils.isColumnMovable(oColumn)) {
  				// Column is not movable at all
  				return false;
  			}
  
  			iNewIndex = TableColumnUtils.normalizeColumnMoveTargetIndex(oColumn, iNewIndex);
  
  			if (iNewIndex < oTable.getComputedFixedColumnCount() || iNewIndex < oTable._iFirstReorderableIndex) {
  				// No movement of fixed columns or e.g. the first column in the TreeTable
  				return false;
  			}
  
  			var iCurrentIndex = oTable.indexOfColumn(oColumn),
  				aColumns = oTable.getColumns();
  
  			if (iNewIndex > iCurrentIndex) { // Column moved to higher index
  				// The column to be moved will appear after this column.
  				var oBeforeColumn = aColumns[iNewIndex >= aColumns.length ? aColumns.length - 1 : iNewIndex];
  				var oTargetBoundaries = TableColumnUtils.getColumnBoundaries(oTable, oBeforeColumn.getId());
  				if (TableColumnUtils.hasHeaderSpan(oBeforeColumn) || oTargetBoundaries.endIndex > iNewIndex) {
  					return false;
  				}
  			} else {
  				var oAfterColumn = aColumns[iNewIndex]; // The column to be moved will appear before this column.
  				if (TableColumnUtils.getParentSpannedColumns(oTable, oAfterColumn.getId()).length != 0) {
  					// If column which is currently at the desired target position is spanned by previous columns
  					// also the column to reorder would be spanned after the move.
  					return false;
  				}
  			}
  
  			return true;
  		}
docs: Returns true if the column can be moved to the desired position.
  
  Note: The index must be given for the current table setup (which includes the column itself).
  
  @param {sap.ui.table.Column} oColumn Column of the table.
  @param {int} iNewIndex the desired new index of the column in the current table setup.
  @returns {boolean} Whether the column can be moved to the desired position.