public virtual void Process(Type @class, TPrinter printer) { // NOTE: CHANGE IT!!! AssemblySelector selector = AssemblySelector.Get(@class.Assembly); ClassInclude defaultClassInclude = selector.GetClassInclude(@class, printer.Diagram); ClassSelector classSelector = ClassSelector.Get(@class, defaultClassInclude); printer.BeginClass(ModelUtils.ToClassType(@class), PlantUmlUtils.GetSimpleName(@class), PlantUmlUtils.GetGenerics(@class), PlantUmlUtils.GetStereotypes(@class)?.ToArray()); this.ProcessMembersIfChecked(classSelector, ModelUtils.GetConstructors(@class), printer); this.ProcessMembersIfChecked(classSelector, ModelUtils.GetMethods(@class), printer); this.ProcessMembersIfChecked(classSelector, ModelUtils.GetProperties(@class), printer); this.ProcessMembersIfChecked(classSelector, ModelUtils.GetEvents(@class), printer); this.ProcessMembersIfChecked(classSelector, ModelUtils.GetFields(@class), printer); printer.EndClass(); //this.ProcessNestedIfChecked(classSelector, ModelUtils.GetNestedTypes(@class), printer); this.ProcessMembersIfChecked(classSelector, ModelUtils.GetGeneralizations(@class), printer); this.ProcessMembersIfChecked(classSelector, ModelUtils.GetAssociations(@class), printer); this.ProcessMembersIfChecked(classSelector, ModelUtils.GetDependencies(@class), printer); }
public virtual void Process(Assembly assembly, TPrinter printer) { AssemblySelector selector = AssemblySelector.Get(assembly); // Check in which diagram can be used. foreach (string diagram in selector.GetDiagrams()) { printer.BeginDiagram(diagram); foreach (Type @class in assembly.DefinedTypes.Where(@class => [email protected]())) { ClassSelector classSelector = ClassSelector.Get(@class); // Is pointed out with a 'DiagramAttribute' OR 'ClassDiagramAttribute'. if (selector.Check(@class, diagram) || classSelector.GetClassInclude(diagram) != ClassInclude.None) { this.provider.GetProcessor <Type>().Process(@class, printer); } } printer.EndDiagram(); } }