Следует ли перепроектировать ErrorCollector (который является частью функциональности JSR-303) в GWT 2.4? - PullRequest
1 голос
/ 22 марта 2012

Я знаю, что этот вопрос не о конкретной проблеме, которая у меня есть.Это скорее вопрос команде GWT SDK.Насколько я помню, StackOverflow теперь является их официальным каналом связи с инженерным сообществом:)

Проблема:

Для таких редакторов с псевдонимами, как ValueBoxEditorDecorator, вы получите дубликатошибки в вашем HasEditorErrors.showErrors() - одна для самого ValueBoxEditorDecorator, а другая для вложенного ValueBoxEditor.Текущая реализация ValueBoxEditorDecorator перебирает список ошибок и отклоняет те, которые не принадлежат вложенному редактору.Для меня это выглядит как хакерский обходной путь:)

Вопрос:

Я думаю, что дубликаты должны быть отброшены где-то раньше, например, в SimpleViolation.pushViolations или DelegateMap.of илиErrorCollector.endVisit.

Сначала я подумал, почему бы не оставить одного делегата на каждый уникальный EditorContext.getAbsolutePath и отбросить остальные.Затем я понял, что, возможно, есть сценарий использования, когда ValueBoxEditorDecorator и его внутренний ValueBoxEditor будут получать разные ошибки, хотя я не могу придумать сценарий, как это может произойти из-за моего краткого знания источников gwt.

Так вот что я думаю.Почему бы нам не использовать карту в ErrorCollector.errorStack вместо List, где ключом будет комбинация EditorError.getAbsolutePath () и EditorError.getUserData ()?Это решило бы две проблемы IMO:

  • Нам не нужно будет отфильтровывать ошибки дублирования в наших редакторах.
  • ErrorCollector.visit () не будет предполагать, что редакторы как этотпройдены в иерархическом порядке.Я не вижу в документации нигде, чтобы посетители всегда работали таким образом.

Что вы думаете?

...