/** * Creates a {@link Selector} based on a URI template. * * @param uriTemplate The URI template to compile. * * @return The new {@link Selector}. * * @see UriPathTemplate */ public static Selector uriPathSelector(String uriTemplate) { return new UriPathSelector(uriTemplate); }
@Override @SuppressWarnings("unchecked") public Function<Object, Map<String, Object>> getHeaderResolver() { return uriPathSelector != null ? uriPathSelector.getHeaderResolver() : null; }
@Override public Object getObject() { return uriPathSelector != null ? uriPathSelector.getObject() : null; }
@Override public boolean matches(HttpChannel key) { return test(key) && (uriPathSelector == null || uriPathSelector.matches(key.uri())); } }
@Override public boolean matches(HttpChannel key) { return (protocol == null || protocol.equals(key.protocol())) && (method == null || method.equals(key.method()) ) && (uriPathSelector == null || uriPathSelector.matches(key.uri())); } }
public HttpSelector(String uri, Protocol protocol, Method method) { this.protocol = protocol; this.method = method; this.uriPathSelector = uri != null && !uri.isEmpty() ? new UriPathSelector(uri) : null; }
@Nullable @Override public Map<String, Object> resolve(Object key) { Map<String, Object> headers = getObject().match(key.toString()); if (null != headers && !headers.isEmpty()) { return headers; } return null; } };
@Override public HeaderResolver getHeaderResolver() { return uriPathSelector != null ? uriPathSelector.getHeaderResolver() : null; }
public HttpSelector(String uri, HttpVersion protocol, HttpMethod method) { super(null, protocol, method); this.uriPathSelector = uri != null && !uri.isEmpty() ? new UriPathSelector(uri) : null; }
@Override public boolean matches(Object path) { return String.class.isAssignableFrom(path.getClass()) && getObject().matches((String)path); }
/** * Creates a {@link Selector} based on a URI template. * * @param uri * The string to compile into a URI template and use for matching * * @return The new {@link UriPathSelector}. * * @see UriPathTemplate * @see UriPathSelector */ public static Selector uri(String uri) { if(null == uri) { return null; } switch(uri.charAt(0)) { case '/': return new UriPathSelector(uri); default: return new UriSelector(uri); } }