Class Choice

java.lang.Object
com.yahoo.component.provider.FreezableClass
com.yahoo.search.pagetemplates.model.AbstractChoice
com.yahoo.search.pagetemplates.model.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 Details

    • 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 Details

    • 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
    • toString

      public String toString()
      Overrides:
      toString in class Object