示例#1
0
        /// <summary>
        /// Adds a concrete template to the state collection
        /// </summary>
        public TemplateInfo AddConcrete(ITemplateInfo item)
        {
            var templateInfo = new TemplateInfo(item, _parameters.ItemNamespace);

            templateInfo.FullName = _templateNovelizer.GetNovelFullTypeName(item.Name, item.FullPath);

            _templateLookup.Add(item.TemplateId, templateInfo);
            _templates.Add(templateInfo);

            return(templateInfo);
        }
示例#2
0
        /// <summary>
        /// Adds a interface template to the state collection
        /// </summary>
        public TemplateInfo AddInterface(ITemplateInfo item, string interfaceSuffix)
        {
            if (_friendInterfaceLookup.ContainsKey(item.TemplateId))
            {
                throw new InvalidOperationException("The template " + item.FullPath + " is already added as a friend interface and cannot be added again.");
            }

            var templateInfo = new TemplateInfo(item, _parameters.InterfaceNamespace);

            string interfaceName     = "I" + item.Name.AsIdentifier() + interfaceSuffix;
            string interfaceFullPath = item.FullPath.Substring(0, item.FullPath.LastIndexOf('/') + 1) + interfaceName;

            templateInfo.FullName = _interfaceNovelizer.GetNovelFullTypeName(interfaceName, interfaceFullPath);

            _interfaceLookup.Add(item.TemplateId, templateInfo);
            _interfaces.Add(templateInfo);

            return(templateInfo);
        }