code: function(oColumn, iNewIndex) {
  			if (!TableColumnUtils.isColumnMovableTo(oColumn, iNewIndex)) {
  				return false;
  			}
  
  			var oTable = oColumn.getParent(),
  				iCurrentIndex = oTable.indexOfColumn(oColumn);
  
  			if (iNewIndex === iCurrentIndex) {
  				return false;
  			}
  
  			iNewIndex = TableColumnUtils.normalizeColumnMoveTargetIndex(oColumn, iNewIndex);
  
  			var bExecuteDefault = oTable.fireColumnMove({
  				column: oColumn,
  				newPos: iNewIndex
  			});
  
  			if (!bExecuteDefault) {
  				// No execution of the movement when event default is prevented
  				return false;
  			}
  
  			oTable._bReorderInProcess = true;
  
  			/* The AnalyticalBinding does not support calls like:
  			 * oBinding.updateAnalyticalInfo(...);
  			 * oBinding.getContexts(...);
  			 * oBinding.updateAnalyticalInfo(...);
  			 * oBinding.getContexts(...);
  			 * A call chain like above can lead to some problems:
  			 * - A request according to the analytical info passed in line 1 would be sent, but not for the info in line 3.
  			 * - After the change event (updateRows) the binding returns an incorrect length of 0.
  			 * The solution is to only trigger a request at the end of a process.
  			 */
  			oTable.removeColumn(oColumn, true);
  			oTable.insertColumn(oColumn, iNewIndex);
  
  			oTable._bReorderInProcess = false;
  
  			return true;
  		}
docs: Moves the column 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 {sap.ui.table.Column} iNewIndex the desired new index of the column in the current table setup.
  @returns {boolean} Whether the column was moved to the desired position.