/// <summary>
 /// Registers a type to the optional target path
 /// </summary>
 /// <param name="namedType">The type to register</param>
 /// <param name="targetPath">The optional target path, relative to the root of the project</param>
 public void RegisterType(INamedType namedType, string targetPath = null)
 {
     if (!_typeFactory.ContainsNamedType(namedType))
     {
         _typeFactory.RegisterNamedType(namedType, targetPath);
     }
 }
Esempio n. 2
0
 private void GetInterfacesToExtractCore(INamedType namedType, Queue <INamedType> typeQueue)
 {
     foreach (INamedType baseInterface in namedType.Interfaces)
     {
         if (!TypeFactory.ContainsNamedType(baseInterface))
         {
             typeQueue.Enqueue(baseInterface);
             GetInterfacesToExtractCore(baseInterface, typeQueue);
         }
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Gets a queue of all non-extracted base types up to the first extracted base type
        /// </summary>
        /// <param name="cl">The <see cref="INamedType"/> to use</param>
        /// <returns>A queue of all non-extracted base types</returns>
        private Queue <INamedType> GetTypesInHierarchyToExtract(INamedType cl)
        {
            Queue <INamedType> nonExtractedClasses = new Queue <INamedType>();

            nonExtractedClasses.Enqueue(cl);
            while (cl.BaseType != null)
            {
                if (TypeFactory.ContainsNamedType(cl.BaseType))
                {
                    return(nonExtractedClasses);
                }
                else
                {
                    nonExtractedClasses.Enqueue(cl.BaseType);
                    cl = cl.BaseType;
                }
            }

            return(nonExtractedClasses);
        }