code: public static PropertyDescriptor[] getPropertyDescriptors(Class<?> beanClass) {
  
  		if (beanClass == null) {
  			throw new IllegalArgumentException("No bean class specified");
  		}
  
  		// Look up any cached descriptors for this bean class
  		PropertyDescriptor descriptors[] = null;
  
  		// Introspect the bean and cache the generated descriptors
  		BeanInfo beanInfo = null;
  		try {
  			beanInfo = Introspector.getBeanInfo(beanClass);
  		} catch (IntrospectionException e) {
  			return (new PropertyDescriptor[0]);
  		}
  		descriptors = beanInfo.getPropertyDescriptors();
  		if (descriptors == null) {
  			descriptors = new PropertyDescriptor[0];
  		}
  
  		return (descriptors);
  
  	}
docs: <p>
  Retrieve the property descriptors for the specified class, introspecting
  and caching them the first time a particular bean class is encountered.
  </p>
  
  @param beanClass
  Bean class for which property descriptors are requested
  @return the property descriptors
  
  @exception IllegalArgumentException
  if <code>beanClass</code> is null