You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pivot.apache.org by "Niclas Hedhman (JIRA)" <ji...@apache.org> on 2011/02/08 03:44:57 UTC

[jira] Commented: (PIVOT-703) Allow BXMLSerializer.bind() to access superclass fields

    [ https://issues.apache.org/jira/browse/PIVOT-703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12991772#comment-12991772 ] 

Niclas Hedhman commented on PIVOT-703:
--------------------------------------

Current and proposed implementation seems to only worry about public fields (no setAccessible() present, but is perhaps done elsewhere) so getFields() is most convenient to do, but there is value in doing injection on private fields;

Proper private field injection should loop through the super-classes, do getDeclaredFields() and for each field it needs to inject do a field.setAccessible(true) and field.set( obj, value ).

What is important to know about reflection;

  * getDeclaredFields() only gets all field on the queried class. getFields() returns all public fields in the queried class and its superclasses.

  * Without setAccessible(true), it is not possible to set private members. 



> Allow BXMLSerializer.bind() to access superclass fields
> -------------------------------------------------------
>
>                 Key: PIVOT-703
>                 URL: https://issues.apache.org/jira/browse/PIVOT-703
>             Project: Pivot
>          Issue Type: Improvement
>          Components: core-beans
>    Affects Versions: 2.0
>         Environment: Windows XP SP3, Java version "1.6.0_23"
>            Reporter: Roger Whitcomb
>            Priority: Minor
>              Labels: features
>             Fix For: 2.0.1
>
>         Attachments: diff
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> Loading a standard object from a BXML file (such as a "Dialog") so that the code to bind to a superclass when the Bindable interface is present on the serialized object is not exercised, allow "bind" to find public fields in a superclass by calling "getField()" if "getDeclaredField()" fails.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira