Beispiel #1
0
        public ResMemberCategoryGroupBuilder FindMemberCategoryGroup(ResMemberCategory category)
        {
            ResMemberCategoryGroupBuilder result = null;

            _categoryGroups.TryGetValue(category.Flavor, out result);
            return(result);
        }
Beispiel #2
0
        public ResMemberCategoryGroupBuilder GetMemberCategoryGroup(ResMemberCategory category)
        {
            ResMemberCategoryGroupBuilder result = null;

            if (_categoryGroups.TryGetValue(category.Flavor, out result))
            {
                return(result);
            }

            AssertBuildable();
            result = new ResMemberCategoryGroupBuilder(_facet, this, category);
            _categoryGroups.Add(category.Flavor, result);
            return(result);
        }
Beispiel #3
0
 public ResMemberLineDecl(
     Identifier name,
     ResLexicalID originalLexicalID,
     ResMemberCategory category,
     ILazy <ResMemberConcretenessMode> concretenessMode,
     ILazy <ResMemberDeclMode> declMode,
     ILazy <ResTag[]> tags,
     ILazy <IResMemberDecl> directDecl,
     ILazy <IResMemberDecl[]> inheritedDecls)
 {
     _name = name;
     _originalLexicalID = originalLexicalID;
     _category          = category;
     _concretenessMode  = concretenessMode;
     _declMode          = declMode;
     _tags           = tags;
     _directDecl     = directDecl;
     _inheritedDecls = inheritedDecls;
 }
Beispiel #4
0
        public ResMemberCategoryGroupBuilder(
            IResContainerFacetBuilder facetBuilder,
            ResMemberNameGroupBuilder nameGroupBuilder,
            ResMemberCategory category)
            : base(nameGroupBuilder.LazyFactory)
        {
            nameGroupBuilder.AddAction(NewBuilderPhase.Seal, () => DoneBuilding());
            AddDependency(nameGroupBuilder);
            DoneBuilding(NewBuilderPhase.Dependencies);

            _facetBuilder     = facetBuilder;
            _nameGroupBuilder = nameGroupBuilder;
            _category         = category;

            var resMemberCategoryGroup = new ResMemberCategoryGroup(
                Name,
                Flavor,
                NewLazy(() => (from lineBuilder in _lines select lineBuilder.Value).Eager()));

            SetValue(resMemberCategoryGroup);
        }
Beispiel #5
0
        public ResMemberLineDeclBuilder(
            ResMemberCategoryGroupBuilder parent,
            ILazyFactory lazy,
            Identifier name,
            ResLexicalID originalLexicalID,
            ResMemberCategory category)
            : base(lazy)
        {
            parent.AddAction(NewBuilderPhase.Seal, () => DoneBuilding());
            AddDependency(parent);
            DoneBuilding(NewBuilderPhase.Dependencies);

            var resMemberLineDecl = new ResMemberLineDecl(
                name,
                originalLexicalID,
                category,
                NewLazy(() => _concretenessMode),
                NewLazy(() => _declMode),
                NewLazy(() => _tags.ToArray()),
                NewLazy(() => _directDecl),
                NewLazy(() => _inheritedDecls.ToArray()));

            SetValue(resMemberLineDecl);
        }
Beispiel #6
0
 public IResMemberCategoryGroup FindCategoryGroup(ResMemberCategory category)
 {
     return(CachedCategoryGroups.Cache(category.Flavor, () => null));
 }