docs: Object processVariableLists(Object rawValue, ExtendedAttributeDefinition attributeDef,
                                  EvaluationContext context, boolean ignoreWarnings) throws ConfigEvaluatorException {
          if (attributeDef != null && !attributeDef.resolveVariables())
              return rawValue;
  
          if (rawValue instanceof List) {
              List<Object> returnList = new ArrayList<Object>();
              List<Object> values = (List<Object>) rawValue;
              for (Object o : values) {
                  Object processed = processVariableLists(o, attributeDef, context, ignoreWarnings);
                  if (processed instanceof List)
                      returnList.addAll((List<Object>) processed);
                  else
                      returnList.add(processed);
              }
              return returnList;
          } else if (rawValue instanceof String) {
              // Look for functions of the form ${list(variableName)} first
              Matcher matcher = XMLConfigConstants.VAR_LIST_PATTERN.matcher((String) rawValue);
              if (matcher.find()) {
                  String var = matcher.group(1);
                  String rep = getProperty(var, context, ignoreWarnings, true);
                  return rep == null ? rawValue : MetaTypeHelper.parseValue(rep);
              } else {
                  return rawValue;
              }
          } else {
              return rawValue;
          }
  
      }