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);
        }
示例#2
0
        public void StartTest()
        {
            string progId = "EA.Repository";
            Type   type   = Type.GetTypeFromProgID(progId);

            EAAPI.Repository repository = Activator.CreateInstance(type) as EAAPI.Repository;

            try
            {
                string fileName = "TestModel1.eap";

                bool openResult = repository.OpenFile(AssemblyDirectory + "/TestData/" + fileName);

                // root package guid: {45A143E0-D43A-4f51-ACA6-FF695EEE3256}

                if (openResult)
                {
                    Console.WriteLine("Model open");

                    //EAAPI.Package rootModelPackage = repository.GetPackageByGuid("{45A143E0-D43A-4f51-ACA6-FF695EEE3256}");

                    EAAPI.Diagram diagram = repository.GetDiagramByGuid("{BF30DD09-E13E-451b-B210-786F93A74936}") as EAAPI.Diagram;

                    SpecIF.DataModels.SpecIF specIF;

                    EaUmlToSpecIfConverter converter;

                    ISpecIfMetadataReader metadataReader = new SpecIfFileMetadataReader("d:\\work\\github\\SpecIF\\classDefinitions");

                    converter = new EaUmlToSpecIfConverter(repository, metadataReader);

                    Resource resource = converter.ConvertDiagram(diagram);

                    //specIF = converter.ConvertModelToSpecIF(rootModelPackage);


                    //SpecIfFileReaderWriter.SaveSpecIfToFile(specIF, @"D:\speciftest\TestModel1.specif");

                    Console.WriteLine("Finished");
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
            }
            finally
            {
                //Console.ReadLine();
                repository.Exit();
            }
        }
示例#3
0
        //Open all of the .eap file and load them into a json text file for upcoming sessions to use.
        public static List <EA.Repository> ParseEAProjects()
        {
            //Get the list of EA project files
            List <string> strListOfProjects = new List <string>();

            strListOfProjects = GetListOfProjects();
            List <EA.Repository> ListOfRepositories = new List <Repository>();

            foreach (string strFilename in strListOfProjects)
            {
                try
                {
                    EA.Repository m_Repository = new EA.Repository();
                    m_Repository.OpenFile(strFilename);
                    ListOfRepositories.Add(m_Repository);
                }

                catch (Exception e)
                {
                    string message = e.Message;
                }
            }



            return(ListOfRepositories);

            //Now let's store them for later use.
            //Create a json string
            // var EAjson = new JavaScriptSerializer().Serialize(ListOfRepositories);



            //If it exists, wipe it.
            // if (System.IO.File.Exists(pathForEAObject))
            // {
            //     System.IO.File.WriteAllText(pathForEAObject, string.Empty);
            //  }

            //Write JSON to file
            // System.IO.File.WriteAllText(pathForEAObject, EAjson.ToString());
        }
 public void OpenRepository(String repositoryName)
 {
     eaRepository = new Repository();
     eaRepository.OpenFile(repositoryName);
 }
示例#5
0
 public void OpenEARepository()
 {
     eaRepo = new EAAPI.RepositoryClass();
     eaRepo.OpenFile(diagramConfig.Configuration.EARepository);
 }