/// <summary>
            /// Determine the visibility from the API node information
            /// </summary>
            /// <param name="apiType">The API type character from the ID</param>
            /// <param name="node">The API node information</param>
            /// <returns>An <see cref="ApiVisibility"/> indicating the entry's visibility</returns>
            internal static ApiVisibility DetermineVisibility(char apiType, XmlNode node)
            {
                ApiVisibility visibility;
                string visText;

                // Determine the visibility of the entry
                if(apiType == 'T')
                    visText = node.SelectSingleNode("typedata/@visibility").Value;
                else
                    visText = node.SelectSingleNode("memberdata/@visibility").Value;

                switch(visText)
                {
                    case "private":
                        visibility = ApiVisibility.Private;
                        break;

                    case "assembly":
                    case "family and assembly":
                        visibility = ApiVisibility.Internal;
                        break;

                    case "family":
                    case "family or assembly":
                        visibility = ApiVisibility.Protected;
                        break;

                    default:
                        visibility = ApiVisibility.Public;
                        break;
                }

                return visibility;
            }
Beispiel #2
0
 public RunningSearch(IList <LoadedAssembly> assemblies, string searchTerm, SearchMode searchMode, Language language, ApiVisibility apiVisibility)
 {
     this.assemblies    = assemblies;
     this.searchTerm    = NativeMethods.CommandLineToArgumentArray(searchTerm);
     this.language      = language;
     this.searchMode    = searchMode;
     this.apiVisibility = apiVisibility;
 }
            /// <summary>
            /// This will determine the API entry type and visibility based on the information in the reflection
            /// information node.
            /// </summary>
            private void DetermineApiEntryType()
            {
                XmlNode subsubgroup;
                string subgroup, entryId;

                // Is it an inherited namespace?
                if(apiNode.Name == "namespace")
                {
                    entryType = ApiEntryType.Namespace;
                    return;
                }

                // Is it an inherited type?
                if(apiNode.Name == "type")
                {
                    // Assume class, it'll be close enough
                    entryType = ApiEntryType.Class;
                    return;
                }

                // It's a documented or inherited member of some sort
                if(apiNode.Name == "element" || apiNode.Name == "type")
                    entryId = apiNode.Attributes["api"].Value;   // Inherited
                else
                {
                    entryId = apiNode.Attributes["id"].Value;    // Documented

                    // Is it a namespace?
                    if(entryId[0] == 'N')
                    {
                        entryType = ApiEntryType.Namespace;
                        return;
                    }
                }

                subsubgroup = apiNode.SelectSingleNode("apidata/@subsubgroup");

                if(subsubgroup != null)
                    subgroup = subsubgroup.Value;
                else
                    subgroup = apiNode.SelectSingleNode("apidata/@subgroup").Value;

                entryType = EntryTypeFromId(entryId[0], subgroup);
                visibility = DetermineVisibility(entryId[0], apiNode);
            }
Beispiel #4
0
 public ResourceSearchStrategy(ApiVisibility apiVisibility, IProducerConsumerCollection <SearchResult> resultQueue, string term)
     : this(apiVisibility, resultQueue, new[] { term })
 {
 }
Beispiel #5
0
 public ResourceSearchStrategy(ApiVisibility apiVisibility, IProducerConsumerCollection <SearchResult> resultQueue, string[] terms)
     : base(resultQueue, terms)
 {
     this.apiVisibility = apiVisibility;
     this.searchInside  = true;
 }
 public MemberSearchStrategy(Language language, ApiVisibility apiVisibility, IProducerConsumerCollection <SearchResult> resultQueue, string[] terms, MemberSearchKind searchKind = MemberSearchKind.All)
     : base(language, apiVisibility, resultQueue, terms)
 {
     this.searchKind = searchKind;
 }
 protected AbstractEntitySearchStrategy(Language language, ApiVisibility apiVisibility, IProducerConsumerCollection <SearchResult> resultQueue, params string[] terms)
     : base(resultQueue, terms)
 {
     this.language      = language;
     this.apiVisibility = apiVisibility;
 }
 public MemberSearchStrategy(Language language, ApiVisibility apiVisibility, string term, IProducerConsumerCollection <SearchResult> resultQueue, MemberSearchKind searchKind = MemberSearchKind.All)
     : this(language, apiVisibility, resultQueue, new[] { term }, searchKind)
 {
 }
Beispiel #9
0
 public MemberSearchStrategy(ILanguage language, ApiVisibility apiVisibility, SearchRequest searchRequest,
                             IProducerConsumerCollection <SearchResult> resultQueue, MemberSearchKind searchKind = MemberSearchKind.All)
     : base(language, apiVisibility, searchRequest, resultQueue)
 {
     this.searchKind = searchKind;
 }
Beispiel #10
0
 public VisibilityAttribute(ApiVisibility apiVisibility)
 {
     Visibility = apiVisibility;
 }
 public ApiVisibilityAttribute(ApiVisibility visibility)
 {
     Visibility = visibility;
 }
Beispiel #12
0
 public ResourceSearchStrategy(ApiVisibility apiVisibility, SearchRequest request, IProducerConsumerCollection <SearchResult> resultQueue)
     : base(request, resultQueue)
 {
     this.apiVisibility = apiVisibility;
     this.searchInside  = true;
 }