#
org.eclipse.birt.data.engine.aggregation.extension

###### Identifier:

org.eclipse.birt.data.AggregationExtension

###### Since:

1.01

###### Description:

This extension point is used to support the extension of BIRT aggregations.Each implementation of this extension must comply to interfaces defined in the org.eclipse.birt.engine.api.aggregation package. All extended aggregations would be referenced in design time with prefix "Total". Say, user may define an aggregation with name "UserAggression". Then this aggregation will be referenced as "Total.UserAggression()" in design.

###### Configuration Markup:

<!ELEMENT extension (Aggregations)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

This extension point is used to extend aggregation functions. User may define their own aggregation functions through this extension point.

<!ELEMENT Aggregations (Aggregation*)>

Aggregations is a collection of aggregation.

<!ELEMENT UIInfo EMPTY>

<!ATTLIST UIInfo

tip CDATA #IMPLIED

textData CDATA #IMPLIED

parameterMetaInfo CDATA #IMPLIED>

UI information which is used in expression builder.

- tip - The tip which would be displayed in ui when mouse pointer hovers.
- textData - The text which would be insert into script editor in expression builder.
- parameterMetaInfo - The parameter metadata info. Say, a function Sum may presented in ui as "Sum(number a)". Here the "number a" is the parameter metadata info.

<!ELEMENT Aggregation (UIInfo?)>

<!ATTLIST Aggregation

name CDATA #REQUIRED

aggregationClass CDATA #REQUIRED>

An aggregation name should identical to its function name. Say, to invoke an extended aggregation function ABC() in BIRT, the name of that function should be "ABC". And user call that function using script "Total.ABC()". The following function names are of built-in functions and are excluded from user-selectable function names: COUNT,SUM,MAX,MIN,AVE,WEIGHTEDAVE,MOVINGAVE,MEDIAN,MODE,STDDEV,VARIANCE,FIRST,LAST,RUNNINGSUM,IRR,MIRR,NPV, RUNNINGNPV,COUNTDISTINCT;

- name - The name of this aggregation. The name should be unique and should equal to the function name.
- aggregationClass - The class which implements the aggregation.

###### Examples:

<runtime> </runtime> <requires> </requires> <Aggregations> </Aggregations>

###### API Information:

All aggregation extension must implement interfaces defined in org.eclipse.birt.data.engine.api.aggregation package. See the package's JavaDoc documentation and API interfaces for more information.

###### Supplied Implementation:

The plugin in directory test\org.eclipse.birt.data\test\plugins\org.eclipse.birt.thirdparty.aggregation is an example implementation of this extension point.

Copyright (c) 2004-2005 Actuate Corporation. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v2.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-2.0.html