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

org.eclipse.birt.data.AggregationExtension

1.01

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.

<!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.



<!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;



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.

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