// Path: src/main/java/com/byteowls/vaadin/chartjs/utils/JsonBuilder.java
// public interface JsonBuilder {
// 
//     /**
//      * For internal use only
//      *
//      * @return the JsonObject, which is sent to the client connector
//      */
//     JsonObject buildJson();
// }


import java.io.Serializable;
import java.util.List;
import com.byteowls.vaadin.chartjs.utils.JsonBuilder;
package com.byteowls.vaadin.chartjs.data;



/**
 * @author michael@byteowls.com
 */
public interface Dataset<T, D> extends JsonBuilder, Serializable {

    T data(@SuppressWarnings("unchecked") D... data);

    T dataAsList(List<D> data);

    List<D> getData();

    /**
     * Add the data value with a label. This is useful if you dynamically build labels and the datasets.
     * @param label the label the data belongs to
     * @param data
     * @return
     * @see Data#extractLabelsFromDataset(boolean)
     */
// Path: src/main/java/com/byteowls/vaadin/chartjs/utils/JsonBuilder.java
// public interface JsonBuilder {
// 
//     /**
//      * For internal use only
//      *
//      * @return the JsonObject, which is sent to the client connector
//      */
//     JsonObject buildJson();
// }


// Path: src/main/java/com/byteowls/vaadin/chartjs/data/Dataset.java
import java.io.Serializable;
import java.util.List;
import com.byteowls.vaadin.chartjs.utils.JsonBuilder;

package com.byteowls.vaadin.chartjs.data;



/**
 * @author michael@byteowls.com
 */
public interface Dataset<T, D> extends JsonBuilder, Serializable {

    T data(@SuppressWarnings("unchecked") D... data);

    T dataAsList(List<D> data);

    List<D> getData();

    /**
     * Add the data value with a label. This is useful if you dynamically build labels and the datasets.
     * @param label the label the data belongs to
     * @param data
     * @return
     * @see Data#extractLabelsFromDataset(boolean)
     */
    T addLabeledData(String label, D data);