protected IList <AbstractComponentFunctorParameter> loadAbstractComponentFunctorParameters(AbstractComponentFunctor c_)
        {
            IList <AbstractComponentFunctorParameter> pars = new List <AbstractComponentFunctorParameter>();

            if (parameter != null)
            {
                foreach (ParameterType parameter_ in parameter)
                {
                    Console.WriteLine("loadAbstractComponentFunctorParameters : PARAMETER " + parameter_.componentRef + ":" + parameter_.formFieldId);
                    AbstractComponentFunctorParameter p = new AbstractComponentFunctorParameter();

                    p.Id_abstract  = c_.Id_abstract;
                    p.Id_parameter = parameter_.formFieldId;

                    ComponentInUseType cBound = lookForInnerComponent(parameter_.componentRef);
                    AbstractComponentFunctorApplication cApp = newAbstractComponentFunctorApplication(cBound);
                    if (cApp == null)
                    {
                        throw new Exception("DEPLOY ERROR: Unresolved Dependency for base component (context parameter bound) : " + cBound.name);
                    }

                    p.Bounds_of = cApp.Id_functor_app;
                    p.Variance  = parameter_.variance;

                    if (br.ufc.pargo.hpe.backend.DGAC.BackEnd.acfpdao.retrieve(p.Id_abstract, p.Id_parameter) == null)
                    {
                        br.ufc.pargo.hpe.backend.DGAC.BackEnd.acfpdao.insert(p);
                    }

                    pars.Add(p);
                }
            }
            Console.WriteLine("loadAbstractComponentFunctorParameters : END");
            return(pars);
        }
        private InterfaceSignature createSliceAccessorType(Interface i, out IDictionary <string, int> par_order)
        {
            par_order = new Dictionary <string, int>();
            IDictionary <string, string> open_pars   = new Dictionary <string, string>();
            IDictionary <string, int>    closed_pars = new Dictionary <string, int>();
            IList <InterfaceParameter>   ip_list     = BackEnd.ipdao.list(i.Id_abstract, i.Id_interface);
//			string[] par_order = new string[ip_list.Count];
            int k = 0;

            foreach (InterfaceParameter ip in ip_list)
            {
                open_pars.Add(ip.ParId, ip.VarId);
                par_order.Add(ip.ParId, k++);
            }

            InterfaceSignature isig = calculateParameters(i, closed_pars, open_pars);

            IDictionary <string, InterfaceSignature> m = new Dictionary <string, InterfaceSignature>();

            foreach (KeyValuePair <string, InterfaceSignature> par in isig.parameters)
            {
                string             par_id = par.Key;
                InterfaceSignature iPar   = par.Value;

                AbstractComponentFunctorParameter   acfp = BackEnd.acfpdao.retrieve(i.Id_abstract, par_id);
                AbstractComponentFunctorApplication acfa = BackEnd.acfadao.retrieve(acfp.Bounds_of);
                AbstractComponentFunctor            acf  = BackEnd.acfdao.retrieve(acfa.Id_abstract);
                Interface i_ = BackEnd.idao.retrieveTop(acfa.Id_abstract, iPar.the_interface.Id_interface_super_top);

                iPar.package_path  = acf.Library_path;
                iPar.the_interface = i_;
                m.Add(par_id, iPar);
            }

            foreach (KeyValuePair <string, InterfaceSignature> par in m)
            {
                isig.parameters.Remove(par.Key);
                isig.parameters.Add(par.Key, par.Value);
            }


            return(isig);
        }