/// <summary>
        /// Create a query object around a collected compatibility profile.
        /// </summary>
        /// <param name="compatibilityProfileData">The collected compatibility profile data.</param>
        public CompatibilityProfileData(CompatibilityProfileDataMut compatibilityProfileData)
        {
            Runtime = new RuntimeData(compatibilityProfileData.Runtime);

            Id = compatibilityProfileData.Id;

            if (compatibilityProfileData.ConstituentProfiles != null)
            {
                // This is intended to be case-sensitive
                ConstituentProfiles = new HashSet <string>(compatibilityProfileData.ConstituentProfiles);
            }

            // This should only be null in the case of the anyplatform_union profile
            if (compatibilityProfileData.Platform != null)
            {
                Platform = new PlatformData(compatibilityProfileData.Platform);
            }
        }
Ejemplo n.º 2
0
        internal void SetAliasTable(
            RuntimeData runtimeData,
            IReadOnlyDictionary <string, string> aliases)
        {
            if (aliases == null || aliases.Count == 0)
            {
                return;
            }

            var aliasTable = new Dictionary <string, IReadOnlyList <CommandData> >(StringComparer.OrdinalIgnoreCase);

            foreach (KeyValuePair <string, string> alias in aliases)
            {
                if (runtimeData.Aliases.TryGetValue(alias.Key, out IReadOnlyList <CommandData> aliasedCommands))
                {
                    aliasTable[alias.Key] = aliasedCommands;
                }
            }

            Aliases = aliasTable;
        }