Example usage for org.apache.commons.configuration.beanutils BeanDeclaration getBeanProperties

List of usage examples for org.apache.commons.configuration.beanutils BeanDeclaration getBeanProperties

Introduction

In this page you can find the example usage for org.apache.commons.configuration.beanutils BeanDeclaration getBeanProperties.

Prototype

Map getBeanProperties();

Source Link

Document

Returns a map with properties that should be initialized on the newly created bean.

Usage

From source file:nz.co.senanque.madura.configuration.ConstructorBeanFactory.java

public synchronized Object createBean(Class beanClass, BeanDeclaration decl, Object param) throws Exception {
    Map m = decl.getBeanProperties();
    XMLBeanDeclaration xmlDecl = (XMLBeanDeclaration) decl;
    ConfigurationNode n = xmlDecl.getNode();
    String nodeName = n.getName();
    n = n.getParentNode();//  ww  w  .  j  ava2 s  .com
    while (n != null) {

        if (n.getName() != null)
            nodeName = n.getName() + "/" + nodeName;
        n = n.getParentNode();
    }

    Object bean = beans.get(nodeName);
    if (bean != null) {
        // Yes, there is already an instance
        return bean;
    } else {
        // No, create it now (done by the super class)
        List<Class> constructorClasses = new ArrayList<Class>();
        List<Object> constructorArguments = new ArrayList<Object>();
        Object o = m.get("constructor-arg");
        if (o != null) {
            constructorClasses.add(o.getClass());
            constructorArguments.add(o);
        }
        o = m.get("constructor-arg0");
        if (o != null) {
            constructorClasses.add(o.getClass());
            constructorArguments.add(o);
        }
        for (int i = 1; i < 10; i++) {
            o = m.get("constructor-arg" + i);
            if (o == null)
                break;
            constructorClasses.add(o.getClass());
            constructorArguments.add(o);
        }
        Constructor constructor = beanClass
                .getDeclaredConstructor(constructorClasses.toArray(new Class[constructorClasses.size()]));
        bean = constructor.newInstance(constructorArguments.toArray(new Object[constructorArguments.size()]));
        // Store it in map
        beans.put(nodeName, bean);
        return bean;
    }
}

From source file:nz.co.senanque.madura.configuration.SetterBeanFactory.java

public synchronized Object createBean(Class beanClass, BeanDeclaration decl, Object param) throws Exception {
    Map<String, String> m = decl.getBeanProperties();
    XMLBeanDeclaration xmlDecl = (XMLBeanDeclaration) decl;
    ConfigurationNode n = xmlDecl.getNode();
    String nodeName = n.getName();
    n = n.getParentNode();//  w  w w  . j  av a2s . com
    while (n != null) {

        if (n.getName() != null)
            nodeName = n.getName() + "/" + nodeName;
        n = n.getParentNode();
    }

    Object bean = beans.get(nodeName);
    if (bean != null) {
        // Yes, there is already an instance
        return bean;
    } else {
        // create the bean and use the rest of the attributes as properties
        bean = beanClass.newInstance();
        for (Map.Entry entry : m.entrySet()) {
            String key = (String) entry.getKey();
            if (key.equals("config-class"))
                continue;
            org.apache.commons.beanutils.BeanUtils.setProperty(bean, key, entry.getValue());
        }
        // Store it in map
        beans.put(nodeName, bean);
        return bean;
    }
}

From source file:nz.co.senanque.madura.configuration.XMLBeanFactory.java

public synchronized Object createBean(Class beanClass, BeanDeclaration decl, Object param) throws Exception {
    Map m = decl.getBeanProperties();
    XMLBeanDeclaration xmlDecl = (XMLBeanDeclaration) decl;
    ConfigurationNode n = xmlDecl.getNode();
    String nodeName = n.getName();
    n = n.getParentNode();/*w  w w . j av a 2  s  .  c  o  m*/
    while (n != null) {
        if (n.getName() != null)
            nodeName = n.getName() + "/" + nodeName;
        n = n.getParentNode();
    }
    Object bean = beans.get(nodeName);
    if (bean != null) {
        // Yes, there is already an instance
        return bean;
    }
    String fileLocation = (String) m.get("fileLocation");
    Document doc = null;
    SAXBuilder sax = new SAXBuilder();
    if (fileLocation == null) {
        // build the doc from the children
        ConfigurationNode node = xmlDecl.getNode();
        doc = new Document();
        doc.addContent(makeElement(node));
    } else {
        InputStream in = new FileInputStream(fileLocation);
        doc = sax.build(in);
    }
    bean = doc;
    // Store it in map
    beans.put(nodeName, bean);
    return bean;
}