/// <summary> /// Añade los parámetros de un elemento complejo /// </summary> private void AddParametersBaseComplex(StructDocumentationModel structDoc, BaseComplexModel complex) { LanguageStructModel nameSpace = complex.GetNameSpace(); // Añade la clase base structDoc.Childs.Add(GetTypeStruct(structDoc, "BaseClass", complex.BaseClass)); structDoc.Parameters.Add(GetTypeStructShort("BaseType", complex.BaseClass)); // Añade las interfaces foreach (string strInterface in complex.Interfaces) { structDoc.Parameters.Add("Interface", strInterface); } // Añade los parámetros tipados AddListTypeParameter(structDoc, complex.TypeParameters); }
/// <summary> /// Añade los parámetros de un elemento complejo /// </summary> private void AddParametersBaseComplex(StructDocumentationModel objStruct, BaseComplexModel objComplex) { LanguageStructModel objNameSpace = objComplex.GetNameSpace(); // Añade la clase base objStruct.Childs.Add(GetTypeStruct(objStruct, "BaseClass", objComplex.BaseClass)); objStruct.Parameters.Add(GetTypeStructShort("BaseType", objComplex.BaseClass)); // Añade las interfaces foreach (string strInterface in objComplex.Interfaces) { objStruct.Parameters.Add("Interface", strInterface); } // Añade los parámetros tipados AddListTypeParameter(objStruct, objComplex.TypeParameters); }
/// <summary> /// Interpreta los datos de un NamedTypeSymbol /// </summary> private void ParseNamedTypeSymbol(BaseComplexModel objComplex, SyntaxNode objNode, INamedTypeSymbol objSymbol) { // Inicializa los datos básicos InitStructModel(objComplex, objSymbol, objNode); // Inicializa la clase base if (objSymbol.BaseType != null) { objComplex.BaseClass = GetTypeData(objSymbol.BaseType); } // Inicializa las interfaces foreach (INamedTypeSymbol objInterface in objSymbol.Interfaces) { objComplex.Interfaces.Add(objInterface.Name); } // Interpreta los parámetros genéricos objComplex.TypeParameters.AddRange(ParseTypePameters(objSymbol.TypeParameters)); // Obtiene los métodos, propiedades y demás ParseChilds(objNode, objComplex); }
/// <summary> /// Obtiene la cabecera de un documento /// </summary> internal void GetMLHeader(MLNode objMLRoot, DocumentFileModel objDocument) { MLNode objMLList; // Nombre del elemento objMLRoot.Nodes.Add("h1", GetTypeName(objDocument.StructType) + " " + objDocument.Name); // Resumen objMLRoot.Nodes.AddRange(GetTagsRemarksXml(objDocument.LanguageStruct.RemarksXml.Summary)); // Espacio de nombres objMLList = objMLRoot.Nodes.Add("ul"); objMLList.Nodes.Add(objMLBuilder.GetListItem(objMLBuilder.GetSpan("Espacio de nombres:", true), GetLinkNameSpace(objDocument))); // Si es una clase, interface o estructura (BaseComplexModel), añade el resto de elementos de la lista if (objDocument.LanguageStruct is BaseComplexModel) { BaseComplexModel objComplex = objDocument.LanguageStruct as BaseComplexModel; if (objComplex != null) { string strInterfaces = ""; // Añade la clase base if (objComplex.BaseClass != null) { objMLList.Nodes.Add(objMLBuilder.GetListItem(objMLBuilder.GetSpan("Base:", true), objMLBuilder.GetSpan(GetTypeName(objComplex.BaseClass)))); } // Añade los interfaces foreach (string strBase in objComplex.Interfaces) { strInterfaces = strInterfaces.AddWithSeparator(strBase, ","); } // Añade la cadena de interfaces if (!strInterfaces.IsEmpty()) { objMLList.Nodes.Add(objMLBuilder.GetListItem(objMLBuilder.GetSpan("Interfaces:", true), objMLBuilder.GetSpan(strInterfaces))); } } } }
/// <summary> /// Obtiene el nodo del tipo base de una clase /// </summary> private MLNode GetLinkBaseType(LanguageStructModel objStruct, Boolean blnIncludeLink) { MLNode objMLNode = new MLNode(); // Si realmente es una clase if (objStruct is BaseComplexModel) { BaseComplexModel objComplex = objStruct as BaseComplexModel; if (objStruct != null) { if (blnIncludeLink) { objMLNode = GetLinkTypeName(objComplex.BaseClass); } else { objMLNode = Document.MLBuilder.GetSpan(objComplex.BaseClass.Name); } } } // Devuelve el nodo return(objMLNode); }