Example usage for org.springframework.beans MutablePropertyValues MutablePropertyValues

List of usage examples for org.springframework.beans MutablePropertyValues MutablePropertyValues

Introduction

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

Prototype

public MutablePropertyValues() 

Source Link

Document

Creates a new empty MutablePropertyValues object.

Usage

From source file:org.springframework.beans.BeanWrapperTests.java

@Test
public void testEmptyPropertyValuesSet() {
    TestBean t = new TestBean();
    int age = 50;
    String name = "Tony";
    t.setAge(age);/* w ww. ja v a  2 s  .  co  m*/
    t.setName(name);
    try {
        BeanWrapper bw = new BeanWrapperImpl(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:org.springframework.beans.BeanWrapperTests.java

@Test
public void testAllValid() {
    TestBean t = new TestBean();
    String newName = "tony";
    int newAge = 65;
    String newTouchy = "valid";
    try {/*w w w .j a v a  2 s. co  m*/
        BeanWrapper bw = new BeanWrapperImpl(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:org.springframework.beans.BeanWrapperTests.java

@Test
public void testIgnoringIndexedProperty() {
    MutablePropertyValues values = new MutablePropertyValues();
    values.add("toBeIgnored[0]", new Integer(42));
    BeanWrapper bw = new BeanWrapperImpl(new Object());
    bw.setPropertyValues(values, true);/*from  w  w w . ja v  a 2  s .  c  o  m*/
}

From source file:org.springframework.beans.BeanWrapperTests.java

@Test
public void testConvertPrimitiveToString() {
    MutablePropertyValues values = new MutablePropertyValues();
    values.add("name", new Integer(42));
    TestBean tb = new TestBean();
    BeanWrapper bw = new BeanWrapperImpl(tb);
    bw.setPropertyValues(values);/*from ww  w.  j  av a  2s  .  co m*/
    assertEquals("42", tb.getName());
}

From source file:org.springframework.beans.BeanWrapperTests.java

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

From source file:org.springframework.beans.BeanWrapperTests.java

@Test
public void test2Invalid() {
    TestBean t = new TestBean();
    String newName = "tony";
    String invalidTouchy = ".valid";
    try {//from w w w  .  java 2  s  .  co m
        BeanWrapper bw = new BeanWrapperImpl(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:org.springframework.beans.BeanWrapperTests.java

@Test
public void testSetPropertyValuesIgnoresInvalidNestedOnRequest() {
    ITestBean rod = new TestBean();
    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.addPropertyValue(new PropertyValue("name", "rod"));
    pvs.addPropertyValue(new PropertyValue("graceful.rubbish", "tony"));
    pvs.addPropertyValue(new PropertyValue("more.garbage", new Object()));
    BeanWrapper bw = new BeanWrapperImpl(rod);
    bw.setPropertyValues(pvs, true);/*from   ww w. j a v a  2 s  .c  o  m*/
    assertTrue("Set valid and ignored invalid", rod.getName().equals("rod"));
    try {
        // Don't ignore: should fail
        bw.setPropertyValues(pvs, false);
        fail("Shouldn't have ignored invalid updates");
    } catch (NotWritablePropertyException ex) {
        // OK: but which exception??
    }
}

From source file:org.springframework.beans.BeanWrapperTests.java

@Test
public void testIndexedProperties() {
    IndexedTestBean bean = new IndexedTestBean();
    BeanWrapper bw = new BeanWrapperImpl(bean);
    TestBean tb0 = bean.getArray()[0];/* w  ww .  ja  v  a2s.c  o m*/
    TestBean tb1 = bean.getArray()[1];
    TestBean tb2 = ((TestBean) bean.getList().get(0));
    TestBean tb3 = ((TestBean) bean.getList().get(1));
    TestBean tb6 = ((TestBean) bean.getSet().toArray()[0]);
    TestBean tb7 = ((TestBean) bean.getSet().toArray()[1]);
    TestBean tb4 = ((TestBean) bean.getMap().get("key1"));
    TestBean tb5 = ((TestBean) bean.getMap().get("key.3"));
    assertEquals("name0", tb0.getName());
    assertEquals("name1", tb1.getName());
    assertEquals("name2", tb2.getName());
    assertEquals("name3", tb3.getName());
    assertEquals("name6", tb6.getName());
    assertEquals("name7", tb7.getName());
    assertEquals("name4", tb4.getName());
    assertEquals("name5", tb5.getName());
    assertEquals("name0", bw.getPropertyValue("array[0].name"));
    assertEquals("name1", bw.getPropertyValue("array[1].name"));
    assertEquals("name2", bw.getPropertyValue("list[0].name"));
    assertEquals("name3", bw.getPropertyValue("list[1].name"));
    assertEquals("name6", bw.getPropertyValue("set[0].name"));
    assertEquals("name7", bw.getPropertyValue("set[1].name"));
    assertEquals("name4", bw.getPropertyValue("map[key1].name"));
    assertEquals("name5", bw.getPropertyValue("map[key.3].name"));
    assertEquals("name4", bw.getPropertyValue("map['key1'].name"));
    assertEquals("name5", bw.getPropertyValue("map[\"key.3\"].name"));
    assertEquals("nameX", bw.getPropertyValue("map[key4][0].name"));
    assertEquals("nameY", bw.getPropertyValue("map[key4][1].name"));

    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("array[0].name", "name5");
    pvs.add("array[1].name", "name4");
    pvs.add("list[0].name", "name3");
    pvs.add("list[1].name", "name2");
    pvs.add("set[0].name", "name8");
    pvs.add("set[1].name", "name9");
    pvs.add("map[key1].name", "name1");
    pvs.add("map['key.3'].name", "name0");
    pvs.add("map[key4][0].name", "nameA");
    pvs.add("map[key4][1].name", "nameB");
    bw.setPropertyValues(pvs);
    assertEquals("name5", tb0.getName());
    assertEquals("name4", tb1.getName());
    assertEquals("name3", tb2.getName());
    assertEquals("name2", tb3.getName());
    assertEquals("name1", tb4.getName());
    assertEquals("name0", tb5.getName());
    assertEquals("name5", bw.getPropertyValue("array[0].name"));
    assertEquals("name4", bw.getPropertyValue("array[1].name"));
    assertEquals("name3", bw.getPropertyValue("list[0].name"));
    assertEquals("name2", bw.getPropertyValue("list[1].name"));
    assertEquals("name8", bw.getPropertyValue("set[0].name"));
    assertEquals("name9", bw.getPropertyValue("set[1].name"));
    assertEquals("name1", bw.getPropertyValue("map[\"key1\"].name"));
    assertEquals("name0", bw.getPropertyValue("map['key.3'].name"));
    assertEquals("nameA", bw.getPropertyValue("map[key4][0].name"));
    assertEquals("nameB", bw.getPropertyValue("map[key4][1].name"));
}

From source file:org.springframework.beans.BeanWrapperTests.java

@Test
public void testIndexedPropertiesWithDirectAccess() {
    IndexedTestBean bean = new IndexedTestBean();
    BeanWrapper bw = new BeanWrapperImpl(bean);
    TestBean tb0 = bean.getArray()[0];//from  ww w .j a  v  a 2 s . com
    TestBean tb1 = bean.getArray()[1];
    TestBean tb2 = ((TestBean) bean.getList().get(0));
    TestBean tb3 = ((TestBean) bean.getList().get(1));
    TestBean tb6 = ((TestBean) bean.getSet().toArray()[0]);
    TestBean tb7 = ((TestBean) bean.getSet().toArray()[1]);
    TestBean tb4 = ((TestBean) bean.getMap().get("key1"));
    TestBean tb5 = ((TestBean) bean.getMap().get("key2"));
    assertEquals(tb0, bw.getPropertyValue("array[0]"));
    assertEquals(tb1, bw.getPropertyValue("array[1]"));
    assertEquals(tb2, bw.getPropertyValue("list[0]"));
    assertEquals(tb3, bw.getPropertyValue("list[1]"));
    assertEquals(tb6, bw.getPropertyValue("set[0]"));
    assertEquals(tb7, bw.getPropertyValue("set[1]"));
    assertEquals(tb4, bw.getPropertyValue("map[key1]"));
    assertEquals(tb5, bw.getPropertyValue("map[key2]"));
    assertEquals(tb4, bw.getPropertyValue("map['key1']"));
    assertEquals(tb5, bw.getPropertyValue("map[\"key2\"]"));

    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("array[0]", tb5);
    pvs.add("array[1]", tb4);
    pvs.add("list[0]", tb3);
    pvs.add("list[1]", tb2);
    pvs.add("list[2]", tb0);
    pvs.add("list[4]", tb1);
    pvs.add("map[key1]", tb1);
    pvs.add("map['key2']", tb0);
    pvs.add("map[key5]", tb4);
    pvs.add("map['key9']", tb5);
    bw.setPropertyValues(pvs);
    assertEquals(tb5, bean.getArray()[0]);
    assertEquals(tb4, bean.getArray()[1]);
    assertEquals(tb3, (bean.getList().get(0)));
    assertEquals(tb2, (bean.getList().get(1)));
    assertEquals(tb0, (bean.getList().get(2)));
    assertEquals(null, (bean.getList().get(3)));
    assertEquals(tb1, (bean.getList().get(4)));
    assertEquals(tb1, (bean.getMap().get("key1")));
    assertEquals(tb0, (bean.getMap().get("key2")));
    assertEquals(tb4, (bean.getMap().get("key5")));
    assertEquals(tb5, (bean.getMap().get("key9")));
    assertEquals(tb5, bw.getPropertyValue("array[0]"));
    assertEquals(tb4, bw.getPropertyValue("array[1]"));
    assertEquals(tb3, bw.getPropertyValue("list[0]"));
    assertEquals(tb2, bw.getPropertyValue("list[1]"));
    assertEquals(tb0, bw.getPropertyValue("list[2]"));
    assertEquals(null, bw.getPropertyValue("list[3]"));
    assertEquals(tb1, bw.getPropertyValue("list[4]"));
    assertEquals(tb1, bw.getPropertyValue("map[\"key1\"]"));
    assertEquals(tb0, bw.getPropertyValue("map['key2']"));
    assertEquals(tb4, bw.getPropertyValue("map[\"key5\"]"));
    assertEquals(tb5, bw.getPropertyValue("map['key9']"));
}

From source file:org.springframework.beans.BeanWrapperTests.java

@Test
public void testMapAccessWithTypeConversion() {
    IndexedTestBean bean = new IndexedTestBean();
    BeanWrapper bw = new BeanWrapperImpl(bean);
    bw.registerCustomEditor(TestBean.class, new PropertyEditorSupport() {
        @Override/*from  w w  w  . j  a  v  a  2  s.c om*/
        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);
    }
}