code: private Object makeMember(Object value) {
          Object answer = null; // Assume we don't require further introspection
                                // until proved otherwise
  
          if (value != null) {
              Class<?> objClass = value.getClass();
  
              if (objClass.isArray()) {
                  // Array's need further introspection if they're bigger than
                  // length 0
                  // AND of non-primitive type
                  if (Array.getLength(value) > 0 && !(objClass.getComponentType().isPrimitive())) {
                      answer = value;
                  }
              } else if ((objClass != String.class) && (objClass != Boolean.class) && (objClass != Character.class) && (objClass != Byte.class) && (objClass != Short.class)
                         && (objClass != Integer.class) && (objClass != Long.class) && (objClass != Float.class) && (objClass != Double.class) && (objClass != String.class)) {
                  answer = value;
              }
          }
  
          return answer;
      }
docs: Return either null (if the value doesn't need further introspection) or
  the object reference if it does require further introspection
  
  @param value
  The object that might require further introspection
  @return null if the object doesn't require further introspection, value
  if it does