public UmlClass(UmlBlock block) : base(block) { name = name.IfContains("class ", () => type = ClassType.Class); name = name.IfContains("struct ", () => type = ClassType.Struct); name = name.IfContains("interface ", () => type = ClassType.Interface); string[] p = name.Split(":"); if (p.Length == 2) { name = p [0].Trim(); bases = p [1].Trim().Split(",").TrimAll().ToArray(); if (bases.Length == 1 && bases [0].Length == 0) { bases = new string[] {} } ; } else { bases = new string[] {}; } Content = ParseContent(block.Content).ToArray(); string _name = name; Packages.SplitName(_name, out Packages.CurrentPackage, out name); Comments.AddTo(commentsKey = Comments.Key(name), block.comments); Packages.AddToCurrentPackage(name); }
public IEnumerable <string> ParseContent(IEnumerable <UmlBlock> blocks) { foreach (UmlBlock subblock in blocks) { string literal = subblock.Name.TrimAll(); Comments.AddTo(commentsKey = Comments.Key(name, literal), subblock.comments); yield return(literal); } }
public UmlAttribute(UmlBlock block, UmlClass classobj) : base(block) { if (name.Contains(":")) { string[] p = name.Split(":").TrimAll().ToArray(); name = p [0]; type = p [1]; } Comments.AddTo(commentsKey = Comments.Key(classobj.Name, name), block.comments); }
public UmlEnum(UmlBlock block) : base(block) { name = name.IfContains("enum ", () => {}); values = ParseContent(block.Content).ToArray(); string _name = name; Packages.SplitName(_name, out Packages.CurrentPackage, out name); Comments.AddTo(commentsKey = Comments.Key(name), block.comments); Packages.AddToCurrentPackage(name); }
public UmlMethod(UmlBlock block, UmlClass classobj) : base(block) { parseParams(); if (name.Contains(":")) { string[] p = name.Split(":").TrimAll().ToArray(); name = p [0]; returntype = p [1]; } else { returntype = ""; } Comments.AddTo(commentsKey = Comments.Key(classobj.Name, name, parameters.Unique() + returntype), block.comments); }