Class SectionedRenderer<WRITER>

java.lang.Object
com.yahoo.component.AbstractComponent
com.yahoo.processing.rendering.Renderer<Result>
com.yahoo.search.rendering.Renderer
com.yahoo.search.rendering.SectionedRenderer<WRITER>
All Implemented Interfaces:
com.yahoo.component.Component, com.yahoo.component.Deconstructable, Cloneable, Comparable<com.yahoo.component.Component>

public abstract class SectionedRenderer<WRITER> extends Renderer
Renders each part of a result to a writer. The renderers are cloned just before rendering, and must therefore obey the following contract:
  1. At construction time, only final members shall be initialized, and these must refer to immutable data only.
  2. State mutated during rendering shall be initialized in the init method.
Author:
Tony Vaagenes
  • Constructor Details

    • SectionedRenderer

      public SectionedRenderer()
  • Method Details

    • wrapWriter

      public WRITER wrapWriter(Writer writer)
      Wraps the Writer instance. The result is given as a parameter to all the callback methods. Must be overridden if the generic parameter WRITER != java.io.Writer.
    • beginResult

      public abstract void beginResult(WRITER writer, Result result) throws IOException
      Called at the start of rendering.
      Throws:
      IOException
    • endResult

      public abstract void endResult(WRITER writer, Result result) throws IOException
      Called at the end of rendering.
      Throws:
      IOException
    • error

      public abstract void error(WRITER writer, Collection<ErrorMessage> errorMessages) throws IOException
      Called if there are errors in the result.
      Throws:
      IOException
    • emptyResult

      public abstract void emptyResult(WRITER writer, Result result) throws IOException
      Called if there are no hits in the result.
      Throws:
      IOException
    • queryContext

      public abstract void queryContext(WRITER writer, QueryContext queryContext) throws IOException
      Called if there is a non-null query context for the query of the result.
      Throws:
      IOException
    • beginHitGroup

      public abstract void beginHitGroup(WRITER writer, HitGroup hitGroup) throws IOException
      Called when a HitGroup is encountered. After all its children have been provided to methods of this class, endHitGroup is called.
      Throws:
      IOException
    • endHitGroup

      public abstract void endHitGroup(WRITER writer, HitGroup hitGroup) throws IOException
      Called after all the children of the HitGroup have been provided to methods of this class. See beginHitGroup.
      Throws:
      IOException
    • hit

      public abstract void hit(WRITER writer, Hit hit) throws IOException
      Called when a Hit is encountered.
      Throws:
      IOException
    • errorHit

      public void errorHit(WRITER writer, ErrorHit errorHit) throws IOException
      Called when an errorHit is encountered. Forwards to hit() per default.
      Throws:
      IOException
    • beginGroup

      public void beginGroup(WRITER writer, Group group) throws IOException
      Same as beginHitGroup, but for Group(grouping api). Forwards to beginHitGroup() per default.
      Throws:
      IOException
    • endGroup

      public void endGroup(WRITER writer, Group group) throws IOException
      Same as endHitGroup, but for Group(grouping api). Forwards to endHitGroup() per default.
      Throws:
      IOException
    • beginGroupList

      public void beginGroupList(WRITER writer, GroupList groupList) throws IOException
      Same as beginHitGroup, but for GroupList(grouping api). Forwards to beginHitGroup() per default.
      Throws:
      IOException
    • endGroupList

      public void endGroupList(WRITER writer, GroupList groupList) throws IOException
      Same as endHitGroup, but for GroupList(grouping api). Forwards to endHitGroup() per default.
      Throws:
      IOException
    • beginHitList

      public void beginHitList(WRITER writer, HitList hitList) throws IOException
      Same as beginHitGroup, but for HitList(grouping api). Forwards to beginHitGroup() per default.
      Throws:
      IOException
    • endHitList

      public void endHitList(WRITER writer, HitList hitList) throws IOException
      Same as endHitGroup, but for HitList(grouping api). Forwards to endHitGroup() per default.
      Throws:
      IOException
    • render

      public final void render(Writer writer, Result result) throws IOException
      Picks apart the result and feeds it to the other methods.
      Specified by:
      render in class Renderer
      Throws:
      IOException