All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nl.pvanassen.geckoboard.api.widget.GeckOMeter Maven / Gradle / Ivy

The newest version!
package nl.pvanassen.geckoboard.api.widget;

import nl.pvanassen.geckoboard.api.Push;
import nl.pvanassen.geckoboard.api.error.ValidationException;
import nl.pvanassen.geckoboard.api.json.common.GraphType;
import nl.pvanassen.geckoboard.api.json.common.TextStrValueItem;

import com.google.gson.annotations.SerializedName;

/**
 * Geck-o-meter widget
 *
 * @author Paul van Assen
 */
public class GeckOMeter extends Push {

    @SerializedName("type")
    private final GraphType type;

    @SerializedName("item")
    private String current;

    private TextStrValueItem min;

    private TextStrValueItem max;

    public GeckOMeter(String widgetKey, GraphType type) {
        super(widgetKey);
        this.type = type;
    }

    public void setCurrent(String current) {
        this.current = current;
    }

    public void setMax(String label, String value) {
        max = new TextStrValueItem(label, value);
    }

    public void setMin(String label, String value) {
        min = new TextStrValueItem(label, value);
    }

    @Override
    protected void validate() throws ValidationException {
        if (current == null || current.isEmpty()) {
            throw new ValidationException("current", "Must be set");
        }
        if (min == null) {
            throw new ValidationException("min", "Must be set");
        }
        if (max == null) {
            throw new ValidationException("max", "Must be set");
        }
        if (type == null) {
            throw new ValidationException("type", "Must be set");
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy