/*
* Smart GWT (GWT for SmartClient)
* Copyright 2008 and beyond, Isomorphic Software, Inc.
*
* Smart GWT is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License version 3
* as published by the Free Software Foundation. Smart GWT is also
* available under typical commercial license terms - see
* http://smartclient.com/license
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package com.smartgwt.client.types;
/**
* Function to produce a summary value based on an array of records and a field definition. An example usage is the
* {@link com.smartgwt.client.widgets.grid.ListGrid#setShowGridSummary 'summary row'}, where a row is shown at the
* bottom of the listGrid containing summary information about each column.
* <p>
* SummaryFunctions may be specified in one of 2 ways:
* <ul>
* <li>as an explicit function that takes 3 parameters:<br>
* - <code>records</code> an array of records<br>
* - <code>field</code> the field definition for which the summary is required
* </li>
* <li>As an predefined {@link SummaryFunctionType} type.
* </ul>
*
*
*/
public enum SummaryFunctionType implements ValueEnum {
/**
* Iterates through the set of records, picking up and summing all numeric values for the specified field. Returns
* null to indicate invalid summary value if any non numeric field values are encountered.
*/
SUM("sum"),
/**
* Iterates through the set of records, picking up all numeric values for the specified field and determining the mean
* value. Returns null to indicate invalid summary value if any non numeric field values are encountered.
*/
AVG("avg"),
/**
* Iterates through the set of records, picking up all values for the specified field and finding the maximum value.
* Handles numeric fields and date type fields only. Returns null to indicate invalid summary value if any non
* numeric/date field values are encountered.
*/
MAX("max"),
/**
* Iterates through the set of records, picking up all values for the specified field and finding the minimum value.
* Handles numeric fields and date type fields only. Returns null to indicate invalid summary value if any non numeric
* field values are encountered.
*/
MIN("min"),
/**
* Iterates through the set of records, picking up all numeric values for the specified field and multiplying them together.
* Returns null to indicate invalid summary value if any non numeric field values are encountered.
*/
MULTIPLIER("multiplier"),
/**
* Returns a numeric count of the total number of records passed in.
*/
COUNT("count"),
/**
* Returns <code>field.summaryValueTitle</code> if specified, otherwise <code>field.title</code>
*/
TITLE("title");
private String value;
SummaryFunctionType(String value) {
this.value = value;
}
public String getValue() {
return this.value;
}
}