diff --git a/spring-web/src/main/java/org/springframework/web/util/UriComponents.java b/spring-web/src/main/java/org/springframework/web/util/UriComponents.java index 704ce965b92..58cf5a7601a 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UriComponents.java +++ b/spring-web/src/main/java/org/springframework/web/util/UriComponents.java @@ -161,6 +161,17 @@ public abstract class UriComponents implements Serializable { return expandInternal(new VarArgsTemplateVariables(uriVariableValues)); } + /** + * Replaces all URI template variables with the values obtained through the + * given {@link UriTemplateVariables} instance. + * @param uriTemplateVars resolves URI template variable values + * @return the expanded uri components + */ + public final UriComponents expand(UriTemplateVariables uriTemplateVars) { + Assert.notNull(uriTemplateVars, "'uriTemplateVars' must not be null"); + return expandInternal(uriTemplateVars); + } + /** * Replaces all URI template variables with the values from the given {@link * UriTemplateVariables} @@ -228,7 +239,7 @@ public abstract class UriComponents implements Serializable { * Defines the contract for URI Template variables * @see HierarchicalUriComponents#expand */ - interface UriTemplateVariables { + public interface UriTemplateVariables { Object getValue(String name); }