public AbstractClass(AbstractNamespace ns, T root, AbstractCompiler compiler) : this() { RootNode = root; Name = root.Name; Namespace = ns; Compiler = compiler; }
protected List <C> GetClassesByType <N, C>(AbstractNamespace ns, AbstractCompiler compiler) where N : MainObjectNode where C : AbstractClass <N>, new() { return(ProjectNode .SearchByType <N>() .Select(n => new C().Build <C>(ns, n, compiler)).ToList()); }
public U Build <U>(AbstractNamespace ns, T root, AbstractCompiler compiler) where U : AbstractClass <T>, new() { var cls = new U() { RootNode = root, Name = root.Name, Namespace = ns, Compiler = compiler }; cls.Init(); return(cls); }