Create a new {@code WebTarget} instance by resolving one or more URI templatesin the URI of the current target instance using supplied name-encoded value pairs. All templates with their name matching one of the keys in the supplied map will be replaced by the value in the supplied map. Values are converted to {@code String} usingtheir {@code toString()} method and are then encoded to match therules of the URI component to which they pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded. A call to the method with an empty parameter map is ignored, i.e. same {@code WebTarget}instance is returned.
A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.
@param templateValues a map of URI template names and their encoded values.
@return a new target instance or the same target instance in case the input name-value mapis empty.
@throws NullPointerException if the name-value map or any of the names or encoded values in the mapis {@code null}.