Example #1
0
        /// <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);
        }
Example #3
0
 /// <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);
 }
Example #4
0
        /// <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);
        }