ClassInfo classInfo = classAdapter.getClassInfo();
String className = classInfo.getName();
Map map = (Map) cache.get(cl);
if (map != null)
{
BeanInfo info = (BeanInfo) map.get(className);
if (info != null)
return info;
}
if (classInfo.isInterface())
throw new IllegalArgumentException(classInfo.getName() + " is an interface");
Set constructors = getConstructors(classInfo);
Set methods = getMethods(classInfo);
Set properties = getProperties(methods);
Set events = getEvents(classInfo);
BeanInfo result = createBeanInfo(classAdapter, properties, constructors, methods, events);
if (map == null)
{
map = new WeakValueHashMap();
cache.put(cl, map);
}