code: @Override
  	public IPAddressString toAddressString() {
  		if(fromString == null) {
  			IPAddressStringParameters params = createFromStringParams();
  			fromString = new IPAddressString(this, params); /* address string creation */
  		}
  		return getAddressfromString();
  	}
docs: Generates an IPAddressString object for this IPAddress object.
  <p>
  This same IPAddress object can be retrieved from the resulting IPAddressString object using {@link IPAddressString#getAddress()}
  <p>
  In general, users are intended to create IPAddress objects from IPAddressString objects,
  while the reverse direction is generally not all that useful.
  <p>
  However, the reverse direction can be useful under certain circumstances.
  <p>
  Not all IPAddressString objects can be converted to IPAddress objects,
  as is the case with IPAddressString objects corresponding to the types IPType.INVALID and IPType.EMPTY.
  <p>
  Not all IPAddressString objects can be converted to IPAddress objects without specifying the IP version,
  as is the case with IPAddressString objects corresponding to the types IPType.PREFIX and  IPType.ALL.
  <p>
  So in the event you wish to store a collection of IPAddress objects with a collection of IPAddressString objects,
  and not all the IPAddressString objects can be converted to IPAddress objects, then you may wish to use a collection
  of only IPAddressString objects, in which case this method is useful.
  
  @return an IPAddressString object for this IPAddress.