From 86b1de85536e93c59a25702a5a2d3e384202ffd2 Mon Sep 17 00:00:00 2001 From: jsdelfino Date: Tue, 11 Dec 2012 04:03:29 +0000 Subject: More changes to port to C++11, adjust to use the new JSON support, and cleanup rest of the modules. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1419987 13f79535-47bb-0310-9956-ffa450edef68 --- sca-cpp/trunk/modules/java/mod-java.hpp | 40 +++++++++++++-------------------- 1 file changed, 16 insertions(+), 24 deletions(-) (limited to 'sca-cpp/trunk/modules/java/mod-java.hpp') diff --git a/sca-cpp/trunk/modules/java/mod-java.hpp b/sca-cpp/trunk/modules/java/mod-java.hpp index b68f17aa3f..4dd2fe33a2 100644 --- a/sca-cpp/trunk/modules/java/mod-java.hpp +++ b/sca-cpp/trunk/modules/java/mod-java.hpp @@ -39,35 +39,27 @@ namespace tuscany { namespace server { namespace modjava { -/** - * Apply a Java component implementation function. - */ -struct applyImplementation { - java::JavaClass impl; - const list px; - java::JavaRuntime& jr; - applyImplementation(const java::JavaClass& impl, const list& px, java::JavaRuntime& jr) : impl(impl), px(px), jr(jr) { - } - const value operator()(const list& params) const { - const value expr = append(params, px); - debug(expr, "modeval::java::applyImplementation::input"); - const failable res = java::evalClass(jr, expr, impl); - const value val = !hasContent(res)? mklist(value(), reason(res), rcode(res)) : mklist(content(res)); - debug(val, "modeval::java::applyImplementation::result"); - return val; - } -}; - /** * Evaluate a Java component implementation and convert it to an applicable * lambda function. */ -const failable&)> > evalImplementation(const string& path, const value& impl, const list& px, java::JavaRuntime& jr) { +const failable evalImplementation(const string& path, const value& impl, const list& px, const java::JavaRuntime& jr) { const string cn(attributeValue("class", impl)); - const failable jc = java::readClass(jr, path, cn); - if (!hasContent(jc)) - return mkfailure&)> >(jc); - return lambda&)>(applyImplementation(content(jc), px, jr)); + const failable fjc = java::readClass(jr, path, cn); + if (!hasContent(fjc)) + return mkfailure(fjc); + + // Return Java component implementation lambda function + const java::JavaClass jc = content(fjc); + const lvvlambda applyImplementation = [jc, px, jr](const list& params) -> const value { + const value expr = append(params, px); + debug(expr, "modeval::java::applyImplementation::expr"); + const failable res = java::evalClass(jr, expr, jc); + const value val = !hasContent(res)? mklist(nilValue, reason(res), rcode(res)) : mklist(content(res)); + debug(val, "modeval::java::applyImplementation::result"); + return val; + }; + return applyImplementation; } } -- cgit v1.2.3