Example usage for org.springframework.beans.factory.support ChildBeanDefinition ChildBeanDefinition

List of usage examples for org.springframework.beans.factory.support ChildBeanDefinition ChildBeanDefinition

Introduction

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

Prototype

public ChildBeanDefinition(ChildBeanDefinition original) 

Source Link

Document

Create a new ChildBeanDefinition as deep copy of the given bean definition.

Usage

From source file:org.kuali.rice.krad.datadictionary.DataDictionary.java

protected void generateMissingInquiryDefinitions() {
    Collection<InquiryView> inquiryViewBeans = ddBeans.getBeansOfType(InquiryView.class).values();
    // Index all the inquiry views by the data object class so we can find them easily below
    Map<Class<?>, InquiryView> defaultViewsByDataObjectClass = new HashMap<Class<?>, InquiryView>();
    for (InquiryView view : inquiryViewBeans) {
        if (view.getViewName().equals(UifConstants.DEFAULT_VIEW_NAME)) {
            defaultViewsByDataObjectClass.put(view.getDataObjectClassName(), view);
        }//www  .  j a va 2s.  co  m
    }
    for (DataObjectEntry entry : ddBeans.getBeansOfType(DataObjectEntry.class).values()) {
        // if an inquiry already exists, just ignore - we only default if none exist
        if (defaultViewsByDataObjectClass.containsKey(entry.getDataObjectClass())) {
            continue;
        }
        // We only generate the inquiry if the metadata says to
        if (entry.getDataObjectMetadata() == null) {
            continue;
        }
        if (!entry.getDataObjectMetadata().shouldAutoCreateUifViewOfType(UifAutoCreateViewType.INQUIRY)) {
            continue;
        }
        // no inquiry exists and we want one to, create one
        if (LOG.isInfoEnabled()) {
            LOG.info("Generating Inquiry View for : " + entry.getDataObjectClass());
        }
        String inquiryBeanName = entry.getDataObjectClass().getSimpleName() + "-InquiryView-default";

        InquiryView inquiryView = KRADServiceLocatorWeb.getUifDefaultingService()
                .deriveInquiryViewFromMetadata(entry);
        inquiryView.setId(inquiryBeanName);
        inquiryView.setViewName(UifConstants.DEFAULT_VIEW_NAME);

        ChildBeanDefinition inquiryBean = new ChildBeanDefinition("Uif-InquiryView");
        inquiryBean.setScope(BeanDefinition.SCOPE_SINGLETON);
        inquiryBean.setAttribute("dataObjectClassName", inquiryView.getDataObjectClassName());
        inquiryBean.getPropertyValues().add("dataObjectClassName",
                inquiryView.getDataObjectClassName().getName());
        inquiryBean.setResourceDescription("Autogenerated From Metadata");
        ddBeans.registerBeanDefinition(inquiryBeanName, inquiryBean);
        ddBeans.registerSingleton(inquiryBeanName, inquiryView);
    }
}

From source file:org.kuali.rice.krad.datadictionary.DataDictionary.java

protected void generateMissingLookupDefinitions() {
    Collection<LookupView> lookupViewBeans = ddBeans.getBeansOfType(LookupView.class).values();
    // Index all the inquiry views by the data object class so we can find them easily below
    Map<Class<?>, LookupView> defaultViewsByDataObjectClass = new HashMap<Class<?>, LookupView>();
    for (LookupView view : lookupViewBeans) {
        if (view.getViewName().equals(UifConstants.DEFAULT_VIEW_NAME)) {
            defaultViewsByDataObjectClass.put(view.getDataObjectClass(), view);
        }/*from   w  w  w .  j a v a2  s .  c  o m*/
    }
    for (DataObjectEntry entry : ddBeans.getBeansOfType(DataObjectEntry.class).values()) {
        // if an inquiry already exists, just ignore - we only default if none exist
        if (defaultViewsByDataObjectClass.containsKey(entry.getDataObjectClass())) {
            continue;
        }
        // We only generate the inquiry if the metadata says to
        if (entry.getDataObjectMetadata() == null) {
            continue;
        }
        if (!entry.getDataObjectMetadata().shouldAutoCreateUifViewOfType(UifAutoCreateViewType.LOOKUP)) {
            continue;
        }
        // no inquiry exists and we want one to, create one
        if (LOG.isInfoEnabled()) {
            LOG.info("Generating Lookup View for : " + entry.getDataObjectClass());
        }
        String lookupBeanName = entry.getDataObjectClass().getSimpleName() + "-LookupView-default";

        LookupView lookupView = KRADServiceLocatorWeb.getUifDefaultingService()
                .deriveLookupViewFromMetadata(entry);
        lookupView.setId(lookupBeanName);
        lookupView.setViewName(UifConstants.DEFAULT_VIEW_NAME);

        ChildBeanDefinition lookupBean = new ChildBeanDefinition(ComponentFactory.LOOKUP_VIEW);
        lookupBean.setScope(BeanDefinition.SCOPE_SINGLETON);
        lookupBean.setAttribute("dataObjectClassName", lookupView.getDataObjectClass());
        lookupBean.getPropertyValues().add("dataObjectClassName", lookupView.getDataObjectClass().getName());
        lookupBean.setResourceDescription("Autogenerated From Metadata");
        ddBeans.registerBeanDefinition(lookupBeanName, lookupBean);
        ddBeans.registerSingleton(lookupBeanName, lookupView);
    }
}

From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java

@Test
public void testCanReferenceParentBeanFromChildViaAlias() {
    final String EXPECTED_NAME = "Juergen";
    final int EXPECTED_AGE = 41;

    RootBeanDefinition parentDefinition = new RootBeanDefinition(TestBean.class);
    parentDefinition.setAbstract(true);//ww  w  .j  av a2 s.c om
    parentDefinition.getPropertyValues().add("name", EXPECTED_NAME);
    parentDefinition.getPropertyValues().add("age", EXPECTED_AGE);

    ChildBeanDefinition childDefinition = new ChildBeanDefinition("alias");

    DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
    factory.registerBeanDefinition("parent", parentDefinition);
    factory.registerBeanDefinition("child", childDefinition);
    factory.registerAlias("parent", "alias");

    TestBean child = (TestBean) factory.getBean("child");
    assertEquals(EXPECTED_NAME, child.getName());
    assertEquals(EXPECTED_AGE, child.getAge());

    assertEquals("Use cached merged bean definition", factory.getMergedBeanDefinition("child"),
            factory.getMergedBeanDefinition("child"));
}

From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java

@Test
public void testScopeInheritanceForChildBeanDefinitions() throws Exception {
    RootBeanDefinition parent = new RootBeanDefinition();
    parent.setScope("bonanza!");

    AbstractBeanDefinition child = new ChildBeanDefinition("parent");
    child.setBeanClass(TestBean.class);

    DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
    factory.registerBeanDefinition("parent", parent);
    factory.registerBeanDefinition("child", child);

    BeanDefinition def = factory.getMergedBeanDefinition("child");
    assertEquals("Child 'scope' not inherited", "bonanza!", def.getScope());
}