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);
        }
示例#2
0
        public override int logic(CertifierOrchestrationElement element)
        {
            String handle_id = null;
            String port_id   = null;
            String action_id = null;

            String comp_id     = null;  //action_id or component_id
            String action_oper = null;

            if (typeof(XMLCertifierPrimOper).IsInstanceOfType(element.getElement()))
            {
                XMLCertifierPrimOper start_oper = (XMLCertifierPrimOper)element.getElement();
                handle_id = start_oper.handle_id;
            }


            for (int i = element.getChildren().Count - 1; i >= 0; i--)
            {
                CertifierOrchestrationElement child = element.getChildren()[i];
                if (typeof(XMLCertifierAction).IsInstanceOfType(child.getElement()))
                {
                    XMLCertifierAction certifier_action = (XMLCertifierAction)child.getElement();
                    comp_id   = certifier_action.comp_id;
                    port_id   = certifier_action.port_id;
                    action_id = certifier_action.action_id;
                    //action_oper = certifier_action..value();
                    action_oper = certifier_action.action.ToString();
                }
            }

            if (action_oper.Equals("instantiate"))
            {
                this.instantiateOper(comp_id, handle_id);
            }
            else if (action_oper.Equals("compute"))
            {
                this.computeOper(comp_id, port_id, action_id, handle_id);
            }    /*else if(action_oper.Equals("compute")){
                  *     this.computeOper(subject_id);
                  * }*/
            return(CertifierConstants.NORMAL_SIGNAL);
        }
        public override int logic(CertifierOrchestrationElement element)
        {
            Console.WriteLine(" element children 0 operation " + element.getElement().GetType());

            XMLCertifierAction action      = (XMLCertifierAction)element.getElement();
            String             port_id     = null; // action_id or component_id
            String             action_id   = null; // action_id or component_id
            String             action_oper = null;
            string             comp_id     = null;

            port_id   = action.port_id;
            action_id = action.action_id;

            //action_oper = action..getAction().value();
            action_oper = action.action.ToString();

            /*Console.WriteLine ("passei aqui logic perform action " + action.valueField + action.action_id +
             *      action.action.ToString() + action.oper_name + action.action_idField1 + action.actionField.ToString() +
             *      action.comp_id + action.comp_idField1
             + " action action " + action.action.ToString());*/


            comp_id = action.comp_id;
            Console.WriteLine(" LogicPerformOper port id " + port_id + "action id " + action_id
                              + " comp id " +
                              comp_id + " action oper " +
                              action_oper);

            if (action_oper.Equals("instantiate"))
            {
                this.instatiateOper(comp_id);
            }
            else if (action_oper.Equals("compute"))
            {
                this.computeOper(comp_id, port_id, action_id);
            }     /*else if (action_oper.Equals("compute")) {
                   *    this.computeOper(subject_id);
                   * }*/
            return(CertifierConstants.NORMAL_SIGNAL);
        }
        public override int logic(CertifierOrchestrationElement element)
        {
            int ret = CertifierConstants.NORMAL_SIGNAL;

            CertifierConsoleLogger.write("STARTING SELECT TASK");

            selectoperComplexType select_oper = (selectoperComplexType)element.getElement();
            String chosen = select_oper.chosen;

            for (int i = element.getChildren().Count - 1; i >= 0; i--)
            {
                CertifierOrchestrationElement select      = element.getChildren()[i];
                selectoperComplexTypeChoice   choice_oper = (selectoperComplexTypeChoice)select.getElement();
                String port_id   = choice_oper.port_id;
                String action_id = choice_oper.action_id;
                //navegar no select
                if (string.Equals(action_id, chosen, StringComparison.OrdinalIgnoreCase))
                {
                    foreach (CertifierOrchestrationElement child in select.getChildren())
                    {
                        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 SELECT TASK");



            return(ret);
        }
示例#5
0
        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("&lt;", "<");
                condition.Replace("&gt;", ">");
                condition.Replace("&quot;", "\"");
                condition.Replace("&amp;", "&");
                condition.Replace("&apos;", "\'");

                /*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);
        }