/*
@see com.ibm.ws.tcpchannel.internal.TCPBaseRequestContext#introspect()
437653
@Override
    public List<String> introspect() {
        List<String> rc = super.introspect();
        String prefix = getClass().getSimpleName() + "@" + hashCode() + ": ";
        rc.add(prefix + "callback=" + callback);
        return rc;
    }
1107082
func (c *Client) IntrospectionService() introspectionapi.IntrospectionClient {
	c.connMu.Lock()
	defer c.connMu.Unlock()
	return introspectionapi.NewIntrospectionClient(c.conn)
}
1240053
@Override
  public void introspect(ContextH3 context)
  {
    if (_infoRef.get() != null) {
      return;
    }

    _ctor = introspectConstructor();

    introspectFields();

    FieldInfoH3[] fieldInfo = new FieldInfoH3[2];

    fieldInfo[0] = _key.info();
    fieldInfo[1] = _value.info();

    _infoRef.compareAndSet(null, new ClassInfoH3(_type.getName(), fieldInfo));
  }
567190
@SuppressWarnings("unchecked")
    private EventSetDescriptor[] introspectEvents() throws IntrospectionException {
        // Get descriptors for the public methods
        // FIXME: performance
        MethodDescriptor[] theMethods = introspectMethods();

        if (theMethods == null)
            return null;

        HashMap<String, HashMap> eventTable = new HashMap<String, HashMap>(
                theMethods.length);

        // Search for methods that add an Event Listener
        for (int i = 0; i < theMethods.length; i++) {
            introspectListenerMethods(PREFIX_ADD, theMethods[i].getMethod(),
                    eventTable);
            introspectListenerMethods(PREFIX_REMOVE, theMethods[i].getMethod(),
                    eventTable);
            introspectGetListenerMethods(theMethods[i].getMethod(), eventTable);
        }

        ArrayList<EventSetDescriptor> eventList = new ArrayList<EventSetDescriptor>();
        for (Map.Entry<String, HashMap> entry : eventTable.entrySet()) {
            HashMap table = entry.getValue();
            Method add = (Method) table.get(PREFIX_ADD);
            Method remove = (Method) table.get(PREFIX_REMOVE);

            if ((add == null) || (remove == null)) {
                continue;
            }

            Method get = (Method) table.get(PREFIX_GET);
            Class<?> listenerType = (Class) table.get("listenerType"); //$NON-NLS-1$
            Method[] listenerMethods = (Method[]) table.get("listenerMethods"); //$NON-NLS-1$
            EventSetDescriptor eventSetDescriptor = new EventSetDescriptor(
                    decapitalize(entry.getKey()), listenerType, listenerMethods, add,
                    remove, get);

            eventSetDescriptor.setUnicast(table.get("isUnicast") != null); //$NON-NLS-1$
            eventList.add(eventSetDescriptor);
        }

        EventSetDescriptor[] theEvents = new EventSetDescriptor[eventList
                .size()];
        eventList.toArray(theEvents);

        return theEvents;
    }
659490
public static ConstructorMetadata introspect(Class<?> clazz) {
    ConstructorMetadata metadata = cache.get(clazz);
    if (metadata != null) {
      return metadata;
    }
    return loadMetadata(clazz);
  }
996759
public List<String> introspect() {
        List<String> rc = new LinkedList<String>();
        String prefix = getClass().getSimpleName() + "@" + hashCode() + ": ";
        rc.add(prefix + "tcpChannel=" + this.tcpChannel);
        rc.add(prefix + "closed=" + this.closed);
        rc.add(prefix + "socketIOChannel=" + this.socketIOChannel);
        if (null != this.socketIOChannel) {
            rc.addAll(this.socketIOChannel.introspect());
        }
        rc.add(prefix + "numReads=" + this.numReads);
        rc.add(prefix + "numWrites=" + this.numWrites);
        rc.add(prefix + "callCompleteLocal=" + this.callCompleteLocal);
        return rc;
    }
1170874
void introspectThisClassOnly(com.ibm.ws.rsadapter.FFDCLogger info) {
        // ManagedConnection already reports all of these objects, so we only need to display
        // the hashcode, for verifying we have the right reference in this class.

        info.createFFDCHeader(this);
        info.append("Connection:", AdapterUtil.toString(ivConnection));
        info.append("ManagedConnection:", ivMC);
    }
387753
@Override
    public String[] introspectSelf() {
        List<String> rc = introspect();
        return rc.toArray(new String[rc.size()]);
    }
8499
public List<String> introspect() {
        List<String> rc = new LinkedList<String>();
        String prefix = getClass().getSimpleName() + "@" + hashCode() + ": ";
        rc.add(prefix + "closed=" + this.closed);
        rc.add(prefix + "processClose=" + this.processClose);
        rc.add(prefix + "checkCancel=" + this.checkCancel);
        rc.add(prefix + "tcpChannel=" + this.tcpChannel);
        rc.add(prefix + "socket=" + this.socket);
        if (null != this.socket) {
            rc.add(prefix + "remoteAddr=" + this.socket.getInetAddress());
            rc.add(prefix + "remotePort=" + this.socket.getPort());
            rc.add(prefix + "localAddr=" + this.socket.getLocalAddress());
            rc.add(prefix + "localPort=" + this.socket.getLocalPort());
        }
        rc.add(prefix + "channel=" + this.channel);
        return rc;
    }
1297292
private static void introspectListenerMethods(String type, Method theMethod, HashMap<String, HashMap> methodsTable)
	{
		String methodName = theMethod.getName();
		if (methodName == null)
		{
			return;
		}

		if (!((methodName.startsWith(type)) && (methodName.endsWith(SUFFIX_LISTEN))))
		{
			return;
		}

		String listenerName = methodName.substring(type.length());
		String eventName = listenerName.substring(0, listenerName.lastIndexOf(SUFFIX_LISTEN));
		if ((eventName == null) || (eventName.length() == 0))
		{
			return;
		}

		Class[] paramTypes = theMethod.getParameterTypes();
		if ((paramTypes == null) || (paramTypes.length != 1))
		{
			return;
		}

		Class<?> listenerType = paramTypes[0];

		if (!EventListener.class.isAssignableFrom(listenerType))
		{
			return;
		}

		if (!listenerType.getName().endsWith(listenerName))
		{
			return;
		}

		HashMap table = methodsTable.get(eventName);
		if (table == null)
		{
			table = new HashMap();
		}
		// put listener type
		if (table.get("listenerType") == null) { //$NON-NLS-1$
			table.put("listenerType", listenerType); //$NON-NLS-1$
			table.put("listenerMethods", //$NON-NLS-1$
					introspectListenerMethods(listenerType));
		}
		// put add / remove
		table.put(type, theMethod);

		// determine isUnicast()
		if (type.equals(PREFIX_ADD))
		{
			Class[] exceptionTypes = theMethod.getExceptionTypes();
			if (exceptionTypes != null)
			{
				for (int i = 0; i < exceptionTypes.length; i++)
				{
					if (exceptionTypes[i].getName().equals(TooManyListenersException.class.getName()))
					{
						table.put("isUnicast", "true"); //$NON-NLS-1$//$NON-NLS-2$
						break;
					}
				}
			}
		}

		methodsTable.put(eventName, table);
	}
639292
private void introspectViaReflection() {
        {
            Class<?> memberClass = _member.getClass();
            if (memberClass.isArray()) {
                int length = Array.getLength(_member);
                Class<?> componentType = memberClass.getComponentType();
                if (componentType.isPrimitive()) {
                    addNewChild(componentType + "[0.." + (length - 1) + "]", _member);
                } else {
                    String simpleName = componentType.getSimpleName();
                    for (int i = 0; i < length && i < MAX_ARRAY_LENGTH; i++) {
                        Object value = Array.get(_member, i);
                        addNewChild(simpleName + "[" + i + "]", value);
                    }
                    if (length > MAX_ARRAY_LENGTH) {
                        addNewChild(simpleName + "[...]", "/* array length = " + length + " */");
                    }
                }
            } else {
                /*
                 * Loop around the fields of the object (including fields of its
                 * superclass) adding them as children (and, it we haven't seen
                 * the child before, getting introspected at the next level if
                 * its worth doing so)
                 */
                Class<?> currentClass = _member.getClass();
                while (currentClass != Object.class) {
                    Field[] fields = getFields(currentClass);
                    for (int i = 0; i < fields.length && i < MAX_ARRAY_LENGTH; i++) {
                        final Field field = fields[i];
                        Object value = getFieldValue(field);
                        addNewChild(field.getName(), value);
                    }
                    if (fields.length > MAX_ARRAY_LENGTH) {
                        addNewChild("field...", "/* total # of fields = " + fields.length + " */");
                    }
                    currentClass = currentClass.getSuperclass();
                }
            }
        }
    }
31104
func (c *BoundChooser) Introspect() introspection.ChooserStatus {
	if ic, ok := c.chooserList.(introspection.IntrospectableChooser); ok {
		return ic.Introspect()
	}
	return introspection.ChooserStatus{}
}
1220807
void introspectThisClassOnly(com.ibm.ws.rsadapter.FFDCLogger info) {
        info.createFFDCHeader(this);
        info.append("Connection:", AdapterUtil.toString(ivSqlConn));
        info.append("ManagedConnection:", ivManagedConnection);
    }
61697
@Override
    public void introspect(PrintWriter out) throws Exception {
        for (Region region : digraph) {
            out.println(region.getName());
            out.println("  Associated Bundles:");
            for (Long id : region.getBundleIds()) {
                Bundle b = systemContext.getBundle(id);
                out.append("    ");
                out.println(b);
            }
            out.println("  Edges:");
            for (FilteredRegion edge : region.getEdges()) {
                out.append("    ").append(edge.getRegion().getName()).append(" -> ");
                out.println(edge.getFilter());
            }
            out.println();
        }
    }
475311
public String fetchTypeName(IntrospectedColumn introspectedColumn){
		
		String columnName = introspectedColumn.getActualColumnName();
		String catalog = introspectedColumn.getIntrospectedTable().getTableConfiguration().getCatalog();
		String schema = introspectedColumn.getIntrospectedTable().getTableConfiguration().getSchema();
		String table = introspectedColumn.getIntrospectedTable().getTableConfiguration().getTableName();
		String dataType = null;
		try {
			ResultSet set = connection.getMetaData().getColumns(catalog, schema, table, columnName);
			while(set.next()){
				dataType = set.getString("TYPE_NAME");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return dataType;
	}
990405
func (i *Inbound) Introspect() introspection.InboundStatus {
	stateString := ""
	if i.transport.ch != nil {
		stateString = i.transport.ch.State().String()
	}
	return introspection.InboundStatus{
		Transport: "tchannel",
		Endpoint:  i.transport.addr,
		State:     stateString,
	}
}
563876
protected
  void introspect() {
    try {
      BeanInfo bi = Introspector.getBeanInfo(obj.getClass());
      props = bi.getPropertyDescriptors();
    } catch (IntrospectionException ex) {
      LogLog.error("Failed to introspect "+obj+": " + ex.getMessage());
      props = new PropertyDescriptor[0];
    }
  }