package jas2.hep;
import jas2.hist.*;
import jas2.hist.util.*;
import hepjas.analysis.*;
import hepjas.analysis.partition.*;
import java.util.*;
/**
* Converts a hep.analysis.Partition to a jas2.hist.DataSource
*/
public abstract class PartitionAdapter extends ObserverAdapter implements DataSource, HasStatistics
{
/**
* Create a DataSource from a Histogram
*/
public static DataSource create(Histogram h)
{
return PartitionAdapter.create(h.getPartition(),h.getName());
}
/**
* Create a DataSource from a Partition and a String (title)
*/
public static DataSource create(Partition partition, String title)
{
PartitionAdapter result;
if (partition instanceof Abstract1DPartition)
result = new Partition1DAdapter((Abstract1DPartition) partition);
else if (partition instanceof Abstract2DPartition)
{
if (partition instanceof ScatterDataSource)
{
result = new ScatterAdapter((Abstract2DPartition) partition);
}
else
{
result = new Partition2DAdapter((Abstract2DPartition) partition);
}
}
else throw new IllegalArgumentException("Argument is an unknown subtype of Partition");
result.m_title = title;
result.m_partition = partition;
return result;
}
PartitionAdapter(Observable obs)
{
super(obs);
}
public void notifyObservers(Object arg)
{
if (arg instanceof PartitionNotification)
arg = HistogramUpdateAdapter.create((PartitionNotification) arg);
super.notifyObservers(arg);
}
public jas2.hist.Statistics getStatistics()
{
return new StatisticsAdapter(m_partition.getStatistics());
}
public String getTitle()
{
return m_title;
}
public String toString()
{
final hepjas.analysis.partition.Statistics stats = m_partition.getStatistics();
if (stats != null) return getTitle()+": "+stats;
else return getTitle()+": no statistics available";
}
private String m_title;
private Partition m_partition;
}
Ads help maintain this website.