public override int logic(CertifierOrchestrationElement element) { int max = -1, ret = CertifierConstants.NORMAL_SIGNAL; if (typeof(RepeatOper).IsInstanceOfType(element.getElement())) { RepeatOper iterate_oper = (RepeatOper)element.getElement(); // every children must run MAX max = iterate_oper.getMax(); } children: for (int i = 0; i < max; i++) { // inside children for (int j = element.getChildren().Count - 1; j >= 0; j--) { CertifierOrchestrationElement child = element.getChildren()[j]; /*if(child.getOperation().Equals(CertifierOrchestrationOperation.BREAKOPER)){ * break children; * }else if(child.getOperation().Equals(CertifierOrchestrationOperation.CONTINUEOPER)){ * continue children; * }*/ ret = child.run(); if (ret == CertifierConstants.BREAK_SIGNAL) { CertifierConsoleLogger.write("BREAK Operation was found. Breaking inner iterate."); goto _break; } if (ret == CertifierConstants.CONTINUE_SIGNAL) { CertifierConsoleLogger.write("CONTINUE Operation was found. Going back to the beginning of iterate."); goto children; } /*if( ret == CertifierConstants.RETURN_CERTIFIED_SIGNAL || ret == CertifierConstants.RETURN_NOT_CERTIFIED_SIGNAL){ * CertifierConsoleLogger.write("RETURN Operation was found. Stopping certification process and returning."); * * return ret; * * * }*/ } } _break : return(CertifierConstants.NORMAL_SIGNAL); }
public override int logic(CertifierOrchestrationElement element) { int ret = CertifierConstants.NORMAL_SIGNAL; CertifierConsoleLogger.write("STARTING SEQUENCE TASKS"); for (int i = element.getChildren().Count - 1; i >= 0; i--) { CertifierOrchestrationElement child = element.getChildren()[i]; ret = child.run(); if (ret > CertifierConstants.NORMAL_SIGNAL) /*=CertifierConstants.BREAK_SIGNAL || * ret==CertifierConstants.CONTINUE_SIGNAL ||ret==CertifierConstants.RETURN_CERTIFIED ||ret==CertifierConstants.RETURN_NOT_CERTIFIED){ */ { CertifierConsoleLogger.write("Signal found: " + ret + ". Stopping sequence execution."); break; } } CertifierConsoleLogger.write("ENDED SEQUENCE TASKS"); return(ret); }
public override int logic(CertifierOrchestrationElement element) { int ret = CertifierConstants.NORMAL_SIGNAL; CertifierConsoleLogger.write("STARTING SWITCH TASK"); //ChoiceOperComplexType choice_oper = (ChoiceOperComplexType)element.getElement(); for (int i = element.getChildren().Count - 1; i >= 0; i--) { CertifierOrchestrationElement select = element.getChildren()[i]; //System.out.println("Size " + element.getChildren().Count); switchoperComplexTypeChoice choice_oper = (switchoperComplexTypeChoice)select.getElement(); String condition = choice_oper.condition; CertifierConsoleLogger.write("Condition: " + condition); //navegar no select //Integer x = 0; //String teste = "x == 0"; //Certifier.variablesTryAdd(x,x); // System.out.println(x.toString()); condition.Replace("<", "<"); condition.Replace(">", ">"); condition.Replace(""", "\""); condition.Replace("&", "&"); condition.Replace("'", "\'"); /*if (Certifier.formal_properties.get ("mProjExecMPI1", "no deadlock")) { * * Console.WriteLine ("no deadlock true"); * }*/ //reg.Add.RegisterType ("C4Impl", C4Impl); var p = new CompiledExpression(condition) { TypeRegistry = Certifier.variables }; //p.Parse(); p.Compile(); //Console.WriteLine("Result: {0}", p.Eval()); CertifierConsoleLogger.write("Condition evaluated: " + p.Eval()); //System.out.println(cond.booleanValue()); //System.out.println("Proved vc percent: " + Certifier.provedVCPercent); if ((bool)p.Eval()) { //if(true)){ CertifierOrchestrationElement child = select.getChildren()[0]; ret = child.run(); //System.out.println("select" + ret); break; } } CertifierConsoleLogger.write("ENDED SWITCH TASK"); return(ret); }