/* * Doxygen.NET - .NET object wrappers for Doxygen * Copyright 2009 - Ra-Software AS * This code is licensed under the LGPL version 3. * * Authors: * Thomas Hansen (thomas@ra-ajax.org) * Kariem Ali (kariem@ra-ajax.org) * */ using System; using System.Collections.Generic; using System.Text; namespace Doxygen.NET { public class Type : IDocItem { #region IDocItem Members public virtual string ID { get; protected internal set; } public virtual string Kind { get; protected internal set; } public virtual string FullName { get; protected internal set; } public virtual string Summary { get; protected internal set; } public virtual string Description { get; protected internal set; } public virtual string Location { get; protected internal set; } #endregion public virtual Namespace Namespace { get; protected internal set; } public virtual List NestedTypes { get; protected internal set; } public virtual List Members { get; protected internal set; } public virtual List BaseTypes { get; protected internal set; } public virtual string Name { get { return FullName.Contains(".") ? FullName.Remove(0, FullName.LastIndexOf(".") + 1): FullName; } } public Type() { BaseTypes = new List(); Members = new List(); } public List Methods { get { return Members.FindAll(FindByKind("function")); } } public List Constructors { get { return Members.FindAll(FindByKind("ctor")); } } public List Properties { get { return Members.FindAll(FindByKind("property")); } } public List Events { get { return Members.FindAll(FindByKind("event")); } } public List MemberDelegates { get { return Members.FindAll(FindByKind("memberdelegates")); } } private Predicate FindByKind(string kind) { return delegate(Member member) { return member.Kind == kind; }; } public override string ToString() { return FullName; } } }