Code Search for Developers
 
 
  

TotalMin.java from BIRT at Krugle


Show TotalMin.java syntax highlighted

/*
 *************************************************************************
 * Copyright (c) 2004 Actuate Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *  Actuate Corporation  - initial API and implementation
 *  
 *************************************************************************
 */
package org.eclipse.birt.data.engine.aggregation;

import org.eclipse.birt.data.engine.api.aggregation.Accumulator;
import org.eclipse.birt.data.engine.api.aggregation.IAggregation;

/**
 * 
 * Implements the built-in Total.min aggregation
 */
public class TotalMin implements IAggregation
{

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.birt.data.engine.aggregation.Aggregation#getName()
     */
    public String getName()
    {
        return BuiltInAggregationFactory.TOTAL_MIN_FUNC;
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.birt.data.engine.aggregation.Aggregation#getType()
     */
    public int getType()
    {
        return SUMMARY_AGGR;
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.birt.data.engine.aggregation.Aggregation#getParameterDefn()
     */
    public boolean[] getParameterDefn()
    {
        return new boolean[] { true };
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.birt.data.engine.aggregation.Aggregation#newAccumulator()
     */
    public Accumulator newAccumulator()
    {
        return new MyAccumulator();
    }

    private class MyAccumulator extends SummaryAccumulator
    {
        private Object min = null;

        public void start()
        {
            super.start();
            min = null;
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.birt.data.engine.aggregation.Accumulator#onRow(java.lang.Object[])
         */
        public void onRow(Object[] args)
        {
            assert (args.length > 0);
            if (args[0] != null)
            {
                if (min==null)
                {
                    min = args[0];
                }
                if (isLessThan(args[0],min))
                {
                    min = args[0];
                }
            }

        }
        
        private boolean isLessThan(Object origin, Object target)
        {
            if((origin instanceof Comparable)&&(target instanceof Comparable))
            {
                return ((Comparable)origin).compareTo(target)<0;
            }
            else
            {
                throw new RuntimeException("can't get max value!");
            }
        }

        /*
         * (non-Javadoc)
         * 
         * @see org.eclipse.birt.data.engine.aggregation.SummaryAccumulator#getSummaryValue()
         */
        public Object getSummaryValue()
        {
            return min;
        }

    }
}



See more files for this project here

BIRT

BIRT is an open source, Eclipse-based reporting system that integrates with your application to produce compelling reports for both web and PDF.

Project homepage: http://www.eclipse.org/birt/phoenix/
Programming language(s): Java,XML
License: gpl2

  rank/
    BaseTopBottomAccumulator.java
    BaseTopBottomAggregation.java
    BasicCachedListExt.java
    NAccumulator.java
    PercentAccumulator.java
    PercentileAccumulator.java
    RankAggregationUtil.java
    TotalIsBottomN.java
    TotalIsBottomNPercent.java
    TotalIsTopN.java
    TotalIsTopNPercent.java
    TotalPercentRank.java
    TotalPercentSum.java
    TotalPercentile.java
    TotalQuartile.java
    TotalRank.java
  AggregationFactory.java
  BuiltInAggregationFactory.java
  Finance.java
  RunningAccumulator.java
  SummaryAccumulator.java
  TotalAve.java
  TotalCount.java
  TotalCountDistinct.java
  TotalFirst.java
  TotalIrr.java
  TotalLast.java
  TotalMax.java
  TotalMedian.java
  TotalMin.java
  TotalMirr.java
  TotalMode.java
  TotalMovingAve.java
  TotalNpv.java
  TotalRunningCount.java
  TotalRunningNpv.java
  TotalRunningSum.java
  TotalStdDev.java
  TotalSum.java
  TotalVariance.java
  TotalWeightedAve.java
  package.html