View Javadoc
1   package com.atlassian.plugin.web.model;
2   
3   import java.io.IOException;
4   import java.io.Writer;
5   import java.util.Map;
6   
7   /**
8    * The module that is responsive for providing the raw content for a Web Panel.
9    * Whatever is returned by {@link #getHtml(java.util.Map)} is inserted into the
10   * host application's page, so it has to be valid HTML.
11   * <p>
12   * See {@code com.atlassian.plugin.web.descriptors.DefaultWebPanelModuleDescriptor#getModule()}
13   *
14   * @since 2.5.0
15   */
16  public interface WebPanel {
17      /**
18       * Returns the HTML that will be placed in the host application's page.
19       *
20       * @param context the contextual information that can be used during
21       *                rendering. Context elements are not standardized and are
22       *                application-specific, so refer to your application's documentation to
23       *                learn what is available.
24       * @return the HTML that will be placed in the host application's page.
25       */
26      String getHtml(Map<String, Object> context);
27  
28      /**
29       * Writes the HTML for this panel into the supplied writer. This method should be
30       * preferred over {@link #getHtml} for large panels or for applications that make
31       * frequent use of panels, to avoid creating a lot of large garbage buffer strings.
32       *
33       * @param writer  the writer to append the panel output to
34       * @param context the contextual information that can be used during
35       *                rendering. Context elements are not standardized and are
36       *                application-specific, so refer to your application's documentation to
37       *                learn what is available.
38       * @throws IOException if there is some problem writing to the supplied writer
39       * @since 2.11
40       */
41      void writeHtml(Writer writer, Map<String, Object> context) throws IOException;
42  }