public DerivedRootStartInfoFactory(ITypeGetter rootTypeGetter)
        {
            _rootTypeDictionary = new SuffixedNamedTypeDictionary("Root");

            var validator = new DerivedTypeValidator(typeof(Root));
            var populator = new TypeDictionaryPopulator(_rootTypeDictionary, validator);

            populator.AddValidTypes(rootTypeGetter);
        }
        public IEnumerable <Type> GetStemTypes(IStemsCoreServices configuration)
        {
            _stemTypeDictionary = new SuffixedNamedTypeDictionary("Stem");

            var validator = new AggregateTypeValidator(
                GetAttributedTypeValidator(),
                new DerivedTypeValidator(typeof(Stem))
                );

            var populator = new TypeDictionaryPopulator(_stemTypeDictionary, validator);

            populator.AddValidTypes(_stemTypeGetter);

            return(_stemTypeDictionary.GetAllTypes());
        }