/// <summary>
        ///		Añade un espacio de nombres a la colección
        /// </summary>
        public void Add(NameSpaceModel objNameSpace)
        {
            NameSpaceGroupModel objGroup = Search(objNameSpace.Name);

            if (objGroup == null)
            {
                Add(new NameSpaceGroupModel(objNameSpace, objNameSpace.Name));
            }
        }
예제 #2
0
        /// <summary>
        ///		Añade un espacio de nombres a la colección
        /// </summary>
        public void Add(NameSpaceModel nameSpace)
        {
            NameSpaceGroupModel group = Search(nameSpace.Name);

            if (group == null)
            {
                Add(new NameSpaceGroupModel(nameSpace, nameSpace.Name));
            }
        }
        /// <summary>
        ///		Añade una estructura a un espacio de nombres teniendo en cuenta que si es una clase pueden ser clases parciales
        ///	y si es un método puede estar sobreescrito
        /// </summary>
        private void AddStructToNameSpace(NameSpaceModel nameSpace, LanguageStructModel structDoc)
        {
            LanguageStructModel previous = nameSpace.Items.SearchByName(structDoc);

            // Si no existía se añade
            if (previous == null)
            {
                nameSpace.Items.Add(structDoc);
            }
        }
예제 #4
0
        /// <summary>
        ///		Añade una estructura a un espacio de nombres teniendo en cuenta que si es una clase pueden ser clases parciales
        ///	y si es un método puede estar sobreescrito
        /// </summary>
        private void AddStructToNameSpace(NameSpaceModel objNameSpace, LanguageStructModel objStruct)
        {
            LanguageStructModel objPrevious = objNameSpace.Items.SearchByName(objStruct);

            // Si no existía se añade
            if (objPrevious == null)
            {
                objNameSpace.Items.Add(objStruct);
            }
        }
예제 #5
0
        /// <summary>
        ///		Interpreta un espacio de nombres
        /// </summary>
        protected void ParseNameSpace(SyntaxNode objNode, LanguageStructModel objParent, INamespaceSymbol objSymbol)
        {
            NameSpaceModel objNameSpace = objParent.Items.CreateSpaceModel(objParent);

            // Obtiene los datos del espacio de nombres
            if (objSymbol != null)
            {                                     // Obtiene los datos del espacio de nombres
                InitStructModel(objNameSpace, objSymbol, objNode);
                objNameSpace.Name = GetFullNameNameSpace(objSymbol);
                // Interpreta los nodos
                ParseChilds(objNode, objNameSpace);
            }
        }
예제 #6
0
        /// <summary>
        ///		Interpreta un espacio de nombres
        /// </summary>
        private void ParseNameSpace(SyntaxNode objNode, LanguageStructModel objParent)
        {
            NameSpaceModel   objNameSpace = objParent.Items.CreateSpaceModel(objParent);
            INamespaceSymbol objSymbol    = objTreeSemantic.GetDeclaredSymbol(objNode as NamespaceDeclarationSyntax);

            // Obtiene los datos del espacio de nombres
            if (objSymbol != null)
            {                                     // Obtiene los datos del espacio de nombres
                InitStructModel(objNameSpace, objSymbol, objNode);
                objNameSpace.Name = GetFullNameNameSpace(objSymbol);
                // Interpreta los nodos
                ParseChilds(objNode, objNameSpace);
            }
        }
예제 #7
0
        /// <summary>
        ///		Interpreta un espacio de nombres
        /// </summary>
        protected void ParseNameSpace(SyntaxNode node, LanguageStructModel parent, INamespaceSymbol symbol)
        {
            NameSpaceModel nameSpace = parent.Items.CreateSpaceModel(parent);

            // Obtiene los datos del espacio de nombres
            if (symbol != null)
            {
                // Obtiene los datos del espacio de nombres
                InitStructModel(nameSpace, symbol, node);
                nameSpace.Name = GetFullNameNameSpace(symbol);
                // Interpreta los nodos
                ParseChilds(node, nameSpace);
            }
        }
        /// <summary>
        ///		Añade las estructuras a los grupos
        /// </summary>
        private void AddStructsToGroups(NameSpaceGroupModelCollection groups, ProgramModel program)
        {
            foreach (CompilationUnitModel compilationUnit in program.CompilationUnits)
            {
                foreach (LanguageStructModel structDoc in compilationUnit.Root.Items)
                {
                    if (structDoc is NameSpaceModel)
                    {
                        NameSpaceModel      nameSpace = structDoc as NameSpaceModel;
                        NameSpaceGroupModel group     = groups.Search(nameSpace.Name);

                        if (group != null)
                        {
                            foreach (LanguageStructModel child in nameSpace.Items)
                            {
                                // Si no se ha añadido antes este espacio de nombres, se crea
                                if (group.NameSpace == null)
                                {
                                    group.NameSpace = nameSpace;
                                }
                                // Añade el elemento hijo
                                AddStructToNameSpace(group.NameSpace, child);
                            }
                        }
                    }
                    else
                    {
                        NameSpaceGroupModel group = GetGroupNoNameSpace(groups);

                        if (group != null)
                        {
                            AddStructToNameSpace(group.NameSpace, structDoc);
                        }
                    }
                }
            }
        }
예제 #9
0
        /// <summary>
        ///		Añade las estructuras a los grupos
        /// </summary>
        private void AddStructsToGroups(NameSpaceGroupModelCollection objColGroups, ProgramModel objProgram)
        {
            foreach (CompilationUnitModel objCompilationUnit in objProgram.CompilationUnits)
            {
                foreach (LanguageStructModel objStruct in objCompilationUnit.Root.Items)
                {
                    if (objStruct is NameSpaceModel)
                    {
                        NameSpaceModel      objNameSpace = objStruct as NameSpaceModel;
                        NameSpaceGroupModel objGroup     = objColGroups.Search(objNameSpace.Name);

                        if (objGroup != null)
                        {
                            foreach (LanguageStructModel objChild in objNameSpace.Items)
                            {                                                     // Si no se ha añadido antes este espacio de nombres, se crea
                                if (objGroup.NameSpace == null)
                                {
                                    objGroup.NameSpace = objNameSpace;
                                }
                                // Añade el elemento hijo
                                AddStructToNameSpace(objGroup.NameSpace, objChild);
                            }
                        }
                    }
                    else
                    {
                        NameSpaceGroupModel objGroup = GetGroupNoNameSpace(objColGroups);

                        if (objGroup != null)
                        {
                            AddStructToNameSpace(objGroup.NameSpace, objStruct);
                        }
                    }
                }
            }
        }
예제 #10
0
 public NameSpaceGroupModel(NameSpaceModel nameSpace, string name)
 {
     NameSpace = nameSpace;
     Name      = name;
 }
예제 #11
0
 public NameSpaceGroupModel(NameSpaceModel objNameSpace, string strName)
 {
     NameSpace = objNameSpace;
     Name      = strName;
 }
        public string ConvertToCode(NameSpaceModel nameSpace)
        {
            var nameSpaceSyntax = SyntaxFactory.NamespaceDeclaration(SyntaxFactory.ParseName(nameSpace.NameSpaceName));

            return(nameSpaceSyntax.ToFullString());
        }