package com.github.mikephil.charting.data;
/**
* Class representing one entry in the chart. Might contain multiple values.
* Might only contain a single value depending on the used constructor.
*
* @author Philipp Jahoda
*/
public class Entry {
/** the actual value */
private float mVal = 0f;
/** the index on the x-axis */
private int mXIndex = 0;
/** optional spot for additional data this Entry represents */
private Object mData = null;
/**
* A Entry represents one single entry in the chart.
*
* @param val the y value (the actual value of the entry)
* @param xIndex the corresponding index in the x value array (index on the
* x-axis of the chart, must NOT be higher than the length of the
* x-values String array)
*/
public Entry(float val, int xIndex) {
mVal = val;
mXIndex = xIndex;
}
/**
* A Entry represents one single entry in the chart.
*
* @param val the y value (the actual value of the entry)
* @param xIndex the corresponding index in the x value array (index on the
* x-axis of the chart, must NOT be higher than the length of the
* x-values String array)
* @param data Spot for additional data this Entry represents.
*/
public Entry(float val, int xIndex, Object data) {
this(val, xIndex);
this.mData = data;
}
/**
* returns the x-index the value of this object is mapped to
*
* @return
*/
public int getXIndex() {
return mXIndex;
}
/**
* sets the x-index for the entry
*
* @param x
*/
public void setXIndex(int x) {
this.mXIndex = x;
}
/**
* Returns the total value the entry represents.
*
* @return
*/
public float getVal() {
return mVal;
}
/**
* Sets the value for the entry.
*
* @param val
*/
public void setVal(float val) {
this.mVal = val;
}
/**
* Returns the data, additional information that this Entry represents, or
* null, if no data has been specified.
*
* @return
*/
public Object getData() {
return mData;
}
/**
* Sets additional data this Entry should represent.
*
* @param data
*/
public void setData(Object data) {
this.mData = data;
}
/**
* returns an exact copy of the entry
*
* @return
*/
public Entry copy() {
Entry e = new Entry(mVal, mXIndex, mData);
return e;
}
/**
* Compares value, xIndex and data of the entries. Returns true if entries
* are equal in those points, false if not. Does not check by hash-code like
* it's done by the "equals" method.
*
* @param e
* @return
*/
public boolean equalTo(Entry e) {
if (e == null)
return false;
if (e.mData != this.mData)
return false;
if (e.mXIndex != this.mXIndex)
return false;
if (Math.abs(e.mVal - this.mVal) > 0.00001f)
return false;
return true;
}
/**
* returns a string representation of the entry containing x-index and value
*/
@Override
public String toString() {
return "Entry, xIndex: " + mXIndex + " val (sum): " + getVal();
}
}