[
https://issues.apache.org/jira/browse/SLING-1236?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Dürig updated SLING-1236:
---------------------------------
Attachment: SLING-1236.patch
Patch implementing suggested algorithm.
For each value in the Binding instance declarations of the following form are
inserted into the preamble:
val currentNode = bindings.getValue("currentNode").asInstanceOf[Object]
implicit def Object2Node(x: Object): Node = x.asInstanceOf[Node]
Thus making currentNode implicitly convertible (i.e. visible) on all its
accessible interfaces.
> Scala Scripting: Make all types of the script arguments visible on the Scala
> side
> ---------------------------------------------------------------------------------
>
> Key: SLING-1236
> URL: https://issues.apache.org/jira/browse/SLING-1236
> Project: Sling
> Issue Type: Improvement
> Components: Scripting
> Reporter: Michael Dürig
> Priority: Minor
> Attachments: SLING-1236.patch
>
>
> 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.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.