public void drag(int srcIndex, int dstIndex, int len) {
    	checkRange(srcIndex, len);
    	checkRange(dstIndex, len);

    	if (srcIndex < dstIndex) {
    		doRotate(srcIndex, len+(dstIndex-srcIndex), dstIndex-srcIndex);
    	} else if (srcIndex > dstIndex) {
    		doRotate(dstIndex, len+(srcIndex-dstIndex), dstIndex-srcIndex);
    	}
    }
Drag specified elements.
Source and destination ranges may overlap.
The size of the list does not change and it contains the same elements as before, but in changed order.

@param srcIndex	index of first source element to move
@param dstIndex	index of first destination element to move
@param len		number of elements to move
@throws 			IndexOutOfBoundsException if the ranges are invalid
jphp-runtime/src/php/runtime/memory/support/IList.java