package com.github.mikephil.charting.data; import java.util.ArrayList; import java.util.List; /** * A PieData object can only represent one DataSet. Unlike all other charts, the * legend labels of the PieChart are created from the x-values array, and not * from the DataSet labels. Each PieData object can only represent one * PieDataSet (multiple PieDataSets inside a single PieChart are not possible). * * @author Philipp Jahoda */ public class PieData extends ChartData<PieDataSet> { public PieData() { super(); } public PieData(List<String> xVals) { super(xVals); } public PieData(String[] xVals) { super(xVals); } public PieData(List<String> xVals, PieDataSet dataSet) { super(xVals, toList(dataSet)); } public PieData(String[] xVals, PieDataSet dataSet) { super(xVals, toList(dataSet)); } private static List<PieDataSet> toList(PieDataSet dataSet) { List<PieDataSet> sets = new ArrayList<PieDataSet>(); sets.add(dataSet); return sets; } /** * Sets the PieDataSet this data object should represent. * * @param dataSet */ public void setDataSet(PieDataSet dataSet) { mDataSets.clear(); mDataSets.add(dataSet); init(); } /** * Returns the DataSet this PieData object represents. A PieData object can * only contain one DataSet. * * @return */ public PieDataSet getDataSet() { return mDataSets.get(0); } @Override public PieDataSet getDataSetByIndex(int index) { return index == 0 ? getDataSet() : null; } @Override public PieDataSet getDataSetByLabel(String label, boolean ignorecase) { return ignorecase ? label.equalsIgnoreCase(mDataSets.get(0).getLabel()) ? mDataSets.get(0) : null : label.equals(mDataSets.get(0).getLabel()) ? mDataSets.get(0) : null; } }