List<String> keys = new ArrayList<>(variableDepthMap.getKeys()); keys.add(variable.getId()); if (variable.isMultiValue()) { nestedVariable.setMultiValue(variable.isMultiValue()); switch (variable.getType()) { case BOOLEAN: if (variable.isMultiValue()) { type = QueryParam.Type.BOOLEAN_ARRAY; } else { case CATEGORICAL: case TEXT: if (variable.isMultiValue()) { type = QueryParam.Type.TEXT_ARRAY; } else { if (variable.isMultiValue()) { type = QueryParam.Type.INTEGER_ARRAY; } else { if (variable.isMultiValue()) { type = QueryParam.Type.DECIMAL_ARRAY; } else {
if (variable.isMultiValue()) { arrayElems = Collections.singletonList(0); } else { for (Variable tmpVariable : variable.getVariableSet()) { List<Integer> arrayLevel = new ArrayList<>(variableLevel.getArrayLevel()); if (tmpVariable.isMultiValue()) { arrayLevel.add(variableLevel.getKeys().size());
switch (variable.getType()) { case BOOLEAN: auxVariableMap.put("type", isParentArray || variable.isMultiValue() ? QueryParam.Type.BOOLEAN_ARRAY : QueryParam.Type.BOOLEAN); case CATEGORICAL: case TEXT: auxVariableMap.put("type", isParentArray || variable.isMultiValue() ? QueryParam.Type.TEXT_ARRAY : QueryParam.Type.TEXT); break; case INTEGER: auxVariableMap.put("type", isParentArray || variable.isMultiValue() ? QueryParam.Type.INTEGER_ARRAY : QueryParam.Type.INTEGER); break; case DOUBLE: auxVariableMap.put("type", isParentArray || variable.isMultiValue() ? QueryParam.Type.DECIMAL_ARRAY : QueryParam.Type.DECIMAL); .append("variable", nestedVariable) .append("fullVariablePath", fullVariablePath) .append("isParentArray", isParentArray || variable.isMultiValue()); queue.add(nestedAuxiliarVariable);
if (!variable.isMultiValue()) { throw new CatalogException(message + " value '" + value + "' does not accept multiple values for " + variable);