- Revision
- 698
- Author
- mauro
- Date
- 2008-06-13 08:37:36 -0500 (Fri, 13 Jun 2008)
Log Message
Renamed RubyDataBinder to RubyControllerDataBinder.
Modified Paths
Added Paths
Removed Paths
Diff
Modified: trunk/examples/jruby-example/src/main/webapp/WEB-INF/web.xml (697 => 698)
--- trunk/examples/jruby-example/src/main/webapp/WEB-INF/web.xml 2008-06-13 02:25:14 UTC (rev 697) +++ trunk/examples/jruby-example/src/main/webapp/WEB-INF/web.xml 2008-06-13 13:37:36 UTC (rev 698) @@ -36,8 +36,8 @@ <param-value>org.codehaus.waffle.context.pico.RubyAwarePicoContextContainerFactory</param-value> </context-param> <context-param> - <param-name>org.codehaus.waffle.bind.DataBinder</param-name> - <param-value>org.codehaus.waffle.bind.ognl.RubyDataBinder</param-value> + <param-name>org.codehaus.waffle.bind.ControllerDataBinder</param-name> + <param-value>org.codehaus.waffle.bind.ognl.RubyControllerDataBinder</param-value> </context-param> <context-param> <param-name>org.codehaus.waffle.controller.ControllerDefinitionFactory</param-name>
Copied: trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/ognl/RubyControllerDataBinder.java (from rev 697, trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/ognl/RubyDataBinder.java) (0 => 698)
--- trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/ognl/RubyControllerDataBinder.java (rev 0) +++ trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/ognl/RubyControllerDataBinder.java 2008-06-13 13:37:36 UTC (rev 698) @@ -0,0 +1,53 @@ +package org.codehaus.waffle.bind.ognl; + +import org.codehaus.waffle.action.ArgumentResolver; +import org.codehaus.waffle.bind.BindErrorMessageResolver; +import org.codehaus.waffle.bind.ValueConverterFinder; +import org.codehaus.waffle.controller.RubyController; +import org.codehaus.waffle.monitor.BindMonitor; +import org.codehaus.waffle.validation.ErrorsContext; +import org.jruby.Ruby; +import org.jruby.javasupport.JavaEmbedUtils; +import org.jruby.runtime.builtin.IRubyObject; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class RubyControllerDataBinder extends OgnlControllerDataBinder { + private final ArgumentResolver argumentResolver; + + public RubyControllerDataBinder(ValueConverterFinder valueConverterFinder, + BindErrorMessageResolver bindErrorMessageResolver, + ArgumentResolver argumentResolver, + BindMonitor bindMonitor) { + super(valueConverterFinder, bindErrorMessageResolver, bindMonitor); + this.argumentResolver = argumentResolver; + } + + public void bind(HttpServletRequest request, HttpServletResponse response, ErrorsContext errorsContext, Object controller) { + if (controller instanceof RubyController) { + IRubyObject rubyObject = ((RubyController) controller).getRubyObject(); + Ruby runtime = rubyObject.getRuntime(); + + JavaEmbedUtils.invokeMethod(runtime, rubyObject, "__argument_resolver=", + new Object[]{JavaEmbedUtils.javaToRuby(runtime, argumentResolver)}, + Void.class); + + JavaEmbedUtils.invokeMethod(runtime, rubyObject, "__errors=", + new Object[]{JavaEmbedUtils.javaToRuby(runtime, errorsContext)}, + Void.class); + + JavaEmbedUtils.invokeMethod(runtime, + rubyObject, + "__set_all_contexts", + new Object[]{ + JavaEmbedUtils.javaToRuby(runtime, request), + JavaEmbedUtils.javaToRuby(runtime, response) + }, + Void.class); + } else { + // default to standard binding + super.bind(request, response, errorsContext, controller); + } + } +}
Deleted: trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/ognl/RubyDataBinder.java (697 => 698)
--- trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/ognl/RubyDataBinder.java 2008-06-13 02:25:14 UTC (rev 697) +++ trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/ognl/RubyDataBinder.java 2008-06-13 13:37:36 UTC (rev 698) @@ -1,53 +0,0 @@ -package org.codehaus.waffle.bind.ognl; - -import org.codehaus.waffle.action.ArgumentResolver; -import org.codehaus.waffle.bind.BindErrorMessageResolver; -import org.codehaus.waffle.bind.ValueConverterFinder; -import org.codehaus.waffle.controller.RubyController; -import org.codehaus.waffle.monitor.BindMonitor; -import org.codehaus.waffle.validation.ErrorsContext; -import org.jruby.Ruby; -import org.jruby.javasupport.JavaEmbedUtils; -import org.jruby.runtime.builtin.IRubyObject; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -public class RubyDataBinder extends OgnlControllerDataBinder { - private final ArgumentResolver argumentResolver; - - public RubyDataBinder(ValueConverterFinder valueConverterFinder, - BindErrorMessageResolver bindErrorMessageResolver, - ArgumentResolver argumentResolver, - BindMonitor bindMonitor) { - super(valueConverterFinder, bindErrorMessageResolver, bindMonitor); - this.argumentResolver = argumentResolver; - } - - public void bind(HttpServletRequest request, HttpServletResponse response, ErrorsContext errorsContext, Object controller) { - if (controller instanceof RubyController) { - IRubyObject rubyObject = ((RubyController) controller).getRubyObject(); - Ruby runtime = rubyObject.getRuntime(); - - JavaEmbedUtils.invokeMethod(runtime, rubyObject, "__argument_resolver=", - new Object[]{JavaEmbedUtils.javaToRuby(runtime, argumentResolver)}, - Void.class); - - JavaEmbedUtils.invokeMethod(runtime, rubyObject, "__errors=", - new Object[]{JavaEmbedUtils.javaToRuby(runtime, errorsContext)}, - Void.class); - - JavaEmbedUtils.invokeMethod(runtime, - rubyObject, - "__set_all_contexts", - new Object[]{ - JavaEmbedUtils.javaToRuby(runtime, request), - JavaEmbedUtils.javaToRuby(runtime, response) - }, - Void.class); - } else { - // default to standard binding - super.bind(request, response, errorsContext, controller); - } - } -}
To unsubscribe from this list please visit:
