code: @FFDCIgnore(ELException.class)
      @Trivial
      protected String processString(String name, String expression, boolean immediateOnly, boolean mask) {
  
          final String methodName = "processString";
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, methodName, new Object[] { name, (expression == null) ? null : mask ? OBFUSCATED_STRING : expression, immediateOnly, mask });
          }
  
          String result;
          boolean immediate = false;
  
          try {
              Object obj = evaluateElExpression(expression, mask);
              if (obj == null) {
                  throw new IllegalArgumentException("EL expression '" + (mask ? OBFUSCATED_STRING : expression) + "' for '" + name + "'evaluated to null.");
              } else if (obj instanceof String) {
                  result = (String) obj;
                  immediate = isImmediateExpression(expression, mask);
              } else {
                  throw new IllegalArgumentException("Expected '" + name + "' to evaluate to a String value.");
              }
          } catch (ELException e) {
              result = expression;
              immediate = true;
          }
  
          String finalResult = (immediateOnly && !immediate) ? null : result;
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, methodName, (finalResult == null) ? null : mask ? OBFUSCATED_STRING : finalResult);
          }
  
          return finalResult;
      }
docs: This method will process a configuration value for any configuration setting in
  {@link LdapIdentityStoreDefinition} or {@link DatabaseIdentityStoreDefinition} that
  is a string and whose name is NOT a "*Expression". It will first check to see if it
  is a EL expression. It it is, it will return the evaluated expression; otherwise, it
  will return the literal String.
  
  @param name The name of the property. Used for error messages.
  @param expression The value returned from from the identity store definition, which can
  either be a literal String or an EL expression.
  @param immediateOnly Return null if the value is a deferred EL expression.
  @param mask Set whether to mask the expression and result. Useful for when passwords might
  be contained in either the expression or the result.
  @return The String value.