code: private ConfigElement.Reference processReference(ConfigElement.Reference reference, EvaluationContext context, boolean ignoreWarnings) throws ConfigEvaluatorException {
          // Note, ref attributes don't correspond to an attribute definition, so we will always resolve variables (ie, there is no way to specify
          // substitution="deferred" for a ref attribute.
          String resolvedId = context.resolveString(reference.getId(), ignoreWarnings);
          if (reference.getId().equals(resolvedId)) {
              return reference;
          } else {
              return new ConfigElement.Reference(reference.getPid(), resolvedId);
          }
      }
docs: Note, the "reference" here is something of the form:
  <parent>
  <child ref="someOtherElement"/>
  </parent>
  
  <otherElement id="someOtherElement"/>
  
  This is not called for ibm:type="pid" references.
  
  This method will resolve any variables in the ref attribute and return a new ConfigElement.Reference if anything changed.
  
  @param reference The ConfigElement reference. Contains the element name and the ref attribute value
  @param context
  @param ignoreWarnings
  @return
  @throws ConfigEvaluatorException