code: public void setValue(CharSequence value, int offset, int len) {
  		checkNotNull(value);
  		if (offset < 0 || len < 0 || offset > value.length() - len) {
  			throw new IndexOutOfBoundsException("offset: " + offset + " len: " + len + " value.len: " + len);
  		}
  
  		ensureSize(len);
  		this.len = len;		
  		for (int i = 0; i < len; i++) {
  			this.value[i] = value.charAt(offset + i);
  		}
  		this.hashCode = 0;
  	}
docs: Sets the value of the StringValue to a substring of the given string.
  
  @param value The new string value.
  @param offset The position to start the substring.
  @param len The length of the substring.