[arquillian-issues] [JBoss JIRA] (ARQGRA-326) Support for full initialization of outer class instance of a page fragment declared as inner class

Juraj Húska (JIRA) jira-events at lists.jboss.org
Fri Aug 16 07:37:26 EDT 2013


Juraj Húska created ARQGRA-326:
----------------------------------

             Summary: Support for full initialization of outer class instance of a page fragment declared as inner class
                 Key: ARQGRA-326
                 URL: https://issues.jboss.org/browse/ARQGRA-326
             Project: Arquillian Graphene
          Issue Type: Feature Request
          Components: core
    Affects Versions: 2.0.0.Alpha4
            Reporter: Juraj Húska
            Priority: Minor


If a Page Fragment is declared as inner class, then it can not access the fields of its outer class, as their are not inicialized by Graphene Enrichers, thus are {{null}}.

The possible ugly workaround for such initialization can be:
{code}
if (pageFragment.getClass().getEnclosingClass() != null) { 
           Field field = pageFragment.getClass().getDeclaredField("this$0");
           field.setAccessible(true);
           Object outer = field.get(pageFragment);
           enrichRecursively(root, outer);
}
{code}

It should be placed in some utility class, so it can be easily unit tested.

There is one drawback of this method and that is, the outer class can not contain injection point for the inner class, otherwise it will cycle. The inner class can be obtained only dynamically via {{Graphene.createPageFragment}}.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the arquillian-issues mailing list