public String getStringValue(String key) { return getFieldValue(key); }
public String getHeader() { return getStringValue("header"); }
@Override public Predicate<Message> compile(MessageFilterSpecification specification) { return new JsonPathPredicate(specification.getPath(), Pattern.compile(specification.getMatcher()), configuration); } }
@Override public Predicate<Message> compile(MessageFilterSpecification specification) { return new HeaderPredicate(specification.getHeader(), Pattern.compile(specification.getMatcher())); } }
@Override public Predicate<Message> compile(MessageFilterSpecification specification) { return new AvroPathPredicate(specification.getPath(), Pattern.compile(specification.getMatcher())); } }
@Override public Predicate<Message> compile(MessageFilterSpecification specification) { return new HeaderPredicate(specification.getHeader(), Pattern.compile(specification.getMatcher())); } }
@Override public Predicate<Message> compile(MessageFilterSpecification specification) { return new AvroPathPredicate(specification.getPath(), Pattern.compile(specification.getMatcher())); } }
public void check(Subscription subscription, Topic topic) { subscription.getFilters() .stream() .map(filter -> new ContentTypeFilterTypePair(topic.getContentType(), filter.getType())) .forEach(pair -> checkTypeMaching(pair)); }
public String getPath() { return getStringValue("path"); }
@Override public Predicate<Message> compile(MessageFilterSpecification specification) { return new JsonPathPredicate(specification.getPath(), Pattern.compile(specification.getMatcher()), configuration); } }
public String getMatcher() { return getStringValue("matcher"); }
@JsonCreator public MessageFilterSpecification(Map<String, Object> spec) { this.spec = spec; this.type = getStringValue("type"); }