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

net.anotheria.moskito.webui.gauges.api.GaugeAO Maven / Gradle / Ivy

There is a newer version: 4.0.3
Show newest version
package net.anotheria.moskito.webui.gauges.api;

import net.anotheria.moskito.core.decorators.value.StatValueAO;
import net.anotheria.moskito.webui.shared.resource.adapters.StatValueAOMarshallingAdapter;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;

/**
 * Represents a gauge with its values.
 *
 * @author lrosenberg
 * @since 23.03.15 21:40
 */
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class GaugeAO implements Serializable{
	/**
	 * SerialVersionUID.
	 */
	private static final long serialVersionUID = 1554363798887359631L;

	/**
	 * Name of the gauge.
	 */
	@XmlElement
	private String name;

	/**
	 * Caption of the gauge box.
	 */
	@XmlElement
	private String caption;

	/**
	 * Min value.
	 */
	@XmlJavaTypeAdapter(StatValueAOMarshallingAdapter.class)
	@XmlElement
	private StatValueAO min;

	/**
	 * Current value.
	 */
	@XmlJavaTypeAdapter(StatValueAOMarshallingAdapter.class)
	@XmlElement
	private StatValueAO current;

	/**
	 * Max value.
	 */
	@XmlJavaTypeAdapter(StatValueAOMarshallingAdapter.class)
	@XmlElement
	private StatValueAO max;

	/**
	 * Could all values be set?
	 */
	@XmlElement
	private boolean complete;

	/**
	 * Zones associated with this gauge.
	 */
	private List zones = new LinkedList();

	public StatValueAO getCurrent() {
		return current;
	}

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

	public StatValueAO getMax() {
		return max;
	}

	public void setMax(StatValueAO max) {
		this.max = max;
	}

	public StatValueAO getMin() {
		return min;
	}

	public void setMin(StatValueAO min) {
		this.min = min;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public boolean isComplete() {
		return complete;
	}

	public void setComplete(boolean complete) {
		this.complete = complete;
	}

	public String getCurrentValue(){
		return current.getRawValue();
	}

	public String getMinValue(){
		return min.getRawValue();
	}

	public String getMaxValue(){
		return max.getRawValue();
	}

	@Override
	public String toString() {
		return "GaugeAO{" +
				"name="+name+
				", current=" + current +
				", min=" + min +
				", max=" + max +
				", zones= "+zones+
				'}';
	}

	@Override
	public boolean equals(Object o) {
		if (this == o) return true;
		if (o == null || getClass() != o.getClass()) return false;

		GaugeAO gaugeAO = (GaugeAO) o;

		return name.equals(gaugeAO.name);

	}

	@Override
	public int hashCode() {
		return name.hashCode();
	}

	public String getCaption() {
		return caption;
	}

	public void setCaption(String caption) {
		this.caption = caption;
	}

	public List getZones() {
		return zones;
	}

	public void setZones(List zones) {
		this.zones = zones;
	}

	public void addZone(GaugeZoneAO zone){
		zones.add(zone);
	}

	public boolean getCustomZonesAvailable(){
		return zones!=null && zones.size()>0;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy