From: Robert L. <rle...@us...> - 2007-02-27 08:28:24
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv11416/src/ccmtools/generator/java/metamodel Modified Files: ComponentDef.java Log Message: now support "provide" after "configuration complete" Index: ComponentDef.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel/ComponentDef.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** ComponentDef.java 23 Feb 2007 14:15:57 -0000 1.26 --- ComponentDef.java 27 Feb 2007 08:28:16 -0000 1.27 *************** *** 383,399 **** } Port source = c.getFacet(); ! if (source.getComponent() == null) ! { ! // connect from an outer receptacle ! code.append("ctx.get_connection_"); ! } ! else ! { ! // connect from the facet of an inner component ! code.append(source.getComponent()); ! code.append("_.provide_"); ! } ! code.append(source.getConnector()); ! code.append("()"); code.append(code_tail); list.add(code.toString()); --- 383,387 ---- } Port source = c.getFacet(); ! code.append(getFacetValue(source)); code.append(code_tail); list.add(code.toString()); *************** *** 442,445 **** --- 430,471 ---- } + private static String getFacetValue( Port source ) + { + StringBuilder code = new StringBuilder(); + if (source.getComponent() == null) + { + // connect from an outer receptacle + code.append("ctx.get_connection_"); + } + else + { + // connect from the facet of an inner component + code.append(source.getComponent()); + code.append("_.provide_"); + } + code.append(source.getConnector()); + code.append("()"); + return code.toString(); + } + + public String getAssemblyInitFacetTargetValue( ProvidesDef provides ) + { + String name = provides.getIdentifier(); + for (AssemblyElement e : assembly_.getElements()) + { + if (e instanceof Connection) + { + Connection c = (Connection) e; + Port target = c.getReceptacle(); + if (target.getComponent() == null && target.getConnector().equals(name)) + { + Port source = c.getFacet(); + return getFacetValue(source); + } + } + } + throw new RuntimeException("facet " + name + " is not connected to an inner component"); + } + /*********************************************************************************************** * Client Library Generator Methods |