package dr.inference.trace;
/**
* @author Walter Xie
*/
public class Filter {
Object[] in; // keep Object[] for java swing
public Filter(Object[] in) {
setIn(in);
}
public boolean isIn(Object value, TraceFactory.TraceType traceType) {
if (traceType == TraceFactory.TraceType.DOUBLE) {
// double filter passing String type for in[]
return ( (Double)value >= Double.valueOf(in[0].toString()) && (Double)value <= Double.valueOf(in[1].toString()));
}
for (Object t : in) {
if (t.toString().equals(value.toString())) {
return true;
}
}
return false;
}
public String[] getIn() {
String[] inString = new String[in.length];
for (int i = 0; i < in.length; i++) {
inString[i] = in[i].toString();
}
return inString;
}
public void setIn(Object[] in) {
this.in = in;
}
public String getStatusMessage() {
String message = /*traceName +*/ " is filtered";
// if (traceType == TraceFactory.TraceType.DOUBLE) {
// message += " into range [" + in[0] + ", " + in[1] + "]";
// } else {
// message += " by selecting {";
// for (Object t : in) {
// message += t.toString() + ", ";
// }
// message = message.substring(0, message.lastIndexOf(", ")); // remove ", " for last in[]
// message += "}";
// }
return message;
}
}