You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Gerhard Petracek (JIRA)" <de...@myfaces.apache.org> on 2010/12/22 12:59:01 UTC

[jira] Resolved: (EXTCDI-72) support for view-config inheritance in case of nested interfaces

     [ https://issues.apache.org/jira/browse/EXTCDI-72?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gerhard Petracek resolved EXTCDI-72.
------------------------------------

       Resolution: Fixed
    Fix Version/s: 0.9.2

> support for view-config inheritance in case of nested interfaces
> ----------------------------------------------------------------
>
>                 Key: EXTCDI-72
>                 URL: https://issues.apache.org/jira/browse/EXTCDI-72
>             Project: MyFaces CODI
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 0.9.0
>            Reporter: Gerhard Petracek
>            Priority: Minor
>             Fix For: 0.9.2
>
>         Attachments: EXTCDI-72.patch
>
>
> currently it's possible to provide configs via inheritance
> e.g.:
> @Page(navigation = REDIRECT)
> public abstract class Pages implements ViewConfig
> {
>     @Page
>     public final class Page1 extends Pages
>     {
>     }
>     @Page
>     public final class Page2 extends Pages
>     {
>     }
> }
> ... navigation to Page1 and Page2 will be done via a redirect (because the config is inherited).
> in case of deeper nesting you can't use every nested class for providing configs for the nested classes
> e.g.:
> //@Page(...)
> public class Pages implements ViewConfig
> {
>     public class UseCase1 extends Pages
>     {
>         //@Page(...)
>         public class Wizard1 extends Pages 
>         {
>             @Page
>             public final class Step1 extends Wizard1
>             {
>             }
>             @Page
>             public final class Step2 extends Wizard1
>             {
>             }
>         }
>     }
> }
> ... allows to provide centralized configs for Step1 and Step2 at Wizard1 and Pages (because they inherit them in-/directly), however, in this case it isn't possible to provide shared meta-data at UseCase1. so it's just used for the path to the page. as an alternative to the UseCase1 level it's possible to remove it and provide a basePath (which contains the useCase1 folder) manually.
> it should be possible to use:
> public interface Pages extends ViewConfig
> {
>     //@Page(...)
>     public interface UseCase1 extends Pages
>     {
>         public interface Wizard1 extends UseCase1
>         {
>             @Page
>             public final class Step1 implements Wizard1
>             {
>             }
>             @Page
>             public final class Step2 implements Wizard1
>             {
>             }
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.