Друзья, объясните бестолковому, как правильно производить валидацию с учетом того, что используется Domain Model или хотя бы Table Module. В поиск просьба носом не тыкать: там я уже все почитал, что нашел.
Проблема: есть пользовательский ввод. Этот ввод нужно валидировать, причем не только на форматы и длины строк (это-то примитивно и нормально решается UI) но и диапазоны (в процедуре проверки которых может участвовать множество объектов), и валидные переходы (например, состояний объекта) и т.д. Понятное дело, требуется гибкость на том уровне, что пользователю по его команде сразу показать все его ошибки (естественно, если проверки определены; так например не стоит же говорить о несоблюдении диапазонов если формат данных неверный), с другой стороны — крайне разумно выглядит отсутствие дублирования кода (ведь объект домена, по идее, не должен позволять перевести себя в некорректное состояние, то есть уже в UI без дублирования не вынесешь).
Если не жалко, поделитесь идеями, как организовать подобную функциональность, либо ткните пальчиком в книжку, где доходчиво написано.