Example usage for org.springframework.beans BeanWrapper setPropertyValues

List of usage examples for org.springframework.beans BeanWrapper setPropertyValues

Introduction

In this page you can find the example usage for org.springframework.beans BeanWrapper setPropertyValues.

Prototype

void setPropertyValues(Map<?, ?> map) throws BeansException;

Source Link

Document

Perform a batch update from a Map.

Usage

From source file:org.walkmod.conf.entities.impl.ConfigurationImpl.java

public void populate(Object element, Map<?, ?> parameters) {
    if (element != null) {
        BeanWrapper bw = new BeanWrapperImpl(element);
        if (this.parameters != null) {
            bw.setPropertyValues(this.parameters);
        }// w w w  .ja  v  a  2s  .  c o  m
        bw.setPropertyValues(parameters);
    }
}

From source file:com.saysth.commons.quartz.SpringBeanJobFactory.java

/**
 * Create the job instance, populating it with property values taken from
 * the scheduler context, job data map and trigger data map.
 *///from  ww  w .  j a  va 2s.c  o  m
@Override
protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
    Object job = bundle.getJobDetail().getJobClass().newInstance();
    BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(job);
    if (isEligibleForPropertyPopulation(bw.getWrappedInstance())) {
        MutablePropertyValues pvs = new MutablePropertyValues();
        if (this.schedulerContext != null) {
            pvs.addPropertyValues(this.schedulerContext);
        }
        pvs.addPropertyValues(bundle.getJobDetail().getJobDataMap());
        pvs.addPropertyValues(bundle.getTrigger().getJobDataMap());
        if (this.ignoredUnknownProperties != null) {
            for (String propName : this.ignoredUnknownProperties) {
                if (pvs.contains(propName) && !bw.isWritableProperty(propName)) {
                    pvs.removePropertyValue(propName);
                }
            }
            bw.setPropertyValues(pvs);
        } else {
            bw.setPropertyValues(pvs, true);
        }
    }
    return job;
}

From source file:net.sf.juffrou.reflect.spring.BeanWrapperTests.java

@Test
public void testConvertPrimitiveToString() {
    MutablePropertyValues values = new MutablePropertyValues();
    values.add("name", new Integer(42));
    TestBean tb = new TestBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(tb);
    bw.setPropertyValues(values);
    assertEquals("42", tb.getName());
}

From source file:net.sf.juffrou.reflect.spring.BeanWrapperTests.java

@Test
public void testEmptyPropertyValuesSet() {
    TestBean t = new TestBean();
    int age = 50;
    String name = "Tony";
    t.setAge(age);/*  ww w  . j a v a 2  s. co m*/
    t.setName(name);
    try {
        BeanWrapper bw = new JuffrouSpringBeanWrapper(t);
        assertTrue("age is OK", t.getAge() == age);
        assertTrue("name is OK", name.equals(t.getName()));
        bw.setPropertyValues(new MutablePropertyValues());
        // Check its unchanged
        assertTrue("age is OK", t.getAge() == age);
        assertTrue("name is OK", name.equals(t.getName()));
    } catch (BeansException ex) {
        fail("Shouldn't throw exception when everything is valid");
    }
}

From source file:net.sf.juffrou.reflect.spring.BeanWrapperTests.java

@Test
public void testConvertClassToString() {
    MutablePropertyValues values = new MutablePropertyValues();
    values.add("name", Integer.class);
    TestBean tb = new TestBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(tb);
    bw.registerCustomEditor(String.class, new PropertyEditorSupport() {
        @Override/*from   w w  w  .java  2s .c om*/
        public void setValue(Object value) {
            super.setValue(value.toString());
        }
    });
    bw.setPropertyValues(values);
    assertEquals(Integer.class.toString(), tb.getName());
}

From source file:net.sf.juffrou.reflect.spring.BeanWrapperTests.java

@SuppressWarnings("unchecked")
// must work with raw map in this test
@Test//from   w  ww.  ja v a  2s  .  c o  m
public void testRawMapAccessWithNoEditorRegistered() {
    IndexedTestBean bean = new IndexedTestBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(bean);
    Map inputMap = new HashMap();
    inputMap.put(new Integer(1), "rod");
    inputMap.put(new Integer(2), "rob");
    ReadOnlyMap readOnlyMap = new ReadOnlyMap(inputMap);
    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("map", readOnlyMap);
    bw.setPropertyValues(pvs);
    assertSame(readOnlyMap, bean.getMap());
    assertFalse(readOnlyMap.isAccessed());
}

From source file:net.sf.juffrou.reflect.spring.BeanWrapperTests.java

@Test
public void test2Invalid() {
    TestBean t = new TestBean();
    String newName = "tony";
    String invalidTouchy = ".valid";
    try {//from   www.  j a  v  a2 s . com
        BeanWrapper bw = new JuffrouSpringBeanWrapper(t);
        MutablePropertyValues pvs = new MutablePropertyValues();
        pvs.addPropertyValue(new PropertyValue("age", "foobar"));
        pvs.addPropertyValue(new PropertyValue("name", newName));
        pvs.addPropertyValue(new PropertyValue("touchy", invalidTouchy));
        bw.setPropertyValues(pvs);
        fail("Should throw exception when everything is valid");
    } catch (PropertyBatchUpdateException ex) {
        assertTrue("Must contain 2 exceptions", ex.getExceptionCount() == 2);
        // Test validly set property matches
        assertTrue("Validly set property must stick", t.getName().equals(newName));
        assertTrue("Invalidly set property must retain old value", t.getAge() == 0);
        assertTrue("New value of dodgy setter must be available through exception",
                ex.getPropertyAccessException("touchy").getPropertyChangeEvent().getNewValue()
                        .equals(invalidTouchy));
    }
}

From source file:net.sf.juffrou.reflect.spring.BeanWrapperTests.java

@Test
public void testAllValid() {
    TestBean t = new TestBean();
    String newName = "tony";
    int newAge = 65;
    String newTouchy = "valid";
    try {//w  w  w  .j  ava 2 s. c om
        BeanWrapper bw = new JuffrouSpringBeanWrapper(t);
        MutablePropertyValues pvs = new MutablePropertyValues();
        pvs.addPropertyValue(new PropertyValue("age", new Integer(newAge)));
        pvs.addPropertyValue(new PropertyValue("name", newName));

        pvs.addPropertyValue(new PropertyValue("touchy", newTouchy));
        bw.setPropertyValues(pvs);
        assertTrue("Validly set property must stick", t.getName().equals(newName));
        assertTrue("Validly set property must stick", t.getTouchy().equals(newTouchy));
        assertTrue("Validly set property must stick", t.getAge() == newAge);
    } catch (BeansException ex) {
        fail("Shouldn't throw exception when everything is valid");
    }
}

From source file:net.sf.juffrou.reflect.spring.BeanWrapperTests.java

@Test
public void testMapAccessWithTypeConversion() {
    IndexedTestBean bean = new IndexedTestBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(bean);
    bw.registerCustomEditor(TestBean.class, new PropertyEditorSupport() {
        @Override/*from w  w  w .  j av  a 2 s. com*/
        public void setAsText(String text) throws IllegalArgumentException {
            if (!StringUtils.hasLength(text)) {
                throw new IllegalArgumentException();
            }
            setValue(new TestBean(text));
        }
    });

    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("map[key1]", "rod");
    pvs.add("map[key2]", "rob");
    bw.setPropertyValues(pvs);
    assertEquals("rod", ((TestBean) bean.getMap().get("key1")).getName());
    assertEquals("rob", ((TestBean) bean.getMap().get("key2")).getName());

    pvs = new MutablePropertyValues();
    pvs.add("map[key1]", "rod");
    pvs.add("map[key2]", "");
    try {
        bw.setPropertyValues(pvs);
        fail("Should have thrown TypeMismatchException");
    } catch (PropertyBatchUpdateException ex) {
        PropertyAccessException pae = ex.getPropertyAccessException("map[key2]");
        assertTrue(pae instanceof TypeMismatchException);
    }
}

From source file:net.sf.juffrou.reflect.spring.BeanWrapperTests.java

@Test
public void testMapAccessWithCustomUnmodifiableMap() {
    IndexedTestBean bean = new IndexedTestBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(bean);
    bw.registerCustomEditor(TestBean.class, "map", new PropertyEditorSupport() {
        @Override//from  ww  w.java  2 s.  com
        public void setAsText(String text) throws IllegalArgumentException {
            if (!StringUtils.hasLength(text)) {
                throw new IllegalArgumentException();
            }
            setValue(new TestBean(text));
        }
    });

    Map<Object, Object> inputMap = new HashMap<Object, Object>();
    inputMap.put(new Integer(1), "rod");
    inputMap.put(new Integer(2), "rob");
    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("map", new ReadOnlyMap(inputMap));
    bw.setPropertyValues(pvs);
    assertEquals("rod", ((TestBean) bean.getMap().get(new Integer(1))).getName());
    assertEquals("rob", ((TestBean) bean.getMap().get(new Integer(2))).getName());
}