Browse Source

Minor UriComponentsBuilder javadoc revision

pull/555/head
Juergen Hoeller 12 years ago
parent
commit
545c28fd4e
  1. 14
      spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java
  2. 18
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MvcUriComponentsBuilder.java

14
spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2013 the original author or authors. * Copyright 2002-2014 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -253,7 +253,7 @@ public class UriComponentsBuilder {
// build methods // build methods
/** /**
* Builds a {@code UriComponents} instance from the various components contained in this builder. * Build a {@code UriComponents} instance from the various components contained in this builder.
* @return the URI components * @return the URI components
*/ */
public UriComponents build() { public UriComponents build() {
@ -261,7 +261,7 @@ public class UriComponentsBuilder {
} }
/** /**
* Builds a {@code UriComponents} instance from the various components * Build a {@code UriComponents} instance from the various components
* contained in this builder. * contained in this builder.
* @param encoded whether all the components set in this builder are * @param encoded whether all the components set in this builder are
* encoded ({@code true}) or not ({@code false}). * encoded ({@code true}) or not ({@code false}).
@ -278,8 +278,8 @@ public class UriComponentsBuilder {
} }
/** /**
* Builds a {@code UriComponents} instance and replaces URI template variables * Build a {@code UriComponents} instance and replaces URI template variables
* with the values from a map. This is a shortcut method, which combines * with the values from a map. This is a shortcut method which combines
* calls to {@link #build()} and then {@link UriComponents#expand(Map)}. * calls to {@link #build()} and then {@link UriComponents#expand(Map)}.
* @param uriVariables the map of URI variables * @param uriVariables the map of URI variables
* @return the URI components with expanded values * @return the URI components with expanded values
@ -289,8 +289,8 @@ public class UriComponentsBuilder {
} }
/** /**
* Builds a {@code UriComponents} instance and replaces URI template variables * Build a {@code UriComponents} instance and replaces URI template variables
* with the values from an array. This is a shortcut method, which combines * with the values from an array. This is a shortcut method which combines
* calls to {@link #build()} and then {@link UriComponents#expand(Object...)}. * calls to {@link #build()} and then {@link UriComponents#expand(Object...)}.
* @param uriVariableValues URI variable values * @param uriVariableValues URI variable values
* @return the URI components with expanded values * @return the URI components with expanded values

18
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MvcUriComponentsBuilder.java

@ -93,9 +93,8 @@ public class MvcUriComponentsBuilder extends UriComponentsBuilder {
* Create a {@link UriComponentsBuilder} from the mapping of a controller class * Create a {@link UriComponentsBuilder} from the mapping of a controller class
* and current request information including Servlet mapping. If the controller * and current request information including Servlet mapping. If the controller
* contains multiple mappings, only the first one is used. * contains multiple mappings, only the first one is used.
*
* @param controllerType the controller to build a URI for * @param controllerType the controller to build a URI for
* @return a UriComponentsBuilder instance, never {@code null} * @return a UriComponentsBuilder instance (never {@code null})
*/ */
public static UriComponentsBuilder fromController(Class<?> controllerType) { public static UriComponentsBuilder fromController(Class<?> controllerType) {
String mapping = getTypeRequestMapping(controllerType); String mapping = getTypeRequestMapping(controllerType);
@ -120,14 +119,11 @@ public class MvcUriComponentsBuilder extends UriComponentsBuilder {
* Create a {@link UriComponentsBuilder} from the mapping of a controller method * Create a {@link UriComponentsBuilder} from the mapping of a controller method
* and an array of method argument values. This method delegates to * and an array of method argument values. This method delegates to
* {@link #fromMethod(java.lang.reflect.Method, Object...)}. * {@link #fromMethod(java.lang.reflect.Method, Object...)}.
*
* @param controllerType the controller * @param controllerType the controller
* @param methodName the method name * @param methodName the method name
* @param argumentValues the argument values * @param argumentValues the argument values
* @return a UriComponentsBuilder instance, never {@code null} * @return a UriComponentsBuilder instance, never {@code null}
* * @throws IllegalStateException if there is no matching or more than one matching method
* @throws java.lang.IllegalStateException if there is no matching or more than
* one matching method.
*/ */
public static UriComponentsBuilder fromMethodName(Class<?> controllerType, String methodName, Object... argumentValues) { public static UriComponentsBuilder fromMethodName(Class<?> controllerType, String methodName, Object... argumentValues) {
Method method = getMethod(controllerType, methodName, argumentValues); Method method = getMethod(controllerType, methodName, argumentValues);
@ -156,8 +152,7 @@ public class MvcUriComponentsBuilder extends UriComponentsBuilder {
* Create a {@link UriComponentsBuilder} by invoking a "mock" controller method. * Create a {@link UriComponentsBuilder} by invoking a "mock" controller method.
* The controller method and the supplied argument values are then used to * The controller method and the supplied argument values are then used to
* delegate to {@link #fromMethod(java.lang.reflect.Method, Object...)}. * delegate to {@link #fromMethod(java.lang.reflect.Method, Object...)}.
* <p> * <p>For example, given this controller:
* For example given this controller:
* <pre class="code"> * <pre class="code">
* &#064;RequestMapping("/people/{id}/addresses") * &#064;RequestMapping("/people/{id}/addresses")
* class AddressController { * class AddressController {
@ -184,7 +179,6 @@ public class MvcUriComponentsBuilder extends UriComponentsBuilder {
* controller.getAddressesForCountry("US") * controller.getAddressesForCountry("US")
* builder = MvcUriComponentsBuilder.fromMethodCall(controller); * builder = MvcUriComponentsBuilder.fromMethodCall(controller);
* </pre> * </pre>
*
* @param invocationInfo either the value returned from a "mock" controller * @param invocationInfo either the value returned from a "mock" controller
* invocation or the "mock" controller itself after an invocation * invocation or the "mock" controller itself after an invocation
* @return a UriComponents instance * @return a UriComponents instance
@ -202,20 +196,17 @@ public class MvcUriComponentsBuilder extends UriComponentsBuilder {
* {@code @PathVariable} are used for building the URI (via implementations of * {@code @PathVariable} are used for building the URI (via implementations of
* {@link org.springframework.web.method.support.UriComponentsContributor}) * {@link org.springframework.web.method.support.UriComponentsContributor})
* while remaining argument values are ignored and can be {@code null}. * while remaining argument values are ignored and can be {@code null}.
*
* @param method the controller method * @param method the controller method
* @param argumentValues argument values for the controller method * @param argumentValues argument values for the controller method
* @return a UriComponentsBuilder instance, never {@code null} * @return a UriComponentsBuilder instance, never {@code null}
*/ */
public static UriComponentsBuilder fromMethod(Method method, Object... argumentValues) { public static UriComponentsBuilder fromMethod(Method method, Object... argumentValues) {
String typePath = getTypeRequestMapping(method.getDeclaringClass()); String typePath = getTypeRequestMapping(method.getDeclaringClass());
String methodPath = getMethodRequestMapping(method); String methodPath = getMethodRequestMapping(method);
String path = pathMatcher.combine(typePath, methodPath); String path = pathMatcher.combine(typePath, methodPath);
UriComponentsBuilder builder = ServletUriComponentsBuilder.fromCurrentServletMapping().path(path); UriComponentsBuilder builder = ServletUriComponentsBuilder.fromCurrentServletMapping().path(path);
UriComponents uriComponents = applyContributors(builder, method, argumentValues); UriComponents uriComponents = applyContributors(builder, method, argumentValues);
return ServletUriComponentsBuilder.newInstance().uriComponents(uriComponents); return ServletUriComponentsBuilder.newInstance().uriComponents(uriComponents);
} }
@ -246,14 +237,13 @@ public class MvcUriComponentsBuilder extends UriComponentsBuilder {
" does not match number of argument values " + argCount); " does not match number of argument values " + argCount);
final Map<String, Object> uriVars = new HashMap<String, Object>(); final Map<String, Object> uriVars = new HashMap<String, Object>();
for (int i=0; i < paramCount; i++) { for (int i = 0; i < paramCount; i++) {
MethodParameter param = new MethodParameter(method, i); MethodParameter param = new MethodParameter(method, i);
param.initParameterNameDiscovery(parameterNameDiscoverer); param.initParameterNameDiscovery(parameterNameDiscoverer);
contributor.contributeMethodArgument(param, args[i], builder, uriVars); contributor.contributeMethodArgument(param, args[i], builder, uriVars);
} }
// We may not have all URI var values, expand only what we have // We may not have all URI var values, expand only what we have
return builder.build().expand(new UriComponents.UriTemplateVariables() { return builder.build().expand(new UriComponents.UriTemplateVariables() {
@Override @Override
public Object getValue(String name) { public Object getValue(String name) {

Loading…
Cancel
Save