static void createApplicationComponentAbstractInner(IList <object> body_items, IList <Tuple <string, string, EnvironmentPortType> > bindings_application, ref IList <string> port_names) { int port_count = 0; port_names = new List <string> (); foreach (Tuple <string, string, EnvironmentPortType> binding in bindings_application) { string componentRef = binding.Item1; string port_name = binding.Item2; // search for the type of the component connected to the application through the environment port AbstractComponentFunctor acf = backend.DGAC.BackEnd.acfdao.retrieve_libraryPath(componentRef); // search for the type of the environment port in the inner component. InnerComponent ic = backend.DGAC.BackEnd.icdao.retrieve(acf.Id_abstract, port_name); AbstractComponentFunctor acf_inner = backend.DGAC.BackEnd.acfdao.retrieve(ic.Id_abstract_inner); String library_path = acf_inner.Library_path; InnerComponentType ci = new InnerComponentType(); ci.package = acf_inner.Package; ci.name = acf_inner.Name; ci.localRef = port_name + (port_count++); ci.multiple = false; ci.exposed = true; port_names.Add(ci.localRef); body_items.Add(ci); } }
protected bool isNotInSupply(InnerComponentType c) { if (parameterSupply != null) { foreach (ParameterSupplyType s in parameterSupply) { if (s.cRef.Equals(c.localRef)) { return(false); } } } return(true); }
private bool isNotParameter(InnerComponentType c) { if (this.parameter != null) { foreach (ParameterType s in parameter) { if (s.componentRef.Equals(c.localRef)) { return(false); } } } return(true); }
static void createSystemComponentAbstractInner(string app_name, IList <object> body_items, IDictionary <string, InstanceType> component_refs, IDictionary <ProxyComponentAttribute, string> application_attributes, IDictionary <ProxyComponentAttribute, string> workflow_attributes) { // APPLICARTION PROXY COMPONENT InnerComponentType ci_app = new InnerComponentType(); ci_app.package = app_name; ci_app.name = application_attributes[ProxyComponentAttribute.COMPONENT_NAME_ABSTRACT]; ci_app.localRef = application_attributes[ProxyComponentAttribute.INNER_COMPONENT_NAME]; ci_app.multiple = false; ci_app.exposed = false; body_items.Add(ci_app); // WORKFLOW PROXY COMPONENT InnerComponentType ci_wkf = new InnerComponentType(); ci_wkf.package = app_name; ci_wkf.name = workflow_attributes[ProxyComponentAttribute.COMPONENT_NAME_ABSTRACT]; ci_wkf.localRef = workflow_attributes[ProxyComponentAttribute.INNER_COMPONENT_NAME]; ci_wkf.multiple = false; ci_wkf.exposed = false; body_items.Add(ci_wkf); // REGULAR COMPONENTS foreach (KeyValuePair <string, InstanceType> binding in component_refs) { string componentRef = binding.Key; string port_name = binding.Value.instance_ref; string package = null, name = null; fetchPackageAndName(componentRef, ref package, ref name); InnerComponentType ci = new InnerComponentType(); ci.package = package; ci.name = name; ci.localRef = port_name; ci.multiple = false; ci.exposed = false; ci.parameter = traverseParameters(body_items, binding.Value.contextual_type.argument); body_items.Add(ci); } }
static ParameterRenaming[] traverseParameters(IList <object> body_items, ContextArgumentType[] argument_list) { IList <ParameterRenaming> parameter_renaming_list = new List <ParameterRenaming> (); foreach (ContextArgumentType argument in argument_list) { ParameterRenaming parameter_renaming = new ParameterRenaming(); ComponentFunctorApplicationType argument_value = (ComponentFunctorApplicationType)argument.Item; string componentRef = argument_value.component_ref; string inner_name = NextArgumentInner; string package = null, name = null; fetchPackageAndName(componentRef, ref package, ref name); InnerComponentType ci = new InnerComponentType(); body_items.Add(ci); ci.package = package; ci.name = name; ci.localRef = inner_name; ci.multiple = false; ci.exposed = false; ci.parameter = traverseParameters(body_items, argument_value.argument); ParameterSupplyType supply = new ParameterSupplyType(); body_items.Add(supply); supply.cRef = inner_name; supply.varName = NextVariable; parameter_renaming.formFieldId = argument.parameter_id; parameter_renaming.varName = supply.varName; parameter_renaming_list.Add(parameter_renaming); } ParameterRenaming[] parameter_return_array = new ParameterRenaming[parameter_renaming_list.Count]; parameter_renaming_list.CopyTo(parameter_return_array, 0); return(parameter_return_array); }
protected IList <SupplyParameter> loadAbstractComponentFunctorApplicationParameters(ComponentInUseType c, AbstractComponentFunctorApplication aNew, AbstractComponentFunctorApplication aNew_context) { IList <SupplyParameter> pars = new List <SupplyParameter>(); if (c.parameter != null) { foreach (ParameterRenaming p in c.parameter) { String formFieldId = p.formFieldId; String varName = p.varName; Console.WriteLine("loadAbstractcomponentFunctorApplicationParameters -1 " + varName + "," + formFieldId); SupplyParameter p_ = null; ParameterType topParameter = lookForParameterByVarName(varName); ParameterSupplyType s = lookForSupplyForVarName(varName); if (topParameter != null) { Console.WriteLine("loadAbstractcomponentFunctorApplicationParameters 0 " + topParameter.formFieldId + ", " + varName); p_ = new SupplyParameterParameter(); ((SupplyParameterParameter)p_).Id_argument = topParameter.formFieldId; ((SupplyParameterParameter)p_).FreeVariable = false; } else if (s != null) { Console.WriteLine("loadAbstractcomponentFunctorApplicationParameters 1 " + s.cRef + ", " + varName); String cRef = s.cRef; p_ = new SupplyParameterComponent(); // Look for the inner component that supplies that parameter. InnerComponentType inner = lookForInnerComponent(cRef); AbstractComponentFunctorApplication cPar = newAbstractComponentFunctorApplication(inner); if (cPar == null) { throw new Exception("DEPLOY ERROR: Unresolved Dependency for base component (context actual parameter) : " + inner.name); } ((SupplyParameterComponent)p_).Id_functor_app_actual = cPar.Id_functor_app; } else { Console.WriteLine("loadAbstractcomponentFunctorApplicationParameters 2 " + varName); p_ = new SupplyParameterParameter(); ((SupplyParameterParameter)p_).Id_argument = null; ((SupplyParameterParameter)p_).FreeVariable = true; } p_.Id_functor_app = aNew.Id_functor_app; p_.Id_abstract = aNew.Id_abstract; p_.Id_parameter = formFieldId; // SupplyParameterDAO p_DAO = new SupplyParameterDAO(); br.ufc.pargo.hpe.backend.DGAC.BackEnd.spdao.insert(p_); pars.Add(p_); } } loadSuppliedParametersOfSupertype(c, aNew, aNew_context); return(pars); }
private void loadInterfaces(AbstractComponentFunctor absC) { if (unit != null) { int count = 0; // for each interface ... foreach (UnitType u in unit) { string uRef = u.uRef; string iRef = u.iRef; string uRefSuper = u.super == null || u.super.Length == 0 ? "" : u.super[0].uRef; if (u.super != null) { for (int j = 1; j < u.super.Length; j++) { uRefSuper += "+" + u.super[j].uRef; } } InterfaceType ui = lookForInterface(iRef); int nargs = ui.nArgsSpecified ? ui.nArgs : 0; Console.Error.WriteLine("STEP 5.3"); Interface i = new Interface(); i.Id_abstract = absC.Id_abstract; i.Id_interface = uRef; // i.Unit_replica = unit_replica; i.Facet = u.facet; i.Id_interface_super = uRefSuper; i.Class_name = xc.header.packagePath + "." + xc.header.name + "." + iRef; i.Class_nargs = nargs; // TODO i.Assembly_string = i.Class_name + ", Culture=neutral, Version=0.0.0.0"; // In the current implementation, the name of the dll is the name of the class of the unit. i.Order = ++count; i.Is_parallel = u.multiple; Console.Error.WriteLine("STEP 5.4"); if (ui.parameter != null) { Console.Error.WriteLine("STEP 5.4 - " + ui.parameter); foreach (InterfaceParameterType ipx in ui.parameter) { Console.Error.WriteLine("STEP 5.4 BEGIN 1- " + ipx.parid); InterfaceParameter ip = new InterfaceParameter(); Console.Error.WriteLine("STEP 5.4 BEGIN 2- " + ipx.parid); ip.Id_abstract = i.Id_abstract; ip.Id_interface = i.Id_interface; ip.ParId = ipx.parid; ip.VarId = ipx.varid; ip.Id_interface_parameter = ipx.iname; ip.Id_unit_parameter = ipx.uname; ip.ParOrder = ipx.order; br.ufc.pargo.hpe.backend.DGAC.BackEnd.ipdao.insert(ip); Console.Error.WriteLine("STEP 5.4 END - " + ipx.parid); } } Console.Error.WriteLine("BEFORE STEP 5.5 " + (ui == null)); Console.Error.WriteLine("STEP 5.5 --- " + (ui.sources[ui.sources.Length - 1].file == null)); int order = 0; foreach (SourceFileType sft in ui.sources[ui.sources.Length - 1].file) { Console.Error.WriteLine("STEP 5.5.0"); SourceCode ss = new SourceCode(); ss.Type_owner = 'i'; ss.Id_owner_container = i.Id_abstract; ss.Id_owner = i.Id_interface; ss.Contents = sft.contents; ss.File_name = sft.name; ss.File_type = "dll"; ss.Order = order++; Console.Error.WriteLine("STEP 5.5.1"); br.ufc.pargo.hpe.backend.DGAC.BackEnd.scdao.insert(ss); int size = (sft.externalDependency == null ? 0 : sft.externalDependency.Length) + (ui.externalReferences == null ? 0 : ui.externalReferences.Length); Console.Error.WriteLine("STEP 5.5.2"); if (size > 0) { string[] allRefs = new string[size]; if (ui.externalReferences != null) { ui.externalReferences.CopyTo(allRefs, 0); } if (sft.externalDependency != null) { sft.externalDependency.CopyTo(allRefs, ui.externalReferences == null ? 0 : ui.externalReferences.Length); } Console.Error.WriteLine("STEP 5.5.3"); foreach (string extRef in allRefs) { Console.WriteLine("external reference = " + extRef); SourceCodeReference ssr = new SourceCodeReference(); ssr.Type_owner = ss.Type_owner; ssr.Id_owner_container = ss.Id_owner_container; ssr.Id_owner = ss.Id_owner; ssr.File_name = ss.File_name; ssr.Reference = extRef; if (br.ufc.pargo.hpe.backend.DGAC.BackEnd.scrdao.retrieve(ssr) == null) { br.ufc.pargo.hpe.backend.DGAC.BackEnd.scrdao.insert(ssr); } } Console.Error.WriteLine("STEP 5.5.4"); } } Console.Error.WriteLine("STEP 5.6"); br.ufc.pargo.hpe.backend.DGAC.BackEnd.idao.insert(i); if (u.slices != null) { IList <string> mS = new List <string>(); IList <String> mP = new List <string>(); IDictionary <string, UnitSliceType> m = new Dictionary <string, UnitSliceType>(); // 1st PASS: COLLECT ALL MAPPINGS SLICE/EXPOSED SLICES foreach (UnitSliceType uS in u.slices) { string sliceName = uS.sliceName; if (uS.port != null) { foreach (string portName in uS.port) { mS.Add(sliceName); mP.Add(portName); } } } // 2nd PASS: foreach (UnitSliceType uS in u.slices) { string sliceName = uS.sliceName; if (mP.Contains(sliceName) && !m.ContainsKey(sliceName)) { Console.Error.WriteLine("ADDING " + sliceName + " TO m"); m.Add(sliceName, uS); } } Console.Error.WriteLine("STEP 5.7"); // 3rd PASS: foreach (UnitSliceType uS in u.slices) { string sname = uS.sliceName; string cRefS = uS.cRef; string uRefS = uS.uRef; InnerComponentType innerC = lookForInnerComponent(cRefS); Console.Error.WriteLine("STEP 5.8"); InnerComponent inner = br.ufc.pargo.hpe.backend.DGAC.BackEnd.icdao.retrieve(absC.Id_abstract, cRefS); Console.Error.WriteLine("STEP 5.9 ---" + absC.Id_abstract + "," + cRefS); Interface iii = br.ufc.pargo.hpe.backend.DGAC.BackEnd.idao.retrieveTop(inner.Id_abstract_inner, uRefS); Console.Error.WriteLine("STEP 5.9.5 ---" + (iii == null)); Slice s = new Slice(); s.Id_abstract = absC.Id_abstract; s.Id_inner = innerC.localRef; s.Id_interface_slice = iii == null ? uRefS : iii.Id_interface; s.Id_interface = uRef; s.Transitive = mP.Contains(sname); Console.Error.WriteLine("STEP 5.10"); string property_name = uS.sliceName; string fstletter = property_name.Substring(0, 1); property_name = fstletter.ToUpper() + property_name.Substring(1, property_name.Length - 1); Console.Error.WriteLine("STEP 5.11"); s.PortName = property_name; if (!s.Transitive && uS.port != null) { Console.Error.WriteLine("STEP 5.12"); foreach (string pname in uS.port) { Console.Error.WriteLine("STEP 5.12.1 -- " + pname + ", " + (m.Count)); UnitSliceType usPort = null; m.TryGetValue(pname, out usPort); Console.Error.WriteLine("STEP 5.12.2 -- " + pname + ", " + (usPort == null)); Console.Error.WriteLine("STEP 5.12.5 -- " + usPort.cRef); InnerComponentType innerCPort = lookForInnerComponent(usPort.cRef); Console.Error.WriteLine("STEP 5.13"); InnerComponent inner2 = br.ufc.pargo.hpe.backend.DGAC.BackEnd.icdao.retrieve(absC.Id_abstract, usPort.cRef); Interface iii2 = br.ufc.pargo.hpe.backend.DGAC.BackEnd.idao.retrieveTop(inner2.Id_abstract_inner, usPort.uRef); SliceExposed se = new SliceExposed(); se.Id_abstract = s.Id_abstract; se.Id_inner = innerCPort.localRef; se.Id_inner_owner = s.Id_inner; se.Id_interface_slice_owner = s.Id_interface_slice_top; // mudado de s.Id_interface_slice em 28/06/2011 se.Id_interface_slice = iii2 == null ? usPort.uRef : iii2.Id_interface; // achar innerRenaming para cNewName = usPort.cRef e cRef = cRefS (uS.cRef) -- Id_inner_original = cOldName string id_inner_original = lookForRenamingOld(cRefS, usPort.cRef, usPort.inner_replica); se.Id_inner_original = id_inner_original != null ? id_inner_original : usPort.cRef; se.Id_interface_slice_original = usPort.uRef; // DEVE SER O TOP !!! if (br.ufc.pargo.hpe.backend.DGAC.BackEnd.sedao.retrieve2(se.Id_inner, se.Id_interface_slice, se.Id_abstract, se.Id_interface_slice_owner, se.Id_inner_owner) == null) { br.ufc.pargo.hpe.backend.DGAC.BackEnd.sedao.insert(se); } } } if (br.ufc.pargo.hpe.backend.DGAC.BackEnd.sdao.retrieve(s.Id_abstract, s.Id_inner, s.Id_interface_slice, s.Id_interface) == null) { br.ufc.pargo.hpe.backend.DGAC.BackEnd.sdao.insert(s); Console.WriteLine("SLICE REGISTERED " + s.Id_abstract + "/" + s.Id_inner + "/" + s.Id_interface_slice + " --- " + s.Id_interface); } else { Console.WriteLine("SLICE NOT REGISTERED " + s.Id_abstract + "/" + s.Id_inner + "/" + s.Id_interface_slice + " --- " + s.Id_interface); } } } //if (ui.protocol != null) readProtocol(i, ui); } } }
private void importInnerComponentsOfSuper(AbstractComponentFunctor absC, IList <InnerComponentType> includeAsInner) { Console.WriteLine("importInnerComponentsOfSupper : " + "START"); IDictionary <string, SupplyParameter> parsSuper = new Dictionary <string, SupplyParameter>(); // Inner components of the supertype. if (absC.Id_functor_app_supertype > 0) { AbstractComponentFunctorApplication acfa = br.ufc.pargo.hpe.backend.DGAC.BackEnd.acfadao.retrieve(absC.Id_functor_app_supertype); // It is a parameter in the subtype. Check if it is supplied in the type. IList <SupplyParameter> spList = br.ufc.pargo.hpe.backend.DGAC.BackEnd.spdao.list(acfa.Id_functor_app); foreach (SupplyParameter sp in spList) { Console.WriteLine("Adding to parSuper - key=" + sp.Id_parameter + ", value: " + sp.Id_functor_app + "/" + sp.Id_abstract + "/" + sp.Id_parameter); parsSuper.Add(sp.Id_parameter, sp); } IList <InnerComponent> iss = br.ufc.pargo.hpe.backend.DGAC.BackEnd.icdao.list(acfa.Id_abstract); Console.WriteLine("importInnerComponentsOfSuper: " + iss.Count + " - acfa.Id_abstract=" + acfa.Id_abstract); foreach (InnerComponent i in iss) //if (!i.IsPublic) { Console.WriteLine("importInnerComponentsOfSupper 1: " + i.Id_inner + " , " + i.Id_functor_app + " , " + (i.Parameter_top)); InnerComponent iNew = new InnerComponent(); if (i.Parameter_top != null && i.Parameter_top != "") { SupplyParameter sp = null; parsSuper.TryGetValue(i.Parameter_top, out sp); Console.WriteLine("importInnerComponentsOfSupper 2: " + i.Parameter_top + "," + i.Id_inner); if (sp is SupplyParameterComponent) { Console.WriteLine("importInnerComponentsOfSupper 3: " + "sp is SupplyParameterComponent"); // 1th CASE: It is not a parameter in the current component. // NOT YET TESTED !!! SupplyParameterComponent spc = (SupplyParameterComponent)sp; AbstractComponentFunctorApplication acfaReplace = br.ufc.pargo.hpe.backend.DGAC.BackEnd.acfadao.retrieve(spc.Id_functor_app_actual); if (br.ufc.pargo.hpe.backend.DGAC.BackEnd.icdao.retrieve(absC.Id_abstract, i.Id_inner) == null) { iNew.Id_abstract_inner = acfaReplace.Id_abstract; //iNew.Parameter_top = i.Parameter_top; // TODO: Testando ......... iNew.Id_abstract_owner = absC.Id_abstract; iNew.Id_functor_app = liftFunctorApp(acfaReplace.Id_functor_app, parsSuper); iNew.Id_inner = i.Id_inner; br.ufc.pargo.hpe.backend.DGAC.BackEnd.icdao.insert(iNew); } } else if (sp is SupplyParameterParameter) { Console.WriteLine("importInnerComponentsOfSupper 4: " + "sp is SupplyParameterParameter"); // 2nd CASE: It continues to be a parameter in the current component. SupplyParameterParameter spp = (SupplyParameterParameter)sp; String varName = null; foreach (ParameterRenaming pr in parameterRenamingSuper) { if (pr.formFieldId.Equals(i.Parameter_top)) { varName = pr.varName; ParameterType parameter = this.lookForParameterByVarName(varName); InnerComponentType cReplace = lookForInnerComponent(parameter.componentRef); //cReplace.localRef = i.Id_inner; cReplace.exposed = i.IsPublic; cReplace.multiple = i.Multiple; // cReplace.parameter_id = i.Parameter_top; // TODO: Testano includeAsInner.Add(cReplace); } } ParameterSupplyType supply = lookForSupplyForVarName(varName); if (supply != null) { InnerComponentType cReplace = lookForInnerComponent(supply.cRef); if (cReplace != null) { includeAsInner.Add(cReplace); } } } } else { // 3rd CASE: // NOT YET TESTED !!! iNew.Id_abstract_inner = i.Id_abstract_inner; iNew.Parameter_top = null; iNew.Id_abstract_owner = absC.Id_abstract; iNew.Id_functor_app = liftFunctorApp(i.Id_functor_app, parsSuper); iNew.Id_inner = i.Id_inner; iNew.IsPublic = i.IsPublic; br.ufc.pargo.hpe.backend.DGAC.BackEnd.icdao.insert(iNew); } } } Console.WriteLine("importInnerComponentsOfSuper : FINISH"); }
private void loadInnerComponents(AbstractComponentFunctor absC) { IList <InnerComponentType> includeAsInner = new List <InnerComponentType>(); IDictionary <string, InnerComponentType> innersByVarName = new Dictionary <string, InnerComponentType>(); if (parameter != null) { foreach (ParameterType ir in parameter) { InnerComponentType ic = this.lookForInnerComponent(ir.componentRef); if (ic == null) { Console.WriteLine("LOOK FOR INNER COMPONENT RETURNED NULL " + ir.componentRef); } if (!innersByVarName.ContainsKey(ir.varName)) { innersByVarName[ir.varName] = ic; } else { Console.WriteLine("ALREADY EXISTS - key=" + ir.varName + ", value=" + ic.localRef); } } } if (parameterSupply != null) { foreach (ParameterSupplyType ir in parameterSupply) { InnerComponentType ic = this.lookForInnerComponent(ir.cRef); if (!innersByVarName.ContainsKey(ir.varName)) { innersByVarName[ir.varName] = ic; } else { Console.WriteLine("ALREADY EXISTS - key=" + ir.varName + ", value=" + ic.localRef); } } } importInnerComponentsOfSuper(absC, includeAsInner); if (inner != null) { foreach (InnerComponentType c in inner) { Console.WriteLine("BEGIN loadInnerComponent : " + c.localRef + " :: " + c.package + "." + c.name); // innerAll.Add(c); if (((isNotInSupply(c) || this.findInSlices(c.localRef)) && (isNotParameter(c) || this.findInSlices(c.localRef))) || includeAsInner.Contains(c)) { // CREATE INNER COMPONENT InnerComponent iNew = new InnerComponent(); iNew.Id_abstract_owner = absC.Id_abstract; iNew.Id_inner = c.localRef; // localRef is used to uniquely identify the inner component among the inner components.... // FOLLOW arrow has-parameters AbstractComponentFunctorApplication app = newAbstractComponentFunctorApplication(c); if (app == null) { throw new Exception("DEPLOY ERROR: Unresolved Dependency for base component (inner component) : " + c.name); } iNew.Id_functor_app = app.Id_functor_app; iNew.Id_abstract_inner = app.Id_abstract; // CHECKS IF IT IS A TOP PARAMETER ParameterType p = lookForParameterByCRef(c.localRef); iNew.Parameter_top = p != null ? p.formFieldId : null; iNew.Transitive = false; iNew.IsPublic = c.exposed; iNew.Multiple = c.multipleSpecified ? c.multiple : false; // LOAD EXPOSED INNER COMPONENTS if (c.port != null) { foreach (InnerComponentType port in c.port) { Console.WriteLine("loadInnerComponent - BEGIN PORT " + port.localRef); // -------------------------------------------------- string varName = null; int id_abstract_port = app.Id_abstract; string id_inner_port = port.localRef; InnerComponent ic_port = br.ufc.pargo.hpe.backend.DGAC.BackEnd.icdao.retrieve(id_abstract_port, id_inner_port); Console.WriteLine("loadInnerComponent - STEP 1"); if (c.parameter != null && ic_port != null) { foreach (ParameterRenaming par in c.parameter) { Console.WriteLine("loadInnerComponent - STEP 2 begin " + par.formFieldId + " - " + par.varName); if (par.formFieldId.Equals(ic_port.Parameter_top)) { varName = par.varName; } Console.WriteLine("loadInnerComponent - STEP 2 end " + par.formFieldId + " - " + par.varName); } } InnerComponentType port_replace = port; if (varName != null) { Console.WriteLine("loadInnerComponent - STEP 3 " + varName); foreach (KeyValuePair <string, InnerComponentType> iii in innersByVarName) { Console.WriteLine("loadInnerComponent x " + iii.Key); Console.WriteLine("loadInnerComponent y " + (iii.Value == null)); Console.WriteLine("loadInnerComponent z " + c.package); Console.WriteLine("loadInnerComponent w " + c.name); } port_replace = innersByVarName[varName]; } else { Console.WriteLine("loadInnerComponent - STEP 3 "); } // -------------------------------------------------- innerAll.Add(port); InnerComponent iNewPort = new InnerComponent(); iNewPort.Id_abstract_owner = absC.Id_abstract; string old_port_localRef = port.localRef; port.localRef = lookForRenamingNew(c.localRef, old_port_localRef, port.index_replica); iNewPort.Id_inner = port.localRef; iNewPort.Parameter_top = port_replace.parameter_id; iNewPort.Transitive = true; iNewPort.IsPublic = port.exposed; iNewPort.Multiple = port.multipleSpecified ? port.multiple : false; AbstractComponentFunctorApplication appPort = newAbstractComponentFunctorApplication(port_replace); if (appPort == null) { throw new Exception("DEPLOY ERROR: Unresolved Dependency for base component (public inner component) : " + port.name); } iNewPort.Id_functor_app = appPort.Id_functor_app; iNewPort.Id_abstract_inner = appPort.Id_abstract; InnerComponentExposed ice = new InnerComponentExposed(); ice.Id_abstract = absC.Id_abstract; ice.Id_inner_rename = iNewPort.Id_inner; ice.Id_inner_owner = iNew.Id_inner; ice.Id_inner = old_port_localRef; br.ufc.pargo.hpe.backend.DGAC.BackEnd.icedao.insert(ice); InnerComponent ic_port_exists = br.ufc.pargo.hpe.backend.DGAC.BackEnd.icdao.retrieve(iNewPort.Id_abstract_owner, iNewPort.Id_inner); if (ic_port_exists == null && (fusion == null || !fusion.ContainsKey(port.localRef) || (fusion.ContainsKey(port.localRef) && fusion[port.localRef].Equals(c.localRef)))) { br.ufc.pargo.hpe.backend.DGAC.BackEnd.icdao.insert(iNewPort); } Console.WriteLine("loadInnerComponent - END PORT " + port.localRef); } } InnerComponent ic = br.ufc.pargo.hpe.backend.DGAC.BackEnd.icdao.retrieve(iNew.Id_abstract_owner, iNew.Id_inner); if (ic != null && includeAsInner.Contains(c)) { Console.WriteLine("loadInnerComponent - BLOCK 2 OPEN"); br.ufc.pargo.hpe.backend.DGAC.BackEnd.icdao.remove(iNew.Id_abstract_owner, iNew.Id_inner); br.ufc.pargo.hpe.backend.DGAC.BackEnd.icdao.insert(iNew); Console.WriteLine("loadInnerComponent - BLOCK 2 CLOSE"); } else if (ic == null) { Console.WriteLine("loadInnerComponent - BLOCK 3 OPEN"); br.ufc.pargo.hpe.backend.DGAC.BackEnd.icdao.insert(iNew); Console.WriteLine("loadInnerComponent - BLOCK 3 CLOSE"); } } Console.WriteLine("END loadInnerComponent : " + c.localRef + " :: " + c.package + "." + c.name); } } }