encodedDimensionValues = nullId == ABSENT_VALUE_ID ? new int[]{dimLookup.add(null)} : new int[]{nullId}; } else if (dimValues instanceof List) { List<Object> dimValuesList = (List) dimValues; if (dimValuesList.isEmpty()) { dimLookup.add(null); encodedDimensionValues = IntArrays.EMPTY_ARRAY; } else if (dimValuesList.size() == 1) { encodedDimensionValues = new int[]{dimLookup.add(emptyToNullIfNeeded(dimValuesList.get(0)))}; } else { hasMultipleValues = true; for (String dimensionValue : dimensionValues) { if (multiValueHandling != MultiValueHandling.SORTED_SET) { retVal[pos++] = dimLookup.add(dimensionValue); continue; int index = dimLookup.add(dimensionValue); if (index != prevId) { prevId = retVal[pos++] = index; encodedDimensionValues = new int[]{dimLookup.add(emptyToNullIfNeeded(dimValues))};
encodedDimensionValues = nullId == ABSENT_VALUE_ID ? new int[]{dimLookup.add(null)} : new int[]{nullId}; } else if (dimValues instanceof List) { List<Object> dimValuesList = (List) dimValues; if (dimValuesList.isEmpty()) { dimLookup.add(null); encodedDimensionValues = IntArrays.EMPTY_ARRAY; } else if (dimValuesList.size() == 1) { encodedDimensionValues = new int[]{dimLookup.add(emptyToNullIfNeeded(dimValuesList.get(0)))}; } else { hasMultipleValues = true; for (String dimensionValue : dimensionValues) { if (multiValueHandling != MultiValueHandling.SORTED_SET) { retVal[pos++] = dimLookup.add(dimensionValue); continue; int index = dimLookup.add(dimensionValue); if (index != prevId) { prevId = retVal[pos++] = index; encodedDimensionValues = new int[]{dimLookup.add(emptyToNullIfNeeded(dimValues))};