/// <summary> /// Activates the rules in the dictionary until stabilisation /// </summary> public void Cycle() { try { DataDictionary.Generated.ControllersManager.NamableController.DesactivateNotification(); LastActivationTime = Time; Utils.ModelElement.ErrorCount = 0; foreach (Generated.acceptor.RulePriority priority in PRIORITIES_ORDER) { // Clears the cache of functions FunctionCacheCleaner.ClearCaches(); // Activates the processing engine HashSet <Activation> activations = new HashSet <Activation>(); foreach (DataDictionary.Dictionary dictionary in EFSSystem.Dictionaries) { foreach (DataDictionary.Types.NameSpace nameSpace in dictionary.NameSpaces) { SetupNameSpaceActivations(priority, activations, nameSpace); } } ApplyActivations(activations); } // Clears the cache of functions FunctionCacheCleaner.ClearCaches(); if (Utils.ModelElement.ErrorCount > 0) { SubStep subStep = CurrentSubStep(); if (subStep != null) { subStep.AddError("Errors were raised while evaluating this sub step. See model view for more informations"); } else { Step step = CurrentStep(); if (step != null) { step.AddError("Errors were raised while evaluating this step. See model view for more informations"); } else { TestCase testCase = CurrentTestCase(); if (testCase != null) { testCase.AddError("Errors were raised while evaluating this test case. See model view for more informations"); } else { SubSequence.AddError("Errors were raised while evaluating this sub sequence. See model view for more informations"); } } } } } finally { DataDictionary.Generated.ControllersManager.NamableController.ActivateNotification(); } EventTimeLine.CurrentTime += Step; }