in java/ws-server/src/main/java/com/epam/deltix/tbwg/webapp/services/grafana/qql/SelectBuilder2.java [512:564]
protected final Type set(boolean in, String... values) throws WrongTypeException {
Set<Object> parsed = new HashSet<>();
boolean hasNull = false;
for (String v : values) {
if (v == null) {
hasNull = true;
} else {
Object parsedObject = parseValue(dataType, v);
if (parsedObject == null) {
hasNull = true;
} else {
parsed.add(parsedObject);
}
}
}
if (parsed.isEmpty()) {
if (hasNull) {
if (in) {
return isNull();
} else {
return notNull();
}
}
return Type.this;
}
StringBuilder sb = new StringBuilder();
sb.append('(');
if (in) {
sb.append(getFullName()).append(" in ");
} else {
sb.append(getFullName()).append(" not in ");
}
List<Object> list = new ArrayList<>(parsed);
if (dataType instanceof VarcharDataType) {
appendStringSet(list, sb);
} else if (dataType instanceof EnumDataType) {
appendEnumSet((EnumDataType) dataType, list, sb);
} else {
appendSet(list, sb);
}
if (hasNull) {
if (in) {
sb.append(" or ").append(getFullName());
sb.append(" = null");
} else {
sb.append(" and ").append(getFullName());
sb.append(" != null");
}
}
sb.append(')');
options.add(sb.toString());
return Type.this;
}