Exemple #1
0
        public GenDataBase AsGenDataBase()
        {
            var f = CreateMinimal();
            var d = new GenDataBase(f)
            {
                DataName = DefinitionName
            };
            var a = new GenAttributes(f, 1);

            for (var i = 1; i < Classes.Count; i++)
            {
                if (!string.IsNullOrEmpty(Classes[i].ReferenceDefinition))
                {
                    continue;
                }
                var @class = d.Root.CreateGenObject("Class");
                a.GenObject = @class;
                var c = Classes[i];
                a.SetString("Name", c.Name);
                a.SaveFields();
                foreach (var inheritor in c.Inheritors)
                {
                    a.GenObject = @class.CreateGenObject("SubClass");
                    var inheritorId = inheritor.ClassId;
                    a.SetString("Name", Classes[inheritorId].Name);
                    a.SetString("Relationship", "Extends");
                    a.SaveFields();
                    a.GenObject = ((GenObject)a.GenObject).Parent;
                    a.SetString("Inheritance", "Abstract");
                    a.SaveFields();
                }
                foreach (var subClass in c.SubClasses)
                {
                    a.GenObject = @class.CreateGenObject("SubClass");
                    var sc = subClass.SubClass;
                    a.SetString("Name", sc.Name);
                    a.SetString("Reference", sc.Reference);
                    a.SaveFields();
                }
                foreach (var property in c.InstanceProperties)
                {
                    a.GenObject = @class.CreateGenObject("Property");
                    a.SetString("Name", property);
                    a.SaveFields();
                }
            }
            return(d);
        }