Пример #1
0
        public void GenerateCode(EAPModel model)
        {
            FilesComplete.Clear();
            FilesForDb.Clear();
            foreach (var item in model.Classes)
            {
                DictionaryEntry table = (DictionaryEntry)item;

                CodeCompileUnit unit = BuildCodeCUnit(model, table.Value, true);
                if (IsDbSelected)
                {
                    CodeCompileUnit unitDb = BuildCodeCUnit(model, table.Value, false);
                    if (unitDb != null)
                    {
                        FilesForDb.Add(unitDb);
                    }
                }
                if (unit != null)
                {
                    //add it to the list, unless its null
                    FilesComplete.Add(unit);
                }
            }
            if (IsDbSelected)
            {
                CodeCompileUnit unitDb = CreateDBContextClass(model);
                FilesForDb.Add(unitDb);
            }
            //   CreateParentClass(); // ovo treba izbaciti za IdentifiedObject
        }
Пример #2
0
        private CodeCompileUnit BuildCodeCUnit(EAPModel model, object v, bool flagDb)
        {
            CodeCompileUnit unit     = null;
            EAPClass        classPom = (EAPClass)v;

            unit = CreateClass(model, classPom, flagDb);

            return(unit);
        }
        public void CollectEnums(EA.Element elem, bool parse, EAPModel model)
        {
            if (!model.Enums.ContainsKey(elem.Name))
            {
                EAPEnumeration en = new EAPEnumeration();

                en.Name        = elem.Name;
                en.Code        = elem.Alias;
                en.Description = elem.Notes;
                en.Bitfield    = elem.Stereotype.Contains("bitfield");
                en.Parse       = parse;

                if (en.Description.Split(':').Length > 1)
                {
                    en.Title       = en.Description.Split(':')[0];
                    en.Description = en.Description.Remove(0, en.Title.Length + 1).Trim();
                }
                else
                {
                    en.Title       = "";
                    en.Description = en.Description.Trim();
                }
                en.Title       = en.Title.Replace("<b>", "").Replace("</b>", "").Replace("<i>", "").Replace("</i>", "").Trim();
                en.Description = en.Description.Replace("<b>", "").Replace("</b>", "").Replace("<i>", "").Replace("</i>", "").Trim();



                foreach (EA.Attribute l_Attr in elem.Attributes)
                {
                    CollectEnumValue(l_Attr, en);
                }

                model.Enums.Add(en.Name, en);

                if (Validate && !en.Parse && en.EnumValue.Count != 0)
                {
                    tw.WriteLine("Model Code for enum: {0},", en.Code);
                    tw.WriteLine("Name for enum: {0},\n", en.Name);
                    tw.WriteLine("Enum name:" + en.Name + ", was not being processed but it has enum value.");

                    tw.WriteLine("*************************************************************************");
                    tw.WriteLine("\n\n");
                }
            }
            else
            {
                if (Validate)
                {
                    tw.WriteLine("Enum name:" + elem.Name + ", already exists in EAP.");

                    tw.WriteLine("*************************************************************************");
                    tw.WriteLine("\n\n");
                }
            }
        }
        public EAPModels CollectClasses(string input, ref string err)
        {
            m_Repository = new EA.Repository();
            try
            {
                m_Repository.OpenFile(input);
            }
            catch
            {
                err = err + "\nIt is not able to open EAP file. Check the instalation of EAP";

                return(null);
            }

            eapModels = new EAPModels();
            EAPModel model = null;

            EA.Package MyModel      = (EA.Package)m_Repository.Models.GetAt(0);
            string     packageAlias = MyModel.Packages.Count > 0 ? ((EA.Package)(MyModel.Packages.GetAt(0))).Alias : null;

            if (packageAlias == null || packageAlias == "")
            {
                model = new EAPModel(nameModel);
                eapModels.Models.Add(model);
            }

            for (short iPackage = 0; iPackage < MyModel.Packages.Count; iPackage++)
            {
                EA.Package package = (EA.Package)MyModel.Packages.GetAt(iPackage);
                MyModelCopy = package;
                DoPackage(package, false, model, true);
            }


            for (short iPackage = 0; iPackage < MyModel.Packages.Count; iPackage++)
            {
                EA.Package package = (EA.Package)MyModel.Packages.GetAt(iPackage);
                MyModelCopy = package;
                DoPackage(package, false, model, false);
            }

            FindAttributeEnumCode();
            FixGroupClass();

            m_Repository.CloseFile();

            if (Validate)
            {
                //FindModelCodeIsNotEAP();
                tw.Close();
            }

            return(eapModels);
        }
 public void AddAttributesInClass(EAPModel model, EA.Element p_Elem, EAPClass l_Class, bool group, EAPClass l_ClassGroup = null)
 {
     if (p_Elem.Attributes.Count != 0)
     {
         foreach (EA.Attribute l_Attr in p_Elem.Attributes)
         {
             CollectAttribute(model, l_Attr, l_Class, group, l_ClassGroup);
         }
     }
     if (p_Elem.Connectors.Count != 0)
     {
         foreach (EA.Connector l_Attr in p_Elem.Connectors)
         {
             if (l_Attr.Type.Equals("Aggregation") || l_Attr.Type.Equals("Composition") || l_Attr.Type.Equals("Association"))
             {
                 CollenctConectors(model, l_Attr, l_Class, group, p_Elem);
             }
         }
     }
 }
Пример #6
0
        private CodeCompileUnit CreateDBContextClass(EAPModel model)
        {
            CodeCompileUnit unit = new CodeCompileUnit();
            //namespace
            CodeNamespace nameSpace = new CodeNamespace("Default_Namespace");

            unit.Namespaces.Add(nameSpace);
            //namespace imports
            nameSpace.Imports.Add(new CodeNamespaceImport("System"));

            CodeTypeDeclaration file = new CodeTypeDeclaration();

            file.IsClass        = true;
            file.Name           = DbName;
            file.TypeAttributes = TypeAttributes.Public;
            file.Attributes     = MemberAttributes.Public;
            nameSpace.Types.Add(file);

            return(unit);
        }
        public void CollectAttribute(EAPModel model, EA.Attribute l_Attr, EAPClass l_Class, bool group, EAPClass l_ClassGroup = null)
        {
            EAPAttribute l_MyAttr = new EAPAttribute();

            l_MyAttr.Description = l_Attr.Notes;
            l_MyAttr.Settable    = !l_Attr.IsConst;
            l_MyAttr.Max         = l_Attr.UpperBound;
            l_MyAttr.Min         = l_Attr.LowerBound;
            l_MyAttr.Index       = l_Attr.Pos;
            l_MyAttr.Default     = ReturnValue(l_MyAttr, l_Attr);
            l_MyAttr.Visible     = !l_Attr.IsStatic;

            if (model.Enums.ContainsKey(l_Attr.Type))
            {
                l_MyAttr.TypeCode = "Enum";
            }
            if (model.Classes.ContainsKey(l_Attr.Type))
            {
                l_MyAttr.TypeCode = "Class";
            }

            if (group)
            {
                if (l_ClassGroup == null)
                {
                    l_MyAttr.Group = l_Class.Code;
                }
                else
                {
                    l_MyAttr.Group = l_ClassGroup.Code;
                }
            }

            if (l_MyAttr.Description.Split(':').Length > 1)
            {
                l_MyAttr.Title       = l_MyAttr.Description.Split(':')[0];
                l_MyAttr.Description = l_MyAttr.Description.Remove(0, l_MyAttr.Title.Length + 1);
            }
            else
            {
                l_MyAttr.Title       = "";
                l_MyAttr.Description = l_MyAttr.Description.Trim();
            }

            l_MyAttr.Title       = l_MyAttr.Title.Replace("<b>", "").Replace("</b>", "").Replace("<i>", "").Replace("</i>", "").Trim();
            l_MyAttr.Description = l_MyAttr.Description.Replace("<b>", "").Replace("</b>", "").Replace("<i>", "").Replace("</i>", "").Trim();

            l_MyAttr.Code = l_Attr.Style;
            l_MyAttr.Name = l_Attr.Name;

            FindType(l_Class, l_MyAttr, l_Attr);

            l_MyAttr.Aggregated  = GetAggregated(l_Attr, l_MyAttr);
            l_MyAttr.Searchable  = GetSearchable(l_Attr, l_MyAttr);
            l_MyAttr.Cardinality = GetCardinality(l_Attr, l_MyAttr) == 0 ? null : GetCardinality(l_Attr, l_MyAttr).ToString();


            if (!(l_Class.AddAttribute(l_MyAttr)))
            {
                if (Validate)
                {
                    tw.WriteLine("Attribute Model Code:" + l_Attr.Style + ",  already exists in Class name: " + l_Class.Name + ". (Look at EAP)");

                    tw.WriteLine("*************************************************************************");
                    tw.WriteLine("\n\n");
                }
            }
        }
        private void CollenctConectors(EAPModel model, Connector l_Attr, EAPClass l_Class, bool group, EA.Element l_class)
        {
            EAPAttribute l_MyAttr = new EAPAttribute();

            l_MyAttr.Description = l_Attr.Notes;


            if (l_MyAttr.Description.Split(':').Length > 1)
            {
                l_MyAttr.Title       = l_MyAttr.Description.Split(':')[0];
                l_MyAttr.Description = l_MyAttr.Description.Remove(0, l_MyAttr.Title.Length + 1);
            }
            else
            {
                l_MyAttr.Title       = "";
                l_MyAttr.Description = l_MyAttr.Description.Trim();
            }

            l_MyAttr.Title       = l_MyAttr.Title.Replace("<b>", "").Replace("</b>", "").Replace("<i>", "").Replace("</i>", "").Trim();
            l_MyAttr.Description = l_MyAttr.Description.Replace("<b>", "").Replace("</b>", "").Replace("<i>", "").Replace("</i>", "").Trim();

            l_MyAttr.Code = l_Attr.Alias;
            bool pom = false;

            if (l_class.ElementID == l_Attr.ClientID)
            {
                l_MyAttr.Name = l_Attr.SupplierEnd.Role;
                l_MyAttr.Code = l_Attr.SupplierEnd.Alias;
                if (StringManipulationManager.GetMaxCardinality(l_Attr.SupplierEnd.Cardinality).Equals("*"))
                {
                    l_MyAttr.Max = "*";
                    string min = l_Attr.SupplierEnd.Cardinality.Substring(0, 1);
                    l_MyAttr.Min = min;
                    // pair of attributes on same connector for Add and Remove Ref
                    l_MyAttr.onSameConnectorPairAtt = new EAPAttribute(l_Attr.ClientEnd.Role, l_Attr.ClientEnd.Alias);
                }
                else if (StringManipulationManager.GetMaxCardinality(l_Attr.SupplierEnd.Cardinality).Equals("1"))
                {
                    l_MyAttr.Max = "1";
                    l_MyAttr.Min = "1";
                    // pair of attributes on same connector for Add and Remove Ref
                    l_MyAttr.onSameConnectorPairAtt = new EAPAttribute(l_Attr.ClientEnd.Role, l_Attr.ClientEnd.Alias);
                }
                else if (StringManipulationManager.GetMaxCardinality(l_Attr.ClientEnd.Cardinality).Equals("2"))
                {
                    l_MyAttr.Max = "2";
                    l_MyAttr.Min = "0";
                    // pair of attributes on same connector for Add and Remove Ref
                    l_MyAttr.onSameConnectorPairAtt = new EAPAttribute(l_Attr.ClientEnd.Role, l_Attr.ClientEnd.Alias);
                }
                pom = true;
            }
            else
            {
                l_MyAttr.Name = l_Attr.ClientEnd.Role;
                l_MyAttr.Code = l_Attr.ClientEnd.Alias;
                if (StringManipulationManager.GetMaxCardinality(l_Attr.ClientEnd.Cardinality).Equals("*"))
                {
                    l_MyAttr.Max = "*";
                    string min = l_Attr.ClientEnd.Cardinality.Substring(0, 1);
                    l_MyAttr.Min = min;
                    // pair of attributes on same connector for Add and Remove Ref
                    l_MyAttr.onSameConnectorPairAtt = new EAPAttribute(l_Attr.SupplierEnd.Role, l_Attr.SupplierEnd.Alias);
                }
                else if (StringManipulationManager.GetMaxCardinality(l_Attr.ClientEnd.Cardinality).Equals("1"))
                {
                    l_MyAttr.Max = "1";
                    l_MyAttr.Min = "1";
                    // pair of attributes on same connector for Add and Remove Ref
                    l_MyAttr.onSameConnectorPairAtt = new EAPAttribute(l_Attr.SupplierEnd.Role, l_Attr.SupplierEnd.Alias);
                }
                else if (StringManipulationManager.GetMaxCardinality(l_Attr.ClientEnd.Cardinality).Equals("2"))
                {
                    l_MyAttr.Max = "2";
                    l_MyAttr.Min = "0";
                    // pair of attributes on same connector for Add and Remove Ref
                    l_MyAttr.onSameConnectorPairAtt = new EAPAttribute(l_Attr.SupplierEnd.Role, l_Attr.SupplierEnd.Alias);
                }
            }

            if (l_MyAttr.Max == "*")
            {
                if (pom)
                {
                    l_MyAttr.MeasurementType = "List<" + FindClassById(l_Attr.SupplierID, MyModelCopy) + ">";
                }
                else
                {
                    l_MyAttr.MeasurementType = "List<" + FindClassById(l_Attr.ClientID, MyModelCopy) + ">";
                }

                l_MyAttr.IsListOfReferences = true;
            }
            else if (l_MyAttr.Max == "1")
            {
                l_MyAttr.MeasurementType = "long";
                l_MyAttr.IsReference     = true;
            }


            //  FindType(l_Class, l_MyAttr, l_Attr);

            //l_MyAttr.Aggregated = GetAggregated(l_Attr, l_MyAttr);
            //   l_MyAttr.Searchable = GetSearchable(l_Attr, l_MyAttr);
            //  l_MyAttr.Cardinality = GetCardinality(l_Attr, l_MyAttr) == 0 ? null : GetCardinality(l_Attr, l_MyAttr).ToString();

            if (!(l_Class.AddAttribute(l_MyAttr)))
            {
                if (Validate)
                {
                    tw.WriteLine("Attribute Model Code:" + l_Attr.Alias + ",  already exists in Class name: " + l_Class.Name + ". (Look at EAP)");

                    tw.WriteLine("*************************************************************************");
                    tw.WriteLine("\n\n");
                }
            }
        }
        public void CollectClass(EA.Element p_Elem, bool parse, EAPModel model, bool flag)
        {
            if (p_Elem.Name == "LID" || p_Elem.Name == "GID")
            {
                return;
            }

            //     if (!model.Classes.ContainsKey(p_Elem.Name))
            //  {
            EAPClass l_Class       = new EAPClass();
            EAPClass l_ClassParent = new EAPClass();

            l_Class.Name     = p_Elem.Name;
            l_Class.Abstract = p_Elem.Abstract == "0" ? "false" : "true"; // Leaf
            l_Class.Parse    = parse;



            //group
            bool group      = p_Elem.Tag == "Contained";
            bool existClass = false;

            //Description i title
            l_Class.Description = p_Elem.Notes;
            if (l_Class.Description.Split(':').Length > 1)
            {
                l_Class.Title       = l_Class.Description.Split(':')[0];
                l_Class.Description = l_Class.Description.Remove(0, l_Class.Title.Length + 1).Trim();
            }
            else
            {
                l_Class.Title       = "";
                l_Class.Description = l_Class.Description.Trim();
            }

            l_Class.Title       = l_Class.Title.Replace("<b>", "").Replace("</b>", "").Replace("<i>", "").Replace("</i>", "").Trim();
            l_Class.Description = l_Class.Description.Replace("<b>", "").Replace("</b>", "").Replace("<i>", "").Replace("</i>", "").Trim();

            l_Class.Code = p_Elem.Alias; // ModelCode


            foreach (EA.Element l_Parent in p_Elem.BaseClasses)
            {
                if (l_Parent.Type == "Class")
                {
                    l_Class.Parent = l_Parent.Name;

                    if (group)
                    {
                        existClass = model.Classes.ContainsKey(l_Parent.Name);

                        if (existClass)
                        {
                            l_ClassParent = (EAPClass)model.Classes[l_Parent.Name];
                        }
                        else
                        {
                            model.GroupClasNames.Add(p_Elem.Name, l_Parent.Name);
                        }
                    }
                }
            }

            if (!group || !existClass)
            {
                //collect attributes
                if (flag == false)
                {
                    AddAttributesInClass(model, p_Elem, (EAPClass)model.Classes[l_Class.Name], group);
                }
            }
            else
            {
                if (flag == false)
                {
                    AddAttributesInClass(model, p_Elem, l_ClassParent, group, l_Class);
                }
            }
            if (!model.Classes.ContainsKey(p_Elem.Name))
            {
                model.Classes.Add(l_Class.Name, l_Class);
            }


            //import inner classes attributes as atributes
            if (!group)
            {
                foreach (EA.Element el_Class in p_Elem.Elements)
                {
                    CollectClass(el_Class, parse, model, flag);
                }
            }
        }
        public void DoPackage(EA.Package MyPackage, bool domain, EAPModel model, bool flag)
        {
            bool parse = true;

            try
            {
                parse = (int)Convert.ToDouble(MyPackage.Version) != 1 ? false : true;
            }
            catch
            {
                parse = false;
            }

            if (MyPackage.Name == "Domain")
            {
                domain = true;
            }

            //string packageAlias = MyPackage.Alias;
            //if (packageAlias != null && packageAlias != "")
            //{
            //    string nameXml = System.IO.Path.GetFileNameWithoutExtension(nameModel);
            //    string path = nameModel.Replace(nameXml, packageAlias);
            //    model = new EAPModel(path);
            //    eapModels.Models.Add(model);
            //}
            //else if (model == null)
            //    return;

            MyModelCopy = MyPackage;
            if (flag)
            {
                for (short i = 0; i < MyPackage.Elements.Count; i++)
                {
                    EA.Element MyElem = (EA.Element)MyPackage.Elements.GetAt(i);

                    if (MyElem.MetaType.Equals("Enumeration", StringComparison.InvariantCultureIgnoreCase))
                    {
                        CollectEnums(MyElem, parse, model);
                    }

                    if (MyElem.Type.Equals("Class", StringComparison.InvariantCultureIgnoreCase))
                    {
                        CollectClass(MyElem, parse, model, flag);
                    }
                }
            }
            else
            {
                for (short i = 0; i < MyPackage.Elements.Count; i++)
                {
                    EA.Element MyElem = (EA.Element)MyPackage.Elements.GetAt(i);
                    if (MyElem.Type.Equals("Class", StringComparison.InvariantCultureIgnoreCase))
                    {
                        CollectClass(MyElem, parse, model, flag);
                    }
                }
            }

            if (!parse)
            {
                if (Validate)
                {
                    tw.WriteLine("Package name:" + MyPackage.Name + ",  - not processed.");

                    tw.WriteLine("*************************************************************************");
                    tw.WriteLine("\n\n");
                }
            }

            for (short iPackage = 0; iPackage < MyPackage.Packages.Count; iPackage++)
            {
                DoPackage((EA.Package)MyPackage.Packages.GetAt(iPackage), domain, model, flag);
            }
        }
Пример #11
0
        private CodeCompileUnit CreateClass(EAPModel model, EAPClass classPom, bool flagDb)
        {
            CodeCompileUnit unit = new CodeCompileUnit();
            //namespace
            CodeNamespace nameSpace = new CodeNamespace("Default_Namespace");

            unit.Namespaces.Add(nameSpace);
            //namespace imports
            nameSpace.Imports.Add(new CodeNamespaceImport("System"));

            CodeTypeDeclaration file = new CodeTypeDeclaration();

            file.IsClass        = true;
            file.Name           = classPom.Name;
            file.TypeAttributes = TypeAttributes.Public;
            file.Attributes     = MemberAttributes.Public;

            if (classPom.Parent != null)
            {
                file.BaseTypes.Add(new CodeTypeReference(classPom.Parent));

                nameSpace.Imports.Add(new CodeNamespaceImport("Default_Namespace"));
            }
            else
            {
                //if class doesn't have a parent,
                //it should extend IDClass as the root of hierarhy - for rdf:ID
                file.BaseTypes.Add(new CodeTypeReference("IDClass"));
                nameSpace.Imports.Add(new CodeNamespaceImport("Default_Namespace"));
            }

            if (!string.IsNullOrEmpty(classPom.Description))
            {
                file.Comments.Add(new CodeCommentStatement(classPom.Description, true));
            }
            //Generate constructor without param
            CodeConstructor baseStringConstructorSimple = new CodeConstructor();

            baseStringConstructorSimple.Attributes = MemberAttributes.Public;

            //Gererating constuctor with param
            CodeConstructor baseStringConstructor = new CodeConstructor();

            baseStringConstructor.Attributes = MemberAttributes.Public;
            baseStringConstructor.BaseConstructorArgs.Add(new CodeVariableReferenceExpression("globalId"));
            baseStringConstructor.Parameters.Add(new CodeParameterDeclarationExpression("System.Int64", "globalId"));

            file.Members.Add(baseStringConstructorSimple);
            file.Members.Add(baseStringConstructor);

            List <EAPAttribute> attributes = new List <EAPAttribute>();


            if (classPom.Attributes.Count > 0)
            {
                foreach (EAPAttribute attribut in classPom.Attributes)
                {
                    CodeMemberField att = null;
                    if (attribut.MeasurementType != "")
                    {
                        if (Enum.IsDefined(typeof(MeasurementType), attribut.MeasurementType.ToUpper()) || attribut.MeasurementType.Contains("List<") || attribut.TypeCode.Equals("Enum") ||
                            attribut.TypeCode.Equals("Class"))
                        {
                            if (attribut.Max == "*")
                            {
                                nameSpace.Imports.Add(new CodeNamespaceImport("System.Collections.Generic"));

                                string fieldName = attribut.Name;

                                att                = new CodeMemberField(new CodeTypeReference("List", new CodeTypeReference[] { new CodeTypeReference(attribut.MeasurementType.Split('<', '>')[1]) }), fieldName);
                                att.Attributes     = MemberAttributes.Private | MemberAttributes.Final;
                                att.InitExpression = new CodeObjectCreateExpression(new CodeTypeReference("List", new CodeTypeReference[] { new CodeTypeReference(attribut.MeasurementType.Split('<', '>')[1]) }));
                                if (!string.IsNullOrEmpty(attribut.Description))
                                {
                                    att.Comments.Add(new CodeCommentStatement(attribut.Description, true));
                                }
                                file.Members.Add(att);

                                CreatePropertyForField(file, att, true, true);
                            }
                            else
                            {
                                string fieldName = attribut.Name;
                                string type      = attribut.MeasurementType;
                                // att = new CodeMemberField(StringManipulationManager.GetSystemType(type), fieldName);
                                if (attribut.TypeCode != null && attribut.TypeCode != "")
                                {
                                    if (attribut.TypeCode.Equals("Enum"))
                                    {
                                        att = new CodeMemberField(attribut.MeasurementType, fieldName);
                                    }
                                    if (attribut.TypeCode.Equals("Class"))
                                    {
                                        att = new CodeMemberField(attribut.MeasurementType, fieldName);
                                    }
                                }
                                else
                                {
                                    att = new CodeMemberField(StringManipulationManager.GetSystemType(type), fieldName);
                                }

                                att.Attributes = MemberAttributes.Private | MemberAttributes.Final;
                                if (!string.IsNullOrEmpty(attribut.Description))
                                {
                                    att.Comments.Add(new CodeCommentStatement(attribut.Description, true));
                                }
                                if (type.Equals("long") && attribut.IsReference == true)
                                {
                                    att.InitExpression = new CodeSnippetExpression("0");
                                }
                                file.Members.Add(att);

                                //property for the field
                                CreatePropertyForField(file, attribut, att, true, true);
                            }
                        }
                        else
                        {
                            continue;
                        }
                    }
                }

                if (IsDbSelected && flagDb == false)
                {
                    GenerateIDForDb(file, classPom.Name);   // generate id if db checbox is selected
                }
                if (flagDb)
                {
                    GenerateEqualsMethod(file, classPom);
                    GenerateHashCodeMethod(file, classPom);
                    GenerateGetProperty(file, classPom);
                    GenerateHasPropertyMethod(file, classPom);
                    GenerateSetPropertyMethod(file, classPom);
                    GenerateIsReferencedProperty(file, classPom);
                    GenerateGetReferencesMethod(file, classPom);
                    GenerateAddreferenceMethod(file, classPom);
                    GenerateRemoveReferencMethod(file, classPom);
                }
            }
            else
            {
                if (flagDb)
                {
                    GenerateEqualsMethod(file, classPom);
                    GenerateHashCodeMethod(file, classPom);
                    GenerateGetProperty(file, classPom);
                    GenerateHasPropertyMethod(file, classPom);
                    GenerateSetPropertyMethod(file, classPom);
                    GenerateGetReferencesMethod(file, classPom);
                }
            }

            nameSpace.Types.Add(file);
            return(unit);
        }