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

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

Introduction

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

Prototype

@Override
    public void setAttribute(String name, @Nullable Object value) 

Source Link

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);
        }//from w  w  w . ja  va2s .  c om
    }
    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  ww  w .j a  va 2 s.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.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);
    }
}