package jas.hist.util; import jas.hist.HasSlices; import jas.hist.HasStatistics; import jas.hist.HasStyle; import jas.hist.JASHistStyle; import jas.hist.Rebinnable1DHistogramData; import jas.hist.Rebinnable2DHistogramData; import jas.hist.SliceParameters; import jas.hist.Statistics; import java.util.Observable; /** * A class which simply acts as a proxy for the DataSource provided as an argument to its * constructor. Not very useful in itself, but can be used as a base class for more interesting * adapters. */ public class TwoDAdapter extends ObserverAdapter implements Rebinnable2DHistogramData, HasStyle, HasStatistics, HasSlices { protected Rebinnable2DHistogramData source; public TwoDAdapter(Rebinnable2DHistogramData source) { super(source instanceof Observable ? (Observable) source : null); this.source = source; } public double[][][] rebin(int xbins, double xmin, double xmax, int ybins, double ymin, double ymax, boolean wantErrors, boolean hurry, boolean overflow) { return source.rebin(xbins,xmin,xmax,ybins,ymin,ymax,wantErrors,hurry,overflow); } public double getXMin() { return source.getXMin(); } public double getXMax() { return source.getXMax(); } public double getYMin() { return source.getYMin(); } public double getYMax() { return source.getYMax(); } public int getXBins() { return source.getXBins(); } public int getYBins() { return source.getYBins(); } public boolean isRebinnable() { return source.isRebinnable(); } public int getXAxisType() { return source.getXAxisType(); } public int getYAxisType() { return source.getYAxisType(); } public String[] getXAxisLabels() { return source.getXAxisLabels(); } public String[] getYAxisLabels() { return source.getYAxisLabels(); } public String getTitle() { return source.getTitle(); } public JASHistStyle getStyle() { if (source instanceof HasStyle) return ((HasStyle) source).getStyle(); return null; } public Statistics getStatistics() { if (source instanceof HasStatistics) return ((HasStatistics) source).getStatistics(); return null; } public String toString() { return source.toString(); } public int getNSlices() { if (source instanceof HasSlices) return ((HasSlices) source).getNSlices(); return 0; } public SliceParameters getSliceParameters(int n) { return ((HasSlices) source).getSliceParameters(n); } public Rebinnable1DHistogramData getSlice(int n) { return ((HasSlices) source).getSlice(n); } public boolean canAddRemoveSlices() { if (source instanceof HasSlices) return ((HasSlices) source).canAddRemoveSlices(); return false; } public int addSlice(double x, double y, double width, double height, double phi) { return ((HasSlices) source).addSlice(x,y,width,height,phi); } public void removeSlice(int n) { ((HasSlices) source).removeSlice(n); } }