Exemplo n.º 1
0
        public override void Prewarm()
        {
            base.Prewarm();

            if (types == null)
            {
                types = typeSet.Where(filter.Configured().ValidateType).NotNull().ToHashSet();
            }

            enumTypes = types.Where(t => t.IsEnum).ToHashSet();

            groupEnums = enumTypes.Count != types.Count;

            namespaces       = new HashSet <Namespace>();
            typesInNamespace = new Dictionary <Namespace, HashSet <Type> >();

            foreach (var t in types)
            {
                if (!groupEnums || !t.IsEnum)
                {
                    var ns = t.Namespace();

                    if (!typesInNamespace.TryGetValue(ns, out var children))
                    {
                        children = new HashSet <Type>();
                        typesInNamespace.Add(ns, children);
                    }

                    children.Add(t);

                    namespaces.AddRange(ns.AndAncestors());
                }
            }

            rootNamespaces        = namespaces.Select(ns => ns.Root).ToHashSet();
            namespacesInNamespace = Namespace.ChildrenByNamespaces(namespaces);
        }
Exemplo n.º 2
0
 public MemberOptionTree(IEnumerable <Type> types, MemberFilter memberFilter, TypeFilter memberTypeFilter, MemberAction action) : base(new GUIContent("Member"))
 {
     favorites             = new Favorites(this);
     codebase              = Codebase.Subset(types, memberFilter.Configured(), memberTypeFilter?.Configured());
     this.action           = action;
     this.types            = types;
     this.memberFilter     = memberFilter;
     this.memberTypeFilter = memberTypeFilter;
     expectingBoolean      = memberTypeFilter?.ExpectsBoolean ?? false;
 }