| package [%=package%]; |
| |
| public class [%=s.name%] { |
| |
| public [%=s.outPort.type%] execute([%=s.inPorts.collect(p|p.type + " " + p.name).concat(", ")%]) { |
| |
| [%for (child in s.components){%] |
| [%=child.name%] [%=child.name.ftlc()%] = new [%=child.name%](); |
| [%=child.outPort.type%] [%=child.name.ftlc()%]Result = [%=child.name.ftlc()%].execute([%=child.getInputParameters().concat(", ")%]); |
| [%}%] |
| |
| return [%=s.outPort.incoming.source.eContainer().name.ftlc() + "Result"%]; |
| |
| } |
| |
| } |
| |
| [% |
| operation Component getInputParameters(){ |
| var parameters : Sequence; |
| for (p in self.inPorts) { |
| if (p.incoming.source.eContainer().isTypeOf(Application)) { |
| parameters.add(p.incoming.source.name); |
| } |
| else { |
| parameters.add(p.incoming.source.eContainer().name.ftlc() + "Result"); |
| } |
| } |
| return parameters; |
| } |
| %] |