You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Michael Dürig (JIRA)" <ji...@apache.org> on 2009/12/11 21:16:18 UTC

[jira] Updated: (SLING-1236) Scala Scripting: Make all types of the script arguments visible on the Scala side

     [ 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.