protected final Type set()

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;
            }