예제 #1
0
 public Checker(CyPhyGUIs.IInterpreterMainParameters parameters, CyPhyGUIs.GMELogger logger, IMgaTraceability traceability, CyPhyTypeFactory factory)
 {
     this.mainParameters = parameters;
     this.Logger = logger;
     this.Traceability = traceability;
     this.Factory = factory;
 }
예제 #2
0
        /// <summary>
        /// Checks all rules from this dll.
        /// </summary>
        /// <returns>True if there are no errors, otherwise false</returns>
        public bool Check(IMgaTraceability traceability)
        {
            bool result = true;

            // check current context
            if (this.mainParameters.CurrentFCO == null ||
                this.mainParameters.CurrentFCO.Meta.Name != typeof(ISIS.GME.Dsml.CyPhyML.Interfaces.TestBenchSuite).Name)
            {
                this.Logger.WriteError("A TestBenchSuite must be opened.");
                result      = false;
                NbrOfErrors = 1;
                return(result);
            }

            // reset the results dictionary
            this.Results = new Dictionary <RuleDescriptor, List <RuleFeedbackBase> >();

            // Create a checker object
            DesignConsistencyChecker.Framework.Checker dccChecker =
                new DesignConsistencyChecker.Framework.Checker(this.mainParameters.CurrentFCO, this.mainParameters.Project, traceability, this.Logger);

            dccChecker.RegisterRulesForTypes(new Type[] { typeof(CyPhySoT.Rules.Global) }, "CyPhySoT");

            NbrOfErrors   = 0;
            NbrOfWarnings = 0;
            // get all rules and check them

            List <RuleFeedbackBase> ruleFeedbacks;
            List <CheckerFeedback>  checkerFeedbacks;

            dccChecker.CheckRules(dccChecker.GetRegisteredRules, out ruleFeedbacks, out checkerFeedbacks);
            if (ruleFeedbacks.Any(x => x.FeedbackType == FeedbackTypes.Error))
            {
                result = false;
            }
            NbrOfErrors   += ruleFeedbacks.Where(x => x.FeedbackType == FeedbackTypes.Error).Count();
            NbrOfWarnings += ruleFeedbacks.Where(x => x.FeedbackType == FeedbackTypes.Warning).Count();

            return(result);
        }
예제 #3
0
        /// <summary>
        /// Checks all rules from this dll.
        /// </summary>
        /// <returns>True if there are no errors, otherwise false</returns>
        public bool Check(IMgaTraceability traceability)
        {
            bool result = true;

            // check current context
            if (this.mainParameters.CurrentFCO == null ||
                this.mainParameters.CurrentFCO.Meta.Name != typeof(ISIS.GME.Dsml.CyPhyML.Interfaces.TestBenchSuite).Name)
            {
                this.Logger.WriteError("A TestBenchSuite must be opened.");
                result = false;
                NbrOfErrors = 1;
                return result;
            }

            // reset the results dictionary
            this.Results = new Dictionary<RuleDescriptor, List<RuleFeedbackBase>>();

            // Create a checker object
            DesignConsistencyChecker.Framework.Checker dccChecker =
                new DesignConsistencyChecker.Framework.Checker(this.mainParameters.CurrentFCO, this.mainParameters.Project, traceability, this.Logger);

            dccChecker.RegisterRulesForTypes(new Type[] { typeof(CyPhySoT.Rules.Global) }, "CyPhySoT");

            NbrOfErrors = 0;
            NbrOfWarnings = 0;
            // get all rules and check them

            List<RuleFeedbackBase> ruleFeedbacks;
            List<CheckerFeedback> checkerFeedbacks;
            dccChecker.CheckRules(dccChecker.GetRegisteredRules, out ruleFeedbacks, out checkerFeedbacks);
            if (ruleFeedbacks.Any(x => x.FeedbackType == FeedbackTypes.Error))
            {
                result = false;
            }
            NbrOfErrors += ruleFeedbacks.Where(x => x.FeedbackType == FeedbackTypes.Error).Count();
            NbrOfWarnings += ruleFeedbacks.Where(x => x.FeedbackType == FeedbackTypes.Warning).Count();

            return result;
        }
예제 #4
0
        public Unroller(MgaProject proj, IMgaTraceability Traceability = null, GMELogger Logger = null)
        {
            this.ConnectorsProcessed          = new List <MgaModel>();
            this.ConnectorToStandalonePortMap = new Dictionary <MgaModel, List <PortWrapper> >();

            SupportedPortTypesMeta = new HashSet <int>();
            foreach (var kind in SupportedPortTypes)
            {
                SupportedPortTypesMeta.Add(proj.RootMeta.RootFolder.DefinedFCOByName[kind, true].MetaRef);
            }

            MetaRef = new Dictionary <String, int>();
            MetaRef.Add("Component", proj.RootMeta.RootFolder.DefinedFCOByName["Component", true].MetaRef);
            MetaRef.Add("ComponentAssembly", proj.RootMeta.RootFolder.DefinedFCOByName["ComponentAssembly", true].MetaRef);
            MetaRef.Add("Connector", proj.RootMeta.RootFolder.DefinedFCOByName["Connector", true].MetaRef);
            MetaRef.Add("TestBench", proj.RootMeta.RootFolder.DefinedFCOByName["TestBench", true].MetaRef);
            MetaRef.Add("TestComponent", proj.RootMeta.RootFolder.DefinedFCOByName["TestComponent", true].MetaRef);

            if (Logger == null)
            {
                this.Logger = new GMELogger(proj, "ConnectorUnroller");
                myLogger    = true;
                this.Logger.LoggingLevel = SmartLogger.MessageType_enum.Warning;
            }
            else
            {
                this.Logger = Logger;
                myLogger    = false;
            }

            if (Traceability == null)
            {
                this.Traceability = new META.MgaTraceability();
            }
            else
            {
                this.Traceability = Traceability;
            }
        }
        public Unroller(MgaProject proj, IMgaTraceability Traceability = null, GMELogger Logger = null)
        {
            this.ConnectorsProcessed = new List<MgaModel>();
            this.ConnectorToStandalonePortMap = new Dictionary<MgaModel, List<PortWrapper>>();

            SupportedPortTypesMeta = new HashSet<int>();
            foreach (var kind in SupportedPortTypes)
            {
                SupportedPortTypesMeta.Add(proj.RootMeta.RootFolder.DefinedFCOByName[kind, true].MetaRef);
            }

            MetaRef = new Dictionary<String, int>();
            MetaRef.Add("Component", proj.RootMeta.RootFolder.DefinedFCOByName["Component", true].MetaRef);
            MetaRef.Add("ComponentAssembly", proj.RootMeta.RootFolder.DefinedFCOByName["ComponentAssembly", true].MetaRef);
            MetaRef.Add("Connector", proj.RootMeta.RootFolder.DefinedFCOByName["Connector", true].MetaRef);
            MetaRef.Add("TestBench", proj.RootMeta.RootFolder.DefinedFCOByName["TestBench", true].MetaRef);
            MetaRef.Add("TestComponent", proj.RootMeta.RootFolder.DefinedFCOByName["TestComponent", true].MetaRef);

            if (Logger == null)
            {
                this.Logger = new GMELogger(proj, "ConnectorUnroller");
                myLogger = true;
            }
            else
            {
                this.Logger = Logger;
                myLogger = false;
            }

            if (Traceability == null)
            {
                this.Traceability = new META.MgaTraceability();
            }
            else
            {
                this.Traceability = Traceability;
            }
        }
예제 #6
0
        public Checker(MgaFCO model, MgaProject project, IMgaTraceability traceability = null, CyPhyGUIs.GMELogger logger = null)
        {
            Model   = model;
            Project = project;
            if (logger != null)
            {
                this.Logger = logger;
            }
            else
            {
                GMEConsole = GMEConsole.CreateFromProject(project);
            }

            registeredRules = new ConcurrentDictionary <string, List <RuleDescriptor> >();

            if (traceability == null)
            {
                this.Traceability = new META.MgaTraceability();
            }
            else
            {
                this.Traceability = traceability;
            }
        }
예제 #7
0
        public Checker(MgaFCO model, MgaProject project, IMgaTraceability traceability = null, CyPhyGUIs.GMELogger logger = null)
        {
            Model = model;
            Project = project;
            if (logger != null)
            {
                this.Logger = logger;
            }
            else
            {
                GMEConsole = GMEConsole.CreateFromProject(project);
            }

            registeredRules = new ConcurrentDictionary<string, List<RuleDescriptor>>();

            if (traceability == null)
            {
                this.Traceability = new META.MgaTraceability();
            }
            else
            {
                this.Traceability = traceability;
            }
        }
예제 #8
0
 public Checker(CyPhyGUIs.IInterpreterMainParameters parameters, CyPhyGUIs.SmartLogger logger, IMgaTraceability traceability)
 {
     this.Logger         = logger;
     this.mainParameters = parameters;
     this.Traceability   = traceability;
 }
예제 #9
0
 public Checker(CyPhyGUIs.IInterpreterMainParameters parameters, CyPhyGUIs.GMELogger logger, IMgaTraceability traceability, CyPhyTypeFactory factory)
 {
     this.mainParameters = parameters;
     this.Logger         = logger;
     this.Traceability   = traceability;
     this.Factory        = factory;
 }