private bool ShouldShowInheritanceInterface(ClassDiagramVisitorContext context, Type type) { bool showInheritance = this.RenderInheritance && this.ReflectedType.BaseType != null; if (showInheritance) { var interfaceModel = context.GetTypeMetaModel(type); showInheritance |= !interfaceModel.HideAsBaseClass && !interfaceModel.Hidden; } return(showInheritance); }
public static ClassDescriptor GetDescriptor(this Type type, ClassDiagramVisitorContext context) { ClassDescriptor firstOrDefault = context.Diagram.RootClasses.InnerList.FirstOrDefault(x => x.ReflectedType == type); if (firstOrDefault != null) { return(firstOrDefault); } return(GetReflected(type)); }
private void LoadMethods(ClassDiagramVisitorContext context) { var methods = this.ReflectedType.GetMethods(context.ShowMethodsBindingFlags).OrderBy(method => method.Name); foreach (var method in methods) { if (!method.IsProperty()) // weed up the compiler generated methods for properties { _methods.Add(new ClassMethodDescriptor(method)); } } }
private bool IsBaseClassVisible(ClassDescriptor @class, ClassDiagramVisitorContext context) { if (_diagram.RootClasses.InnerList.Any(x => x.ReflectedType == @class.ReflectedType.BaseType)) { return(true); } if (context.VisitedRelatedClasses.Any(x => x.ReflectedType == @class.ReflectedType.BaseType)) { return(true); } return(false); }
public string Write(ClassDiagramVisitorContext context) { string color = _class.Color ?? _diagram.GetClassColor(_class); StringBuilder buffer = new StringBuilder(); if (_class.ReflectedType.IsInterface) { buffer.AppendLine(string.Format(" interface \"{0}\"{1} {2}", _class.Name, color, "{")); } else if (_class.ReflectedType.IsAbstract) { buffer.AppendLine(string.Format(" abstract class \"{0}\"{1} {2}", _class.Name, color, "{")); } else { buffer.AppendLine(string.Format(" class \"{0}\"{1} {2}", _class.Name, color, "{")); } var definedMembers = _class.Members.InnerList.Where(x => !x.IsInherited).OrderBy(x => x.Name).ToArray(); if (!IsBaseClassVisible(_class, context)) { var inheritedMembers = _class.Members.InnerList.Where(x => x.IsInherited).OrderBy(x => x.Name).ToArray(); WriteClassMembers(inheritedMembers, buffer); if (definedMembers.Length > 0 && inheritedMembers.Length > 0) { buffer.AppendLine(" --"); } } WriteClassMembers(definedMembers, buffer); WriteClassMethods(_class.Methods.InnerList, buffer); buffer.AppendLine(" }"); var note = _class.MetaModel.Note != null?_class.MetaModel.Note.ToString() : null; if (note != null) { buffer.AppendLine(note); } return(buffer.ToString()); }
public string Write(ClassDiagramVisitorContext context) { StringBuilder buffer = new StringBuilder(); var names = Enum.GetNames(_enumType); buffer.AppendLine("enum \"{0}\" {1}".FormatWith(_enumType.Name, "{")); if (context.ShowMembers) { foreach (var name in names) { buffer.AppendLine(" {0}".FormatWith(name)); } } buffer.AppendLine("}"); return(buffer.ToString()); }
protected virtual void LoadMembers(ClassDiagramVisitorContext context) { switch (context.ScanMode) { case ClassDiagramScanModes.SystemServiceModelMember: _members.AddRange(this.ReflectedType.GetFields() .Where(x => x.HasAttribute <DataMemberAttribute>() || x.HasAttribute <MessageBodyMemberAttribute>()) .Where(x => !x.IsDefined(typeof(CompilerGeneratedAttribute), false)) .Select(field => new ClassMemberDescriptor(this, field)) ); _members.AddRange(this.ReflectedType.GetProperties() .Where(x => x.HasAttribute <DataMemberAttribute>() || x.HasAttribute <MessageBodyMemberAttribute>()) .Where(x => !x.IsDefined(typeof(CompilerGeneratedAttribute), false)) .Select(property => new ClassMemberDescriptor(this, property)) ); break; case ClassDiagramScanModes.AllMembers: _members.AddRange(this.ReflectedType.GetFields(context.ShowMembersBindingFlags) .Where(x => !x.IsDefined(typeof(CompilerGeneratedAttribute), false)) .Select(field => new ClassMemberDescriptor(this, field)) ); _members.AddRange(this.ReflectedType.GetProperties(context.ShowMembersBindingFlags) .Where(x => !x.IsDefined(typeof(CompilerGeneratedAttribute), false)) .Select(property => new ClassMemberDescriptor(this, property)) ); break; default: _members.AddRange(this.ReflectedType.GetFields() .Where(x => !x.IsDefined(typeof(CompilerGeneratedAttribute), false)) .Select(field => new ClassMemberDescriptor(this, field)) ); _members.AddRange(this.ReflectedType.GetProperties() .Where(x => !x.IsDefined(typeof(CompilerGeneratedAttribute), false)) .Select(property => new ClassMemberDescriptor(this, property)) ); break; } }
protected override void LoadMembers(ClassDiagramVisitorContext context) { // don't load any member for enums }
protected override void LoadMembers(ClassDiagramVisitorContext context) { // don't load members if it's an enum }
internal IDiagramFormatter CreateFormatter(ClassDiagramVisitorContext context) { return(new ClassDiagramFormatter(this, context)); }
protected override void Finalize(ClassDiagramVisitorContext current) { _classes.AddRange(current.VisitedRelatedClasses); }