private BeanProperty findImmediateProperty(Class<?> clazz, String property)
	    throws NoSuchPropertyException {
	BeanProperty result = null;
	try {
	    BeanInfo bi = Introspector.getBeanInfo(clazz);
	    for (PropertyDescriptor pd : bi.getPropertyDescriptors()) {
		if (!"class".equals(pd.getName())) {
		    BeanProperty bProperty = new BeanProperty(clazz, pd);
		    propertyMap.put(getPropertyKey(clazz, pd.getName()),
			    bProperty);
		    if (pd.getName().equals(property)) {
			result = bProperty;
		    }
		}
	    }
	} catch (IntrospectionException e) {
	    throw new RuntimeException(e);
	}
	if (result == null) {
	    throw new NoSuchPropertyException(clazz, property);
	}
	return result;
    }