Example usage for org.springframework.beans.factory.support BeanDefinitionRegistry getClass

List of usage examples for org.springframework.beans.factory.support BeanDefinitionRegistry getClass

Introduction

In this page you can find the example usage for org.springframework.beans.factory.support BeanDefinitionRegistry getClass.

Prototype

@HotSpotIntrinsicCandidate
public final native Class<?> getClass();

Source Link

Document

Returns the runtime class of this Object .

Usage

From source file:org.brushingbits.jnap.persistence.factory.DaoFactoryPostProcessor.java

public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
    Assert.isAssignable(DefaultListableBeanFactory.class, registry.getClass(),
            "The DaoFactoryPostProcessor only works within a DefaultListableBeanFactory capable"
                    + "BeanFactory, your BeanDefinitionRegistry is " + registry.getClass());
    final DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) registry;

    // get already defined beans of type Dao
    final Set<Class<? extends PersistentModel>> alreadyDefinedDaos = new HashSet<Class<? extends PersistentModel>>();
    for (String beanName : beanFactory.getBeanNamesForType(Dao.class, true, false)) {
        Dao<? extends PersistentModel> dao = beanFactory.getBean(beanName, Dao.class);
        alreadyDefinedDaos.add(dao.getEntityClass());
    }//from  w  w w .  jav a  2 s  .  co  m

    for (String sessionFactoryName : beanFactory.getBeanNamesForType(SessionFactory.class)) {
        final SessionFactory sessionFactory = beanFactory.getBean(sessionFactoryName, SessionFactory.class);
        Map<String, ClassMetadata> entitiesMetadata = sessionFactory.getAllClassMetadata();
        for (ClassMetadata entityMetadata : entitiesMetadata.values()) {
            Class<? extends PersistentModel> entityClass = entityMetadata.getMappedClass(EntityMode.POJO);
            if (entityClass != null && !alreadyDefinedDaos.contains(entityClass)) {
                String daoName = entityClass.getSimpleName() + "Dao";
                daoName = Character.toLowerCase(daoName.charAt(0)) + daoName.substring(1);
                beanFactory.registerBeanDefinition(daoName, createDaoDefinition(entityClass, sessionFactory));
            }
        }
    }
}

From source file:org.jnap.core.persistence.factory.DaoFactoryBkp.java

public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
    Assert.isAssignable(DefaultListableBeanFactory.class, registry.getClass(),
            "The DaoFactory only works within a DefaultListableBeanFactory capable"
                    + "BeanFactory, your BeanDefinitionRegistry is " + registry.getClass());
    final DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) registry;

    // Initialize all SessionFactory beans
    String[] factoryNames = beanFactory.getBeanNamesForType(EntityManagerFactory.class);
    Set<EntityManagerFactory> factories = new HashSet<EntityManagerFactory>(factoryNames.length);
    for (String factoryName : factoryNames) {
        factories.add(beanFactory.getBean(factoryName, EntityManagerFactory.class));
    }/*from w ww . j a va 2s.c om*/

    for (EntityManagerFactory factory : factories) {
        factory.getMetamodel().getEntities();
        for (EntityType<?> entityMetadata : factory.getMetamodel().getEntities()) {
            Class<? extends PersistentModel> entityClass = (Class<? extends PersistentModel>) entityMetadata
                    .getJavaType();
            if (entityClass != null && !isDaoDefinedForEntity(beanFactory, entityClass)) {
                String daoName = buildDaoName(entityClass);
                beanFactory.registerBeanDefinition(daoName, createDaoDefinition(entityClass, factory));
                daoNameCache.put(entityClass, daoName);
            }
        }
    }

    factories.clear();
    factories = null;
}

From source file:org.codehaus.griffon.runtime.spring.DefaultRuntimeSpringConfiguration.java

private void removeBeanDefinition(BeanDefinitionRegistry registry, String beanName) {
    MetaClass mc = GroovySystem.getMetaClassRegistry().getMetaClass(registry.getClass());
    if (mc.respondsTo(registry, "removeBeanDefinition").size() > 0) {
        mc.invokeMethod(registry, "removeBeanDefinition", new Object[] { beanName });
    }// w  w w. j  av  a2  s  .  c o m
}

From source file:org.codehaus.groovy.grails.commons.spring.DefaultRuntimeSpringConfiguration.java

private void removeBeanDefinition(BeanDefinitionRegistry registry, String beanName) {
    MetaClass mc = GroovySystem.getMetaClassRegistry().getMetaClass(registry.getClass());
    if (!mc.respondsTo(registry, "removeBeanDefinition").isEmpty()) {
        mc.invokeMethod(registry, "removeBeanDefinition", new Object[] { beanName });
    }//from   www  . ja  v  a 2  s .  com
}