/** * Wraps the filter in FilterImpl * * @param path the path * @param acceptType the accept type * @param filter the filter * @return the wrapped route */ static FilterImpl create(final String path, String acceptType, final Filter filter) { if (acceptType == null) { acceptType = DEFAULT_ACCEPT_TYPE; } return new FilterImpl(path, acceptType, filter) { @Override public void handle(Request request, Response response) throws Exception { filter.handle(request, response); } }; }
/** * Wraps the filter in FilterImpl * * @param path the path * @param filter the filter * @return the wrapped route */ static FilterImpl create(final String path, final Filter filter) { return create(path, DEFAULT_ACCEPT_TYPE, filter); }
/** * Add a filter * * @param httpMethod the http-method of the route * @param filter the filter to add */ public void add(HttpMethod httpMethod, FilterImpl filter) { add(httpMethod, filter.getPath() , filter.getAcceptType(), filter); }
static void execute(RouteContext context) throws Exception { Object content = context.body().get(); List<RouteMatch> matchSet = context.routeMatcher().findMultiple(HttpMethod.before, context.uri(), context.acceptType()); for (RouteMatch filterMatch : matchSet) { Object filterTarget = filterMatch.getTarget(); if (filterTarget instanceof FilterImpl) { Request request = RequestResponseFactory.create(filterMatch, context.httpRequest()); FilterImpl filter = (FilterImpl) filterTarget; context.requestWrapper().setDelegate(request); context.responseWrapper().setDelegate(context.response()); filter.handle(context.requestWrapper(), context.responseWrapper()); String bodyAfterFilter = context.response().body(); if (bodyAfterFilter != null) { content = bodyAfterFilter; } } } context.body().set(content); }
@Override public void addFilter(HttpMethod httpMethod, FilterImpl filter) { init(); routes.add(httpMethod, filter.withPrefix(getPaths())); }
static void execute(RouteContext context) throws Exception { Object content = context.body().get(); List<RouteMatch> matchSet = context.routeMatcher().findMultiple(HttpMethod.after, context.uri(), context.acceptType()); for (RouteMatch filterMatch : matchSet) { Object filterTarget = filterMatch.getTarget(); if (filterTarget instanceof FilterImpl) { if (context.requestWrapper().getDelegate() == null) { Request request = RequestResponseFactory.create(filterMatch, context.httpRequest()); context.requestWrapper().setDelegate(request); } else { context.requestWrapper().changeMatch(filterMatch); } context.responseWrapper().setDelegate(context.response()); FilterImpl filter = (FilterImpl) filterTarget; filter.handle(context.requestWrapper(), context.responseWrapper()); String bodyAfterFilter = context.response().body(); if (bodyAfterFilter != null) { content = bodyAfterFilter; } } } context.body().set(content); }
@Override public void addFilter(HttpMethod httpMethod, FilterImpl filter) { init(); routes.add(httpMethod, filter.withPrefix(getPaths())); }
/** * Maps a filter to be executed before any matching routes * * @param path the path * @param acceptType the accept type * @param filter The filter */ public void before(String path, String acceptType, Filter filter) { addFilter(HttpMethod.before, FilterImpl.create(path, acceptType, filter)); }
@Override @Deprecated public void addFilter(String httpMethod, FilterImpl filter) { init(); routes.add(httpMethod + " '" + getPaths() + filter.getPath() + "'", filter.getAcceptType(), filter); }
static void execute(RouteContext context) throws Exception { Object content = context.body().get(); List<RouteMatch> matchSet = context.routeMatcher().findMultiple(HttpMethod.afterafter, context.uri(), context.acceptType()); for (RouteMatch filterMatch : matchSet) { Object filterTarget = filterMatch.getTarget(); if (filterTarget instanceof FilterImpl) { if (context.requestWrapper().getDelegate() == null) { Request request = RequestResponseFactory.create(filterMatch, context.httpRequest()); context.requestWrapper().setDelegate(request); } else { context.requestWrapper().changeMatch(filterMatch); } context.responseWrapper().setDelegate(context.response()); FilterImpl filter = (FilterImpl) filterTarget; filter.handle(context.requestWrapper(), context.responseWrapper()); String bodyAfterFilter = context.response().body(); if (bodyAfterFilter != null) { content = bodyAfterFilter; } } } context.body().set(content); }
/** * Wraps the filter in FilterImpl * * @param path the path * @param acceptType the accept type * @param filter the filter * @return the wrapped route */ static FilterImpl create(final String path, String acceptType, final Filter filter) { if (acceptType == null) { acceptType = DEFAULT_ACCEPT_TYPE; } return new FilterImpl(path, acceptType, filter) { @Override public void handle(Request request, Response response) throws Exception { filter.handle(request, response); } }; }
/** * Maps a filter to be executed after any matching routes * * @param path the path * @param filter The filter */ public void after(String path, Filter filter) { addFilter(HttpMethod.after, FilterImpl.create(path, filter)); }
/** * Add a filter * * @param httpMethod the http-method of the route * @param filter the filter to add */ public void add(HttpMethod httpMethod, FilterImpl filter) { add(httpMethod, filter.getPath() , filter.getAcceptType(), filter); }
static void execute(RouteContext context) throws Exception { Object content = context.body().get(); List<RouteMatch> matchSet = context.routeMatcher().findMultiple(HttpMethod.before, context.uri(), context.acceptType()); for (RouteMatch filterMatch : matchSet) { Object filterTarget = filterMatch.getTarget(); if (filterTarget instanceof FilterImpl) { Request request = RequestResponseFactory.create(filterMatch, context.httpRequest()); FilterImpl filter = (FilterImpl) filterTarget; context.requestWrapper().setDelegate(request); context.responseWrapper().setDelegate(context.response()); filter.handle(context.requestWrapper(), context.responseWrapper()); String bodyAfterFilter = context.response().body(); if (bodyAfterFilter != null) { content = bodyAfterFilter; } } } context.body().set(content); }
/** * Maps a filter to be executed before any matching routes * * @param filter The filter */ public void before(Filter filter) { addFilter(HttpMethod.before, FilterImpl.create(SparkUtils.ALL_PATHS, filter)); }
@Override @Deprecated public void addFilter(String httpMethod, FilterImpl filter) { init(); routes.add(httpMethod + " '" + getPaths() + filter.getPath() + "'", filter.getAcceptType(), filter); }
static void execute(RouteContext context) throws Exception { Object content = context.body().get(); List<RouteMatch> matchSet = context.routeMatcher().findMultiple(HttpMethod.after, context.uri(), context.acceptType()); for (RouteMatch filterMatch : matchSet) { Object filterTarget = filterMatch.getTarget(); if (filterTarget instanceof FilterImpl) { if (context.requestWrapper().getDelegate() == null) { Request request = RequestResponseFactory.create(filterMatch, context.httpRequest()); context.requestWrapper().setDelegate(request); } else { context.requestWrapper().changeMatch(filterMatch); } context.responseWrapper().setDelegate(context.response()); FilterImpl filter = (FilterImpl) filterTarget; filter.handle(context.requestWrapper(), context.responseWrapper()); String bodyAfterFilter = context.response().body(); if (bodyAfterFilter != null) { content = bodyAfterFilter; } } } context.body().set(content); }
/** * Maps a filter to be executed after any matching routes * * @param filter The filter */ public void after(Filter filter) { addFilter(HttpMethod.after, FilterImpl.create(SparkUtils.ALL_PATHS, filter)); }
static void execute(RouteContext context) throws Exception { Object content = context.body().get(); List<RouteMatch> matchSet = context.routeMatcher().findMultiple(HttpMethod.afterafter, context.uri(), context.acceptType()); for (RouteMatch filterMatch : matchSet) { Object filterTarget = filterMatch.getTarget(); if (filterTarget instanceof FilterImpl) { if (context.requestWrapper().getDelegate() == null) { Request request = RequestResponseFactory.create(filterMatch, context.httpRequest()); context.requestWrapper().setDelegate(request); } else { context.requestWrapper().changeMatch(filterMatch); } context.responseWrapper().setDelegate(context.response()); FilterImpl filter = (FilterImpl) filterTarget; filter.handle(context.requestWrapper(), context.responseWrapper()); String bodyAfterFilter = context.response().body(); if (bodyAfterFilter != null) { content = bodyAfterFilter; } } } context.body().set(content); }
/** * Maps a filter to be executed after any matching routes even if the route throws any exception * * @param filter The filter */ public void afterAfter(String path, Filter filter) { addFilter(HttpMethod.afterafter, FilterImpl.create(path, filter)); }