/*
* Copyright (c) 2012 Diamond Light Source Ltd.
*
* 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
*/
package uk.ac.diamond.scisoft.analysis.plotserver;
import java.io.Serializable;
import org.eclipse.january.dataset.Dataset;
import org.eclipse.january.dataset.IDataset;
/**
* This bean holds a single dataset along with its axis information. The axis
* data is actually provided by the DataBean, which is the object that contains
* this one
*/
public class DatasetWithAxisInformation implements Serializable {
private Dataset data;
private AxisMapBean axisMap;
/**
* @return Returns the data.
*/
public Dataset getData() {
return data;
}
/**
* @param data
* The data to set.
*/
public void setData(IDataset data) {
this.data = DataBean.santiseDataset(data);
}
/**
* @return Returns the axisMap.
*/
public AxisMapBean getAxisMap() {
return axisMap;
}
/**
* @param axisMap
* The axisMap to set.
*/
public void setAxisMap(AxisMapBean axisMap) {
this.axisMap = axisMap;
}
/**
* This method builds the axis information into the 1D dataset
*
* @param data
* The dataset which is to be plotted
* @return The dataset with Axis info included
*/
public static DatasetWithAxisInformation createAxisDataSet(IDataset data) {
return createAxisDataSet(data, AxisMapBean.XAXIS);
}
/**
* This method builds the axis information into the 1D dataset
* @param data
* @param axisDatasetID
* @return dataset with axis info
*/
public static DatasetWithAxisInformation createAxisDataSet(IDataset data, String axisDatasetID) {
return createAxisDataSet(data, new String[] {axisDatasetID}, null);
}
/**
* This method builds the axis information into the 1D dataset
* @param data
* @param axisDatasetID
* @param axisName
* @return dataset with axis info
*/
public static DatasetWithAxisInformation createAxisDataSet(IDataset data, String axisDatasetID, String axisName) {
return createAxisDataSet(data, new String[] {axisDatasetID}, new String[] {axisName});
}
/**
* This method builds the axis information into the nD dataset
* @param data
* @param axisDatasetIDs
* @param axisNames can be null or contain nulls
* @return dataset with axis info
*/
public static DatasetWithAxisInformation createAxisDataSet(IDataset data, String[] axisDatasetIDs, String[] axisNames) {
DatasetWithAxisInformation axisData = new DatasetWithAxisInformation();
AxisMapBean axisMapBean = new AxisMapBean();
axisMapBean.setAxisID(axisDatasetIDs.clone());
if (axisNames != null) {
axisMapBean.setAxisNames(axisNames.clone());
}
axisData.setAxisMap(axisMapBean);
axisData.setData(data);
return axisData;
}
@Override
public String toString() {
return data + "; axisMap = " + axisMap;
}
}