Gegeben ein allgemeines baumbasiertes (Java) Datenmodell. Sagen wir
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;
}
Meine Aufgabe ist es, sicherzustellen, dass FileModels nur in FolderModels (oder PrjectModels) und FolderModels nur in ProjectModels verwendet werden. Da das Modell erweiterbar sein sollte - gibt es eine generische Möglichkeit, diese Einschränkung Validierung zu tun (wie XML-Schema tut) ohne hardcoding die Eltern-Kind-Reaktionen in einer Validierungsmethode?