Esempio n. 1
0
 /// <summary>
 /// Adds the item.
 /// </summary>
 /// <param name="item">The item.</param>
 public void AddItem(StructureItem item)
 {
     if (item is StructureDomain)
     {
         this.Domains.Add((StructureDomain)item);
     }
     else
     {
         this.Entities.Add((StructureEntity)item);
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Adds the item.
 /// </summary>
 /// <param name="item">The item.</param>
 public void AddItem(StructureItem item)
 {
     if (item is StructureDomain)
     {
         this.Domains.Add((StructureDomain)item);
     }
     else
     {
         this.Entities.Add((StructureEntity)item);
     }
 }
Esempio n. 3
0
        public StructureTree Parse()
        {
            StructureTree result = new StructureTree();

            string[] lines = StringUtil.SplitLines(this.SourceText);
            for (int i = 0; i < lines.Length; i++)
            {
                StructureItem item = this.ParseLine(lines[i], i);
                if (item != null)
                {
                    result.AddItem(item);
                }
            }
            // All lines loaded, structure items mapped, let's resolve references
            foreach (StructureEntity entity in result.Entities)
            {
                foreach (StructureProperty property in entity.Properties)
                {
                    if ((!property.IsTyped) && (!string.IsNullOrEmpty(property.ReferenceName)))
                    {
                        property.ReferenceItem = this.itemMap[property.ReferenceName.ToLower()];
                        if (property.ReferenceItem is StructureDomain)
                        {
                            StructureDomain domain = property.ReferenceItem as StructureDomain;
                            property.DataTypeStr      = domain.DataTypeStr;
                            property.DataType         = domain.DataType;
                            property.DataTypeLength   = domain.DataTypeLength;
                            property.DataTypeDecimals = domain.DataTypeDecimals;
                            if (domain.IsIdentity)
                            {
                                property.IsIdentity   = true;
                                property.IsPrimaryKey = true;
                                property.IsNullable   = false;
                            }
                        }
                        else
                        {
                        }
                    }
                }
            }
            return(result);
        }