Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
None
-
None
-
None
Description
Currently the Scala scripting engine inserts a preamble for the bindings passed to a Script. The preamble contains a declaration of the following form for each value in the Bindings instance:
val request: SlingHttpServletRequest = bindings.get("request").asInstanceOf[SlingHttpServletRequest]
The types are hard coded in the ScalaScriptEngine.TypeHints class. For unknown types a declaration of type AnyRef is inserted into the preamble.
I suggest to implement a run time type discovery algorithm which discovers the accessible type from a given instance and inserts the respective declarations into the preamble. That way the static coupling between the known values in Bindings and its types would go away. Furthermore the values would be of a type appearing to be of all the visible types on the Scala side.