/** * Expands the template using given parameters * * @param parameters * for expansion in the order of appearance in the template, must not be empty * @return expanded template */ public PartialUriTemplateComponents expand(Object... parameters) { List<String> variableNames = getVariableNames(); Map<String, Object> parameterMap = new LinkedHashMap<String, Object>(); int i = 0; for (String variableName : variableNames) { if (i < parameters.length) { parameterMap.put(variableName, parameters[i++]); } else { break; } } return getUriTemplateComponents(parameterMap, Collections.<String>emptyList()); }
/** * Expands the template using given parameters * * @param parameters * for expansion in the order of appearance in the template, must not be empty * @return expanded template */ public PartialUriTemplateComponents expand(Object... parameters) { List<String> variableNames = getVariableNames(); Map<String, Object> parameterMap = new LinkedHashMap<String, Object>(); int i = 0; for (String variableName : variableNames) { if (i < parameters.length) { parameterMap.put(variableName, parameters[i++]); } else { break; } } return getUriTemplateComponents(parameterMap, Collections.<String>emptyList()); }
@Override public AffordanceBuilder linkTo(Class<?> controller, Object... parameters) { Assert.notNull(controller); String mapping = MAPPING_DISCOVERER.getMapping(controller); PartialUriTemplate partialUriTemplate = new PartialUriTemplate(mapping == null ? "/" : mapping); Map<String, Object> values = new HashMap<String, Object>(); Iterator<String> names = partialUriTemplate.getVariableNames() .iterator(); // there may be more or less mapping variables than arguments for (Object parameter : parameters) { if (!names.hasNext()) { break; } values.put(names.next(), parameter); } return new AffordanceBuilder().slash(partialUriTemplate.expand(values)); }
@Override public AffordanceBuilder linkTo(Class<?> controller, Object... parameters) { Assert.notNull(controller); String mapping = MAPPING_DISCOVERER.getMapping(controller); PartialUriTemplate partialUriTemplate = new PartialUriTemplate(mapping == null ? "/" : mapping); Map<String, Object> values = new HashMap<String, Object>(); Iterator<String> names = partialUriTemplate.getVariableNames() .iterator(); // there may be more or less mapping variables than arguments for (Object parameter : parameters) { if (!names.hasNext()) { break; } values.put(names.next(), parameter); } return new AffordanceBuilder().slash(partialUriTemplate.expand(values)); }
Iterator<String> variableNames = partialUriTemplate.getVariableNames() .iterator();
Iterator<String> variableNames = partialUriTemplate.getVariableNames() .iterator();
Iterator<String> variableNames = partialUriTemplate.getVariableNames() .iterator(); while (classMappingParameters.hasNext()) {
Iterator<String> variableNames = partialUriTemplate.getVariableNames() .iterator(); while (classMappingParameters.hasNext()) {
@Test public void testToStringWithQueryVariablesContainingDot() throws Exception { PartialUriTemplate partialUriTemplateComponents = new PartialUriTemplate ("http://localhost/events/query{?foo1,foo2,bar.baz,bars.empty,offset,size,strings.empty}"); assertThat(partialUriTemplateComponents.getVariableNames(), contains("foo1", "foo2", "bar.baz", "bars.empty", "offset", "size", "strings.empty")); }