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/10/06 14:04:31 UTC

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

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
            Reporter: Gerhard Petracek
            Priority: Minor


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.