Class Choice

  • All Implemented Interfaces:
    com.yahoo.component.provider.Freezable, PageElement

    public final class Choice
    extends AbstractChoice
    A choice between some alternative lists of page elements.
    Author:
    bratseth
    • Constructor Detail

      • Choice

        public Choice()
        Creates an empty choice
      • Choice

        public Choice​(List<List<PageElement>> alternatives)
        Creates a choice between some alternatives. This method takes a copy of the given lists.
    • Method Detail

      • createSingleton

        public static Choice createSingleton​(PageElement singletonAlternative)
        Creates a choice having a single alternative having a single page element
      • createSingletons

        public static Choice createSingletons​(List<PageElement> alternatives)
        Creates a choice in which each alternative consists of a single element
      • alternatives

        public List<List<PageElement>> alternatives()
        Returns the alternatives of this as a live reference to the alternatives of this. The list and elements may be modified unless this is frozen. This is never null.
      • get

        public List<PageElement> get​(int index)
        Convenience shorthand of return alternatives().get(index)
      • add

        public void add​(List<PageElement> alternative)
        Convenience shorthand for if (alternative!=null) alternatives().add(alternative)
      • isEmpty

        public boolean isEmpty()
        Returns true only if there are no alternatives in this
      • isChoiceBetween

        public boolean isChoiceBetween​(Class pageTemplateModelElementClass)
        Answers true if this is either a choice between the given class, or between Lists of the given class
        Specified by:
        isChoiceBetween in class AbstractChoice
      • freeze

        public void freeze()
        Specified by:
        freeze in interface com.yahoo.component.provider.Freezable
        Overrides:
        freeze in class com.yahoo.component.provider.FreezableClass
      • accept

        public void accept​(PageTemplateVisitor visitor)
        Accepts a visitor to this structure