@Test public void expandsMessageTemplates() { EmitEachSelectorValidator.Config config = new EmitEachSelectorValidator.Config(); Model model = Model.builder() .addShape(StringShape.builder() .id(ShapeId.from("foo.bar#Baz")) .addTrait(new DocumentationTrait("hello")) .build()) .build(); config.setSelector(Selector.parse("$foo(*)")); config.setMessageTemplate("before `@{trait|documentation}` after. ID: @{id}. Var: @{var|foo|id}."); EmitEachSelectorValidator validator = new EmitEachSelectorValidator(config); List<ValidationEvent> events = validator.validate(model); assertThat(events.get(0).getMessage(), equalTo("before `\"hello\"` after. ID: foo.bar#Baz. Var: [foo.bar#Baz].")); }
@Override public List<ValidationEvent> validate(Model model) { if (config.bindToTrait != null && !model.getAppliedTraits().contains(config.getBindToTrait())) { return Collections.emptyList(); } else if (config.messageTemplate == null) { return validateWithSimpleMessages(model); } else { return validateWithTemplate(model); } }
EmitEachSelectorValidator extends AbstractValidator { @Override public List<ValidationEvent> validate(Model model) { if (config.bindToTrait != null && !model.getAppliedTraits().contains(config.getBindToTrait())) { return Collections.emptyList(); } else if (config.messageTemplate == null) { return validateWithSimpleMessages(model); } else { return validateWithTemplate(model); } } }
EmitEachSelectorValidator extends AbstractValidator { @Override public List<ValidationEvent> validate(Model model) { if (config.bindToTrait != null && !model.getAppliedTraits().contains(config.getBindToTrait())) { return Collections.emptyList(); } else if (config.messageTemplate == null) { return validateWithSimpleMessages(model); } else { return validateWithTemplate(model); } } EmitEachSelectorValidator(Config config); }
EmitEachSelectorValidator extends AbstractValidator { @Override public List<ValidationEvent> validate(Model model) { if (config.bindToTrait != null && !model.getAppliedTraits().contains(config.getBindToTrait())) { return Collections.emptyList(); } else if (config.messageTemplate == null) { return validateWithSimpleMessages(model); } else { return validateWithTemplate(model); } } EmitEachSelectorValidator(Config config); @Override List<ValidationEvent> validate(Model model); }
EmitEachSelectorValidator extends AbstractValidator { @Override public List<ValidationEvent> validate(Model model) { if (config.bindToTrait != null && !model.getAppliedTraits().contains(config.getBindToTrait())) { return Collections.emptyList(); } else if (config.messageTemplate == null) { return validateWithSimpleMessages(model); } else { return validateWithTemplate(model); } } EmitEachSelectorValidator(Config config); @Override List<ValidationEvent> validate(Model model);  }