Class QueryLabelValuesProvider

Object
com.pullreports.model.QueryLabelValuesProvider
All Implemented Interfaces:
LabelValuesProvider

public class QueryLabelValuesProvider extends Object implements LabelValuesProvider
LabelValuesProvider which retrieves label values from a SQL query.

Schema analog: <label_value_query>

See Also:
  • Field Details

  • Constructor Details

    • QueryLabelValuesProvider

      public QueryLabelValuesProvider(String query)
      Constructs a new QueryLabelValuesProvider that returns a list of LabelValues for the given SQL query. The SQL query must have columns named 'label' and 'value' whose values will be used to construct the LabelValue label and value respectively.
      Parameters:
      query - A SQL query from which to retrieve the label values. The query must have label and value columns named 'label' and 'value' respectively.
    • QueryLabelValuesProvider

      public QueryLabelValuesProvider(String query, String labelColumnName, String valueColumnName)
      Constructs a new QueryLabelValuesProvider that returns a list of LabelValues for the given SQL query, label, and value columns. The returned LabelValues will have a the empty Optional as the group value.
      Parameters:
      query - A SQL query from which to retrieve the label values. The query must have label and value columns named as per the labelColumnName and valueColumnName parameters respectively.
      labelColumnName - The name of the column in the SQL query whose value is the LabelValue label.
      valueColumnName - The name of the column in the SQL query whose value is the LabelValue value.
    • QueryLabelValuesProvider

      public QueryLabelValuesProvider(String query, String labelColumnName, String valueColumnName, String groupColumnName)
      Constructs a new QueryLabelValuesProvider that returns a list of LabelValues for the given SQL query, label, value, and group columns.
      Parameters:
      query - A SQL query from which to retrieve the label values. The query must have label, value, and group columns named as per the labelColumnName, valueColumnName, and groupColumnName parameters respectively. The given SQL query should be ordered by the column identified by groupColumnName.
      labelColumnName - The name of the column in the SQL query whose value is the LabelValue label.
      valueColumnName - The name of the column in the SQL query whose value is the LabelValue value.
      groupColumnName - The name of the column in the SQL query whose value is the LabelValue group.
  • Method Details

    • createLabelValues

      public List<LabelValue> createLabelValues(DataSource dataSource, jakarta.servlet.http.HttpServletRequest request)
      Description copied from interface: LabelValuesProvider
      Returns a List of LabelValue beans to use as values for the parent Column within the Pull Reports Ad Hoc Creator Filter web form. The Ad Hoc Creator uses the labels and values within an HTML <select> element associated with the Filter value field.

      The Ad Hoc Creator will surround consecutive LabelValue beans which have equal group properties with an HTML <optgroup> element labeled with the group.

      Specified by:
      createLabelValues in interface LabelValuesProvider
      Parameters:
      dataSource - The DataSource used to fill the parent Report. Use the dataSource to dynamically materialize a list of LabelValue beans from a JDBC query. Any opened JDBC connection must be closed by the implementing method.
      request - The HttpServletRequest sent to the GET Label Value List API. to retrieve the LabelValue list. Use the request parameter to contextualize the returned list to the current user.
      Returns:
      A List of LabelValue beans representing the values of the parent Column.
    • getLabelColumn

      public String getLabelColumn()
    • getValueColumn

      public String getValueColumn()
    • getGroupColumn

      public Optional<String> getGroupColumn()
    • getQuery

      public String getQuery()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object