private void generateBeanDefinitionAttributes()

in gshell-support/gshell-spring/src/main/java/org/apache/geronimo/gshell/spring/LoggingProcessor.java [222:328]


    private void generateBeanDefinitionAttributes(final BeanDefinition beanDefinition, final ElementBuilder elementBuilder, final String beanName, final boolean inHolder) {
        String beanClassName = beanDefinition.getBeanClassName();
        boolean isAbstract = beanDefinition.isAbstract();
        boolean isLazyInit = beanDefinition.isLazyInit();

        String scope = beanDefinition.getScope();

        ElementBuilder builder = elementBuilder.addChild(BEAN_ELEMENT);
        if (!inHolder) {
            if (beanName != null) {
                if (!beanName.equals(beanClassName)) {
                    if (isBeanNameApplicableForID(beanName)) {
                        builder.addAttribute(ID_ATTRIBUTE, beanName);
                    }
                    else {
                        builder.addAttribute(NAME_ATTRIBUTE, beanName);
                    }
                }
            }
        }

        if (beanClassName != null) {
            builder.addAttribute(CLASS_ATTRIBUTE, beanClassName);
        }

        if (isAbstract) {
            builder.addAttribute(ABSTRACT_ATTRIBUTE, TRUE_VALUE);
        }

        if (isLazyInit) {
            builder.addAttribute(LAZY_INIT_ATTRIBUTE, TRUE_VALUE);
        }

        if (scope != null) {
            if (!SINGLETON_ATTRIBUTE.equals(scope)) {
                builder.addAttribute(SCOPE_ATTRIBUTE, scope);
            }
        }

        if (beanDefinition instanceof AbstractBeanDefinition) {
            AbstractBeanDefinition abstractBeanDefinition = (AbstractBeanDefinition) beanDefinition;

            String initMethod = abstractBeanDefinition.getInitMethodName();
            if (initMethod != null) {
                builder.addAttribute(INIT_METHOD_ATTRIBUTE, initMethod);
            }

            String destroyMethod = abstractBeanDefinition.getDestroyMethodName();
            if (destroyMethod != null) {
                builder.addAttribute(DESTROY_METHOD_ATTRIBUTE, destroyMethod);
            }

            String factoryBeanName = abstractBeanDefinition.getFactoryBeanName();
            if (factoryBeanName != null) {
                builder.addAttribute(FACTORY_BEAN_ATTRIBUTE, factoryBeanName);
            }

            String factoryMethodName = abstractBeanDefinition.getFactoryMethodName();

            if (factoryMethodName != null) {
                builder.addAttribute(FACTORY_METHOD_ATTRIBUTE, factoryMethodName);
            }

            int autowireMode = abstractBeanDefinition.getAutowireMode();
            int dependencyCheck = abstractBeanDefinition.getDependencyCheck();

            String[] dependsOn = abstractBeanDefinition.getDependsOn();

            if (dependsOn != null) {
                if (dependsOn.length > 0) {
                    String dependsOnValue = StringUtils.arrayToCommaDelimitedString(dependsOn);
                    builder.addAttribute(DEPENDS_ON_ATTRIBUTE, dependsOnValue);
                }
            }

            String autowire = getAutowireModeString(autowireMode);
            if (autowire != null) {
                if (!"no".equals(autowire)) {
                    builder.addAttribute(AUTOWIRE_ATTRIBUTE, autowire);
                }
            }

            String dependsCheck = getDependencyCheck(dependencyCheck);
            if (dependsCheck != null) {
                if (!"none".equals(dependsCheck)) {
                    builder.addAttribute(DEPENDENCY_CHECK_ATTRIBUTE, dependsCheck);
                }
            }
        }

        if (beanDefinition instanceof ChildBeanDefinition) {
            ChildBeanDefinition childBeanDefinition = (ChildBeanDefinition) beanDefinition;
            String parent = childBeanDefinition.getParentName();

            if (parent != null) {
                builder.addAttribute(PARENT_ATTRIBUTE, parent);
            }
        }

        String description = metadataElementDescriptionCreator.getBeanDefinitionDescription(beanName, beanDefinition);

        if (description != null) {
            elementBuilder.addChild(DESCRIPTION_ELEMENT);
            elementBuilder.addPCData(description);
            elementBuilder.up();
        }
    }