package hep.aida.ref.plotter.adapter;

import jas.hist.*;
import hep.aida.*;

/**
 * @author manj
 * @version $Id: AIDAHistogramAdapter1D.java,v 1.3 2005/02/09 02:35:32 serbo Exp $
 */
public class AIDAHistogramAdapter1D extends AIDAHistogramAdapter implements Rebinnable1DHistogramData, HasStatistics
{
    
    AIDAHistogramAdapter1D(IHistogram1D histo)
   {
      super(histo);
      this.histo=histo;
   }  
   public double[][] rebin(int bins, double min, double max, boolean wantErrors, boolean hurry)
   {
      setValid();
      double[][] data=new double[2][histo.axis().bins()];
      for(int i=0;i<histo.axis().bins();i++)
      {
         data[0][i]=histo.binHeight(i);
         if (Double.isInfinite(data[0][i])) data[0][i] = Double.NaN;
         data[1][i]=histo.binError(i);
      }
      return data;
   }
   /**
    * Returns the (suggested) minimum value for the X axis
    */
   public double getMin()
   {
      return histo.axis().lowerEdge();
   }
   public double getMax()
   {
      return histo.axis().upperEdge();
   }
   public int getBins()
   {
      return histo.axis().bins();
   }
   public boolean isRebinnable()
   {
      return false;
   }
    public void setAxisType( int type ) {
        this.axisType = type;
    }
    
    public int getAxisType() {
        return axisType;
    }
    
   public String[] getAxisLabels()
   {
      return null;
   }
   public String getTitle()
   {
      return histo.title();
   }
   public Statistics getStatistics()
   {
      return new AIDAHistogramStatistics1D(histo);  
   }
   private IHistogram1D histo;
}
