public void replaceAll(int index, int len, IList<? extends E> list) {
    	// Check arguments
    	if (index == -1) {
    		index = size();
    	} else {
    		checkIndexAdd(index);
    	}
    	if (len == -1) {
    		len = size()-index;
    		if (list != null) {
    			if (list.size() < len) {
    				len = list.size();
    			}
    		}
    	} else {
    		checkRange(index, len);
    	}

    	// Call worker method
    	doReplaceAll(index, len, list);
    }
Replaces the specified range with new elements.
This method is very powerful as it offers the functionality of many other methods
which are therefore only offered for convenience: <br/>
- addAll(index, list) -> replaceAll(index, 0, list) <br/>
- setAll(index, list) -> replaceAll(index, list.size(), list) <br/>
- putAll(index, list) -> replaceAll(index, -1, list) <br/>
- initAll(list)       -> replaceAll(0, this.size(), list) <br/>
- remove(index, list) -> replaceAll(index, list.size(), null) <br/>

@param index index of first element to replace, use -1 for the position after the last element (this.size())
@param len	number of elements to replace, use -1 for getting behavior of putAll()
@param list  list with elements which replace the old elements, use null if elements should only be removed
@throws 		IndexOutOfBoundsException if the range is invalid
jphp-runtime/src/php/runtime/memory/support/IList.java