private void FetchEnumActivities()
        {
            foreach (Row r in m_Data.GetTransitionTable().GetRows())
            {
                if (!m_Data.GetEnumActivities().Contains(r.GetCurrentActivity().GetName()))
                {
                    m_Data.GetEnumActivities().Add(r.GetCurrentActivity().GetName());
                }

                if (!m_Data.GetEnumActivities().Contains(r.GetNextActivity().GetName()))
                {
                    m_Data.GetEnumActivities().Add(r.GetNextActivity().GetName());
                }
            }
        }
        void IPlugin.ProcessRepository(EA.Repository repository)
        {
            Log.Info("");

            string targetPath = GetTargetPath();

            StateGenSync.Types.StateMachineData data = m_IRepositoryHandler.HandleRepository(repository);

            StateGenSync.Types.Product iActionHandler = m_IInterfaceBuilder.CreateProduct(data.GetActions(), FILENAME_IACTIONHANDLER);

            StateGenSync.Types.Product iConditionHandler = m_IInterfaceBuilder.CreateProduct(data.GetGuards(), FILENAME_ICONDITIONHANDLER);

            StateGenSync.Types.Product iFsm = m_IInterfaceBuilder.CreateProduct(data.GetFsm().GetMethods(), data.GetFsm().GetInferfaceName() + ".hpp");

            StateGenSync.Types.Product fsmData = m_IFsmDataBuilder.CreateProduct(data, FILENAME_FSMDATA);

            StateGenSync.Types.Product events = m_IEnumBuilder.CreateProduct(data.GetEnumEvents(), FILENAME_EVENTS);

            StateGenSync.Types.Product activities = m_IEnumBuilder.CreateProduct(data.GetEnumActivities(), FILENAME_ACTIVITIES);

            StateGenSync.Types.Product conditionHandlerHeader = m_IClassHeaderBuilder.CreateProduct(data.GetGuards(), FILENAME_CONDITIONHANDLER, FILENAME_ICONDITIONHANDLER);

            StateGenSync.Types.Product actionHandlerHeader = m_IClassHeaderBuilder.CreateProduct(data.GetActions(), FILENAME_ACTIONHANDLER, FILENAME_IACTIONHANDLER);

            StateGenSync.Types.Product conditionHandlerImpl = m_IClassImplBuilder.CreateProduct(data.GetGuards(), FILENAME_CONDITIONHANDLERIMPL);

            StateGenSync.Types.Product actionHandlerImpl = m_IClassImplBuilder.CreateProduct(data.GetActions(), FILENAME_ACTIONHANDLERIMPL);

            StateGenSync.Types.Product fsmHandlerHeader = m_IFsmHandlerHeaderBuilder.CreateProduct(data.GetFsm().GetMethods(), FILENAME_FSMHANDLERHEADER);

            StateGenSync.Types.Product fsmHandlerImpl = m_IFsmHandlerImplBuilder.CreateProduct(FILENAME_FSMHANDLERIMPL);

            StateGenSync.Types.Product transitionRow = m_ITransitionRowBuilder.CreateProduct(FILENAME_TRANSITIONROW);

            m_IFileWriter.WriteProduct(targetPath, iActionHandler);
            m_IFileWriter.WriteProduct(targetPath, iConditionHandler);
            m_IFileWriter.WriteProduct(targetPath, iFsm);
            m_IFileWriter.WriteProduct(targetPath, fsmData);
            m_IFileWriter.WriteProduct(targetPath, events);
            m_IFileWriter.WriteProduct(targetPath, activities);
            m_IFileWriter.WriteProduct(targetPath, conditionHandlerHeader);
            m_IFileWriter.WriteProduct(targetPath, actionHandlerHeader);
            m_IFileWriter.WriteProduct(targetPath, conditionHandlerImpl);
            m_IFileWriter.WriteProduct(targetPath, actionHandlerImpl);
            m_IFileWriter.WriteProduct(targetPath, fsmHandlerHeader);
            m_IFileWriter.WriteProduct(targetPath, fsmHandlerImpl);
            m_IFileWriter.WriteProduct(targetPath, transitionRow);

            MessageBox.Show("Finish");
        }