- Revision
- 414
- Author
- mauro
- Date
- 2007-11-23 02:41:21 -0600 (Fri, 23 Nov 2007)
Log Message
WAFFLE-34: Moved RubyDataBinder to o.c.w.bind.ognl package as it extends OgnlDataBinder.
Added Paths
Removed Paths
Diff
Deleted: trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/RubyDataBinder.java (413 => 414)
--- trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/RubyDataBinder.java 2007-11-23 08:40:24 UTC (rev 413) +++ trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/RubyDataBinder.java 2007-11-23 08:41:21 UTC (rev 414) @@ -1,52 +0,0 @@ -package org.codehaus.waffle.bind; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - - -import org.codehaus.waffle.action.ArgumentResolver; -import org.codehaus.waffle.bind.ognl.OgnlDataBinder; -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; - -public class RubyDataBinder extends OgnlDataBinder { - 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); - } - } -}
Copied: trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/ognl/RubyDataBinder.java (from rev 411, trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/RubyDataBinder.java) (0 => 414)
--- trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/ognl/RubyDataBinder.java (rev 0) +++ trunk/waffle-core/src/main/java/org/codehaus/waffle/bind/ognl/RubyDataBinder.java 2007-11-23 08:41:21 UTC (rev 414) @@ -0,0 +1,53 @@ +package org.codehaus.waffle.bind.ognl; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + + +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; + +public class RubyDataBinder extends OgnlDataBinder { + 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:
