Учитывая модель данных на основе общего дерева (Java).Допустим,
abstract class XModel {
long id;
XModel parent;
}
class ProjectModel extends XModel {
String customer;
}
class FileModel extends XModel {
String name;
}
class FolderModel extends XModel {
String name;
String attributes;
}
Моя задача - убедиться, что FileModels используются только в FolderModels (или PrjectModels), а FolderModels используются только в ProjectModels.Так как модель должна быть расширяемой - есть ли какой-нибудь общий способ выполнить эту проверку ограничений (как это делает схема XML) без жесткого кодирования родительских-дочерних реализаций в методе проверки?