*
* @return The Color of the interval in which the value falls
*/
public ThresholdValue getThresholdOfValue() {
logger.debug("IN");
ThresholdValue toReturn = null;
Double val = new Double(value);
if (thresholdValues != null && !thresholdValues.isEmpty()) {
Iterator it = thresholdValues.iterator();
while (it.hasNext()) {
ThresholdValue t = (ThresholdValue) it.next();
String type = t.getThresholdType();
Double min = t.getMinValue();
Double max = t.getMaxValue();
Boolean min_closed = t.getMinClosed()!=null?t.getMinClosed():false;
Boolean max_closed = t.getMaxClosed()!=null?t.getMaxClosed():false;
if (type.equals("RANGE")) {
logger.debug("Threshold type RANGE");
if(min_closed && max_closed){
if (min != null && min.doubleValue()<= val.doubleValue()&& max!=null && val.doubleValue() <= max.doubleValue()) {
toReturn = t;
break;
}else if(min==null && max!=null && val.doubleValue() <= max.doubleValue()){
toReturn = t;
break;
}else if(max == null && min != null && min.doubleValue()<= val.doubleValue()){
toReturn = t;
break;
}
}else if(min_closed && !max_closed){
if (min != null && min.doubleValue()<= val.doubleValue()&& max!=null && val.doubleValue() < max.doubleValue()) {
toReturn = t;
break;
}else if(min==null && max!=null && val.doubleValue() < max.doubleValue()){
toReturn = t;
break;
}else if(max == null && min != null && min.doubleValue()<= val.doubleValue()){
toReturn = t;
break;
}
}else if(!min_closed && max_closed){
if (min != null && min.doubleValue()< val.doubleValue()&& max!=null && val.doubleValue() <= max.doubleValue()) {
toReturn = t;
break;
}else if(min==null && max!=null && val.doubleValue() <= max.doubleValue()){
toReturn = t;
break;
}else if(max == null && min != null && min.doubleValue()< val.doubleValue()){
toReturn = t;
break;
}
}else{
if (min != null && min.doubleValue()< val.doubleValue()&& max!=null && val.doubleValue() < max.doubleValue()) {
toReturn = t;
break;
}else if(min==null && max!=null && val.doubleValue() < max.doubleValue()){
toReturn = t;
break;
}else if(max == null && min != null && min.doubleValue()< val.doubleValue()){
toReturn = t;
break;
}
}
} else if (type.equals("MINIMUM")) {
logger.debug("Threshold type MINIMUM");
if(min_closed){
if (val.doubleValue() <= min.doubleValue()) {
toReturn = t;
break;
}else {
t.setColor(Color.WHITE) ;
toReturn = t;
break;
}
}else{
if (val.doubleValue() < min.doubleValue()) {
toReturn = t;
break;
}else {
t.setColor(Color.WHITE) ;
toReturn = t;
break;
}
}
} else if (type.equals("MAXIMUM")) {
logger.debug("Threshold type MAXIMUM");
if(max_closed){
if (val.doubleValue() >= max.doubleValue()) {
toReturn = t;
} else {
t.setColor(Color.WHITE);
toReturn = t;
break;
}
}else{
if (val.doubleValue() > max.doubleValue()) {
toReturn = t;
} else {
t.setColor(Color.WHITE);
toReturn = t;
break;
}
}
}