question: public final BeanEventType createBeanType ( String name , Class clazz , boolean isPreconfiguredStatic , boolean isPreconfigured , boolean isConfigured ) { if ( clazz == null ) { throw new IllegalArgumentException ( "Null value passed as class" ) ; } BeanEventType eventType = null ; typesPerJavaBeanLock . lock ( ) ; try { eventType = typesPerJavaBean . get ( clazz ) ; if ( eventType != null ) { eventTypeIdGenerator . assignedType ( name , eventType ) ; return eventType ; } ConfigurationEventTypeLegacy legacyDef = classToLegacyConfigs . get ( clazz . getName ( ) ) ; if ( ( legacyDef == null ) && ( defaultAccessorStyle != ConfigurationEventTypeLegacy . AccessorStyle . JAVABEAN ) ) { legacyDef = new ConfigurationEventTypeLegacy ( ) ; legacyDef . setAccessorStyle ( defaultAccessorStyle ) ; } int typeId = eventTypeIdGenerator . getTypeId ( name ) ; EventTypeMetadata metadata = EventTypeMetadata . createBeanType ( name , clazz , isPreconfiguredStatic , isPreconfigured , isConfigured , EventTypeMetadata . TypeClass . APPLICATION ) ; eventType = new BeanEventType ( metadata , typeId , clazz , eventAdapterService , legacyDef ) ; typesPerJavaBean . put ( clazz , eventType ) ; } catch ( RuntimeException ex ) { throw ex ; } finally { typesPerJavaBeanLock . unlock ( ) ; } return eventType ; }
target:  Creates a new EventType object for a java bean of the specified class if this is the first time the class has been seen. Else uses a cached EventType instance, i.e. client classes do not need to cache.