public GenObject(GenObject parent, ISubClassBase parentSubClass, int classId) { Parent = parent; RefParent = null; ParentSubClass = parentSubClass; ClassId = classId; Attributes = new TextList(); if (Parent == null) { return; } GenDataBase = Parent.GenDataBase; if (Definition != null && Definition.IsInherited) { Contract.Assert(Definition.Parent.Inheritors.Contains(Definition), "The new object is inherited, but not from its parent"); Contract.Assert(!Definition.Parent.IsInherited && parentSubClass.ClassId == Definition.Parent.ClassId || Definition.Parent.IsInherited && parentSubClass.ClassId == Definition.Parent.Parent.ClassId, "The new object is being added to the incorrect subclass"); } else { Contract.Assert(parentSubClass.Definition == null || parentSubClass.Definition.SubClass.ClassId == ClassId, "The new object is being assigned to the wrong subclass"); } }
protected GenAttributes() { IgnorePropertyValidation = true; Fields = new NameList(); Values = new TextList(); Properties = new NameList(); SubClasses = new NameList(); }