Example usage for org.springframework.beans AbstractPropertyAccessor setPropertyValues

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

Introduction

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

Prototype

@Override
    public void setPropertyValues(PropertyValues pvs) throws BeansException 

Source Link

Usage

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

@Test
public void setEmptyPropertyValues() {
    TestBean target = new TestBean();
    int age = 50;
    String name = "Tony";
    target.setAge(age);/*w w w  .  ja va 2s .  c om*/
    target.setName(name);
    try {
        AbstractPropertyAccessor accessor = createAccessor(target);
        assertTrue("age is OK", target.getAge() == age);
        assertTrue("name is OK", name.equals(target.getName()));
        accessor.setPropertyValues(new MutablePropertyValues());
        // Check its unchanged
        assertTrue("age is OK", target.getAge() == age);
        assertTrue("name is OK", name.equals(target.getName()));
    } catch (BeansException ex) {
        fail("Shouldn't throw exception when everything is valid");
    }
}

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

@Test
public void setValidPropertyValues() {
    TestBean target = new TestBean();
    String newName = "tony";
    int newAge = 65;
    String newTouchy = "valid";
    try {/* www  . j  av a2s.co m*/
        AbstractPropertyAccessor accessor = createAccessor(target);
        MutablePropertyValues pvs = new MutablePropertyValues();
        pvs.addPropertyValue(new PropertyValue("age", newAge));
        pvs.addPropertyValue(new PropertyValue("name", newName));
        pvs.addPropertyValue(new PropertyValue("touchy", newTouchy));
        accessor.setPropertyValues(pvs);
        assertTrue("Name property should have changed", target.getName().equals(newName));
        assertTrue("Touchy property should have changed", target.getTouchy().equals(newTouchy));
        assertTrue("Age property should have changed", target.getAge() == newAge);
    } catch (BeansException ex) {
        fail("Shouldn't throw exception when everything is valid");
    }
}

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

@Test
public void setPropertyWithPrimitiveConversion() {
    MutablePropertyValues values = new MutablePropertyValues();
    values.add("name", 42);
    TestBean target = new TestBean();
    AbstractPropertyAccessor accessor = createAccessor(target);
    accessor.setPropertyValues(values);
    assertEquals("42", target.getName());
}

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

@Test
public void setPropertyWithCustomEditor() {
    MutablePropertyValues values = new MutablePropertyValues();
    values.add("name", Integer.class);
    TestBean target = new TestBean();
    AbstractPropertyAccessor accessor = createAccessor(target);
    accessor.registerCustomEditor(String.class, new PropertyEditorSupport() {
        @Override/*from w w  w  .j av  a2s. c o  m*/
        public void setValue(Object value) {
            super.setValue(value.toString());
        }
    });
    accessor.setPropertyValues(values);
    assertEquals(Integer.class.toString(), target.getName());
}

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

@Test
public void setMapPropertyWithTypeConversion() {
    IndexedTestBean target = new IndexedTestBean();
    AbstractPropertyAccessor accessor = createAccessor(target);
    accessor.registerCustomEditor(TestBean.class, new PropertyEditorSupport() {
        @Override/*  w  w w.j  a  v  a 2 s .  c  o  m*/
        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");
    accessor.setPropertyValues(pvs);
    assertEquals("rod", ((TestBean) target.getMap().get("key1")).getName());
    assertEquals("rob", ((TestBean) target.getMap().get("key2")).getName());

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

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

@Test
public void setMapPropertyWithUnmodifiableMap() {
    IndexedTestBean target = new IndexedTestBean();
    AbstractPropertyAccessor accessor = createAccessor(target);
    accessor.registerCustomEditor(TestBean.class, "map", new PropertyEditorSupport() {
        @Override//from   ww w  .  j a va 2  s.  c  om
        public void setAsText(String text) throws IllegalArgumentException {
            if (!StringUtils.hasLength(text)) {
                throw new IllegalArgumentException();
            }
            setValue(new TestBean(text));
        }
    });

    Map<Integer, String> inputMap = new HashMap<>();
    inputMap.put(1, "rod");
    inputMap.put(2, "rob");
    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("map", Collections.unmodifiableMap(inputMap));
    accessor.setPropertyValues(pvs);
    assertEquals("rod", ((TestBean) target.getMap().get(1)).getName());
    assertEquals("rob", ((TestBean) target.getMap().get(2)).getName());
}

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

@Test
public void setMapPropertyWithCustomUnmodifiableMap() {
    IndexedTestBean target = new IndexedTestBean();
    AbstractPropertyAccessor accessor = createAccessor(target);
    accessor.registerCustomEditor(TestBean.class, "map", new PropertyEditorSupport() {
        @Override//from   ww  w  . j a  v  a2  s  .  co m
        public void setAsText(String text) throws IllegalArgumentException {
            if (!StringUtils.hasLength(text)) {
                throw new IllegalArgumentException();
            }
            setValue(new TestBean(text));
        }
    });

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

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

@SuppressWarnings("unchecked") // must work with raw map in this test
@Test/*w w w  . ja  v  a  2  s  .c o  m*/
public void setRawMapPropertyWithNoEditorRegistered() {
    IndexedTestBean target = new IndexedTestBean();
    AbstractPropertyAccessor accessor = createAccessor(target);
    Map inputMap = new HashMap();
    inputMap.put(1, "rod");
    inputMap.put(2, "rob");
    ReadOnlyMap readOnlyMap = new ReadOnlyMap(inputMap);
    MutablePropertyValues pvs = new MutablePropertyValues();
    pvs.add("map", readOnlyMap);
    accessor.setPropertyValues(pvs);
    assertSame(readOnlyMap, target.getMap());
    assertFalse(readOnlyMap.isAccessed());
}

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

@Test
public void getAndSetIndexedProperties() {
    IndexedTestBean target = new IndexedTestBean();
    AbstractPropertyAccessor accessor = createAccessor(target);
    TestBean tb0 = target.getArray()[0];
    TestBean tb1 = target.getArray()[1];
    TestBean tb2 = ((TestBean) target.getList().get(0));
    TestBean tb3 = ((TestBean) target.getList().get(1));
    TestBean tb6 = ((TestBean) target.getSet().toArray()[0]);
    TestBean tb7 = ((TestBean) target.getSet().toArray()[1]);
    TestBean tb4 = ((TestBean) target.getMap().get("key1"));
    TestBean tb5 = ((TestBean) target.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", accessor.getPropertyValue("array[0].name"));
    assertEquals("name1", accessor.getPropertyValue("array[1].name"));
    assertEquals("name2", accessor.getPropertyValue("list[0].name"));
    assertEquals("name3", accessor.getPropertyValue("list[1].name"));
    assertEquals("name6", accessor.getPropertyValue("set[0].name"));
    assertEquals("name7", accessor.getPropertyValue("set[1].name"));
    assertEquals("name4", accessor.getPropertyValue("map[key1].name"));
    assertEquals("name5", accessor.getPropertyValue("map[key.3].name"));
    assertEquals("name4", accessor.getPropertyValue("map['key1'].name"));
    assertEquals("name5", accessor.getPropertyValue("map[\"key.3\"].name"));
    assertEquals("nameX", accessor.getPropertyValue("map[key4][0].name"));
    assertEquals("nameY", accessor.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");
    accessor.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", accessor.getPropertyValue("array[0].name"));
    assertEquals("name4", accessor.getPropertyValue("array[1].name"));
    assertEquals("name3", accessor.getPropertyValue("list[0].name"));
    assertEquals("name2", accessor.getPropertyValue("list[1].name"));
    assertEquals("name8", accessor.getPropertyValue("set[0].name"));
    assertEquals("name9", accessor.getPropertyValue("set[1].name"));
    assertEquals("name1", accessor.getPropertyValue("map[\"key1\"].name"));
    assertEquals("name0", accessor.getPropertyValue("map['key.3'].name"));
    assertEquals("nameA", accessor.getPropertyValue("map[key4][0].name"));
    assertEquals("nameB", accessor.getPropertyValue("map[key4][1].name"));
}

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

@Test
public void getAndSetIndexedPropertiesWithDirectAccess() {
    IndexedTestBean target = new IndexedTestBean();
    AbstractPropertyAccessor accessor = createAccessor(target);
    TestBean tb0 = target.getArray()[0];
    TestBean tb1 = target.getArray()[1];
    TestBean tb2 = ((TestBean) target.getList().get(0));
    TestBean tb3 = ((TestBean) target.getList().get(1));
    TestBean tb6 = ((TestBean) target.getSet().toArray()[0]);
    TestBean tb7 = ((TestBean) target.getSet().toArray()[1]);
    TestBean tb4 = ((TestBean) target.getMap().get("key1"));
    TestBean tb5 = ((TestBean) target.getMap().get("key2"));
    assertEquals(tb0, accessor.getPropertyValue("array[0]"));
    assertEquals(tb1, accessor.getPropertyValue("array[1]"));
    assertEquals(tb2, accessor.getPropertyValue("list[0]"));
    assertEquals(tb3, accessor.getPropertyValue("list[1]"));
    assertEquals(tb6, accessor.getPropertyValue("set[0]"));
    assertEquals(tb7, accessor.getPropertyValue("set[1]"));
    assertEquals(tb4, accessor.getPropertyValue("map[key1]"));
    assertEquals(tb5, accessor.getPropertyValue("map[key2]"));
    assertEquals(tb4, accessor.getPropertyValue("map['key1']"));
    assertEquals(tb5, accessor.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);
    accessor.setPropertyValues(pvs);
    assertEquals(tb5, target.getArray()[0]);
    assertEquals(tb4, target.getArray()[1]);
    assertEquals(tb3, (target.getList().get(0)));
    assertEquals(tb2, (target.getList().get(1)));
    assertEquals(tb0, (target.getList().get(2)));
    assertEquals(null, (target.getList().get(3)));
    assertEquals(tb1, (target.getList().get(4)));
    assertEquals(tb1, (target.getMap().get("key1")));
    assertEquals(tb0, (target.getMap().get("key2")));
    assertEquals(tb4, (target.getMap().get("key5")));
    assertEquals(tb5, (target.getMap().get("key9")));
    assertEquals(tb5, accessor.getPropertyValue("array[0]"));
    assertEquals(tb4, accessor.getPropertyValue("array[1]"));
    assertEquals(tb3, accessor.getPropertyValue("list[0]"));
    assertEquals(tb2, accessor.getPropertyValue("list[1]"));
    assertEquals(tb0, accessor.getPropertyValue("list[2]"));
    assertEquals(null, accessor.getPropertyValue("list[3]"));
    assertEquals(tb1, accessor.getPropertyValue("list[4]"));
    assertEquals(tb1, accessor.getPropertyValue("map[\"key1\"]"));
    assertEquals(tb0, accessor.getPropertyValue("map['key2']"));
    assertEquals(tb4, accessor.getPropertyValue("map[\"key5\"]"));
    assertEquals(tb5, accessor.getPropertyValue("map['key9']"));
}