@Override public String apply(final String uri) { return join(context, uri); } }
public String remoteUrl(final String uri) { String relative = nullToEmpty(uri.replaceFirst(this.localBase, "")); return join(remoteBase, relative); }
private String subResourceUri(final RestIdMatcher resourceName) { return join(resourceRoot(resourceName.resourceUri()), this.uriPart); } }
@Override public Optional<ResponseHandler> getMatched(final RestIdMatcher resourceName, final HttpRequest httpRequest) { for (RestSetting setting : settings) { RestIdMatcher idMatcher = RestIdMatchers.match(join(resourceName.resourceUri(), this.id.resourceUri(), this.name)); Optional<ResponseHandler> responseHandler = setting.getMatched(idMatcher, httpRequest); if (responseHandler.isPresent()) { return responseHandler; } } return Optional.absent(); } }
@Test public void should_join_path() { assertThat(URLs.join("base", "path"), is("base/path")); assertThat(URLs.join("base/", "path"), is("base/path")); assertThat(URLs.join("base", ""), is("base")); assertThat(URLs.join("base", "/path"), is("base/path")); assertThat(URLs.join("base/", "/path"), is("base/path")); assertThat(URLs.join("base", "path", "sub"), is("base/path/sub")); }
public static RequestMatcher context(final String context) { return or(by(uri(context)), match(uri(URLs.join(context, ".*")))); }
public RestRequestDispatcher(final String name, final Iterable<RestSetting> settings) { this.name = eq(name); this.getAllSettings = filterSettings(settings, RestAllSetting.class, HttpMethod.GET); this.getSingleSettings = filterSettings(settings, RestSingleSetting.class, HttpMethod.GET); this.postSettings = filterSettings(settings, RestAllSetting.class, HttpMethod.POST); this.putSettings = filterSettings(settings, RestSingleSetting.class, HttpMethod.PUT); this.deleteSettings = filterSettings(settings, RestSingleSetting.class, HttpMethod.DELETE); this.headSettings = filterSettings(settings, RestSingleSetting.class, HttpMethod.HEAD); this.headAllSettings = filterSettings(settings, RestAllSetting.class, HttpMethod.HEAD); this.patchSettings = filterSettings(settings, RestSingleSetting.class, HttpMethod.PATCH); this.subResourceSettings = filter(settings, SubResourceSetting.class); this.allMatcher = by(uri(resourceRoot(name))); this.singleMatcher = Moco.match(uri(join(resourceRoot(name), "[^/]*"))); }