List of usage examples for org.springframework.beans.factory.support ChildBeanDefinition ChildBeanDefinition
public ChildBeanDefinition(ChildBeanDefinition original)
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()); }