public static TypeDeclaration add_Type(this NamespaceDeclaration namespaceDeclaration, IClass iClass) { // move to method IClass.typeDeclaration(); var typeName = iClass.Name; var newType = namespaceDeclaration.type(typeName); // check if already exists and if it does return it if (newType != null) { return(newType); } const Modifiers modifiers = Modifiers.None | Modifiers.Public; newType = new TypeDeclaration(modifiers, new List <AttributeSection>()) { Name = typeName }; foreach (var baseType in iClass.BaseTypes) { if (baseType.FullyQualifiedName != "System.Object") // no need to include this one { newType.BaseTypes.Add(new TypeReference(baseType.FullyQualifiedName)); } } namespaceDeclaration.AddChild(newType); return(newType); //return namespaceDeclaration.add_Type(iClass.Name); }
// should be merged with the one using CompilationUnit public static TypeDeclaration add_Type(this NamespaceDeclaration namespaceDeclaration, string typeName) { var newType = namespaceDeclaration.type(typeName); // check if already exists and if it does return it if (newType != null) { return(newType); } const Modifiers modifiers = Modifiers.None | Modifiers.Public; newType = new TypeDeclaration(modifiers, new List <AttributeSection>()); newType.Name = typeName; namespaceDeclaration.AddChild(newType); return(newType); }