Example usage for org.springframework.beans BeanWrapper setPropertyValue

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

Introduction

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

Prototype

void setPropertyValue(String propertyName, @Nullable Object value) throws BeansException;

Source Link

Document

Set the specified value as current property value.

Usage

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

@Test
public void testAlternativesForTypo() {
    IntelliBean ib = new IntelliBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(ib);
    try {/*from   w  w  w  . j a v a  2 s .  co  m*/
        bw.setPropertyValue("names", "Alef");
    } catch (NotWritablePropertyException ex) {
        assertNotNull("Possible matches not determined", ex.getPossibleMatches());
        assertEquals("Invalid amount of alternatives", 1, ex.getPossibleMatches().length);
    }
}

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

@Test
public void testAlternativesForTypos() {
    IntelliBean ib = new IntelliBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(ib);
    try {//  w ww .ja v a 2  s .  c  o  m
        bw.setPropertyValue("mystring", "Arjen");
    } catch (NotWritablePropertyException ex) {
        assertNotNull("Possible matches not determined", ex.getPossibleMatches());
        assertEquals("Invalid amount of alternatives", 3, ex.getPossibleMatches().length);
    }
}

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

@Test
public void testSetNestedPropertyNullValue() throws Exception {
    ITestBean rod = new TestBean("rod", 31);
    BeanWrapper bw = new JuffrouSpringBeanWrapper(rod);
    try {/* ww w . java  2 s. c  o m*/
        bw.setPropertyValue("spouse.age", new Integer(31));
        fail("Shouldn't have succeeded with null path");
    } catch (NullValueInNestedPathException ex) {
        // expected
        assertTrue("it was the spouse property that was null, not " + ex.getPropertyName(),
                ex.getPropertyName().equals("spouse"));
    }
}

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

@Test
public void testStringArrayProperty() throws Exception {
    PropsTester pt = new PropsTester();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(pt);

    bw.setPropertyValue("stringArray", new String[] { "foo", "fi", "fi", "fum" });
    assertTrue("stringArray length = 4", pt.stringArray.length == 4);
    assertTrue("correct values", pt.stringArray[0].equals("foo") && pt.stringArray[1].equals("fi")
            && pt.stringArray[2].equals("fi") && pt.stringArray[3].equals("fum"));

    List<String> list = new ArrayList<String>();
    list.add("foo");
    list.add("fi");
    list.add("fi");
    list.add("fum");
    bw.setPropertyValue("stringArray", list);
    assertTrue("stringArray length = 4", pt.stringArray.length == 4);
    assertTrue("correct values", pt.stringArray[0].equals("foo") && pt.stringArray[1].equals("fi")
            && pt.stringArray[2].equals("fi") && pt.stringArray[3].equals("fum"));

    Set<String> set = new HashSet<String>();
    set.add("foo");
    set.add("fi");
    set.add("fum");
    bw.setPropertyValue("stringArray", set);
    assertTrue("stringArray length = 3", pt.stringArray.length == 3);
    List<String> result = Arrays.asList(pt.stringArray);
    assertTrue("correct values", result.contains("foo") && result.contains("fi") && result.contains("fum"));

    bw.setPropertyValue("stringArray", "one");
    assertTrue("stringArray length = 1", pt.stringArray.length == 1);
    assertTrue("stringArray elt is ok", pt.stringArray[0].equals("one"));

    bw.setPropertyValue("stringArray", null);
    assertTrue("stringArray is null", pt.stringArray == null);
}

From source file:com.wantscart.jade.core.BeanPropertyRowMapper.java

/**
 * Extract the values for all columns in the current row.
 * <p/>/*from   w w  w.  j av  a 2s. c  o  m*/
 * Utilizes public setters and result set metadata.
 *
 * @see java.sql.ResultSetMetaData
 */
public Object mapRow(ResultSet rs, int rowNumber) throws SQLException {
    // spring's : Object mappedObject = BeanUtils.instantiateClass(this.mappedClass);
    // jade's : private Object instantiateClass(this.mappedClass);
    // why: ??mappedClass.newInstranceBeanUtils.instantiateClass(mappedClass)1?
    Object mappedObject = instantiateClass(this.mappedClass);
    BeanWrapper bw = new BeanWrapperImpl(mappedObject);

    ResultSetMetaData rsmd = rs.getMetaData();
    int columnCount = rsmd.getColumnCount();

    boolean warnEnabled = logger.isWarnEnabled();
    boolean debugEnabled = logger.isDebugEnabled();
    Set<String> populatedProperties = (checkProperties ? new HashSet<String>() : null);

    for (int index = 1; index <= columnCount; index++) {
        String columnName = JdbcUtils.lookupColumnName(rsmd, index).toLowerCase();
        TableSchema.Column col = this.mappedFields.get(columnName);
        if (col != null) {
            try {
                Object value = JdbcUtils.getResultSetValue(rs, index, (Class<?>) col.getColumnType());
                if (debugEnabled && rowNumber == 0) {
                    logger.debug("Mapping column '" + columnName + "' to property '" + col.getName()
                            + "' of type " + col.getType());
                }
                if (col.isSerializable()) {
                    if (col.getSerializer().getClass() != NullSerializer.class) {
                        value = col.getSerializer().deserialize(value,
                                col.getGenericType() != null ? col.getGenericType() : col.getType());
                    } else {
                        Serializable instance = (Serializable) BeanUtils
                                .instantiateClass((Class) col.getType());
                        instance.deserialize(value);
                        value = instance;
                    }

                }
                bw.setPropertyValue(col.getOriginName(), value);
                if (populatedProperties != null) {
                    populatedProperties.add(col.getName());
                }
            } catch (NotWritablePropertyException ex) {
                throw new DataRetrievalFailureException(
                        "Unable to map column " + columnName + " to property " + col.getOriginName(), ex);
            }
        } else {
            if (checkColumns) {
                throw new InvalidDataAccessApiUsageException("Unable to map column '" + columnName
                        + "' to any properties of bean " + this.mappedClass.getName());
            }
            if (warnEnabled && rowNumber == 0) {
                logger.warn("Unable to map column '" + columnName + "' to any properties of bean "
                        + this.mappedClass.getName());
            }
        }
    }

    if (populatedProperties != null && !populatedProperties.equals(this.mappedProperties)) {
        throw new InvalidDataAccessApiUsageException("Given ResultSet does not contain all fields "
                + "necessary to populate object of class [" + this.mappedClass + "]: " + this.mappedProperties);
    }

    return mappedObject;
}

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

@Test
public void testNumberObjects() {
    NumberTestBean tb = new NumberTestBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(tb);

    try {/*  w w  w  .j a va2 s.  c  o  m*/
        bw.setPropertyValue("short2", "2");
        bw.setPropertyValue("int2", "8");
        bw.setPropertyValue("long2", "6");
        bw.setPropertyValue("bigInteger", "3");
        bw.setPropertyValue("float2", "8.1");
        bw.setPropertyValue("double2", "6.1");
        bw.setPropertyValue("bigDecimal", "4.0");
    } catch (BeansException ex) {
        fail("Should not throw BeansException: " + ex.getMessage());
    }

    assertTrue("Correct short2 value", new Short("2").equals(bw.getPropertyValue("short2")));
    assertTrue("Correct short2 value", new Short("2").equals(tb.getShort2()));
    assertTrue("Correct int2 value", new Integer("8").equals(bw.getPropertyValue("int2")));
    assertTrue("Correct int2 value", new Integer("8").equals(tb.getInt2()));
    assertTrue("Correct long2 value", new Long("6").equals(bw.getPropertyValue("long2")));
    assertTrue("Correct long2 value", new Long("6").equals(tb.getLong2()));
    assertTrue("Correct bigInteger value", new BigInteger("3").equals(bw.getPropertyValue("bigInteger")));
    assertTrue("Correct bigInteger value", new BigInteger("3").equals(tb.getBigInteger()));
    assertTrue("Correct float2 value", new Float("8.1").equals(bw.getPropertyValue("float2")));
    assertTrue("Correct float2 value", new Float("8.1").equals(tb.getFloat2()));
    assertTrue("Correct double2 value", new Double("6.1").equals(bw.getPropertyValue("double2")));
    assertTrue("Correct double2 value", new Double("6.1").equals(tb.getDouble2()));
    assertTrue("Correct bigDecimal value", new BigDecimal("4.0").equals(bw.getPropertyValue("bigDecimal")));
    assertTrue("Correct bigDecimal value", new BigDecimal("4.0").equals(tb.getBigDecimal()));
}

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

@Test
public void testNumberCoercion() {
    NumberTestBean tb = new NumberTestBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(tb);

    try {//from  w ww .j a  va 2  s  .  co  m
        bw.setPropertyValue("short2", new Integer(2));
        bw.setPropertyValue("int2", new Long(8));
        bw.setPropertyValue("long2", new BigInteger("6"));
        bw.setPropertyValue("bigInteger", new Integer(3));
        bw.setPropertyValue("float2", new Double(8.1));
        bw.setPropertyValue("double2", new BigDecimal(6.1));
        bw.setPropertyValue("bigDecimal", new Float(4.0));
    } catch (BeansException ex) {
        fail("Should not throw BeansException: " + ex.getMessage());
    }

    assertTrue("Correct short2 value", new Short("2").equals(bw.getPropertyValue("short2")));
    assertTrue("Correct short2 value", new Short("2").equals(tb.getShort2()));
    assertTrue("Correct int2 value", new Integer("8").equals(bw.getPropertyValue("int2")));
    assertTrue("Correct int2 value", new Integer("8").equals(tb.getInt2()));
    assertTrue("Correct long2 value", new Long("6").equals(bw.getPropertyValue("long2")));
    assertTrue("Correct long2 value", new Long("6").equals(tb.getLong2()));
    assertTrue("Correct bigInteger value", new BigInteger("3").equals(bw.getPropertyValue("bigInteger")));
    assertTrue("Correct bigInteger value", new BigInteger("3").equals(tb.getBigInteger()));
    assertTrue("Correct float2 value", new Float("8.1").equals(bw.getPropertyValue("float2")));
    assertTrue("Correct float2 value", new Float("8.1").equals(tb.getFloat2()));
    assertTrue("Correct double2 value", new Double("6.1").equals(bw.getPropertyValue("double2")));
    assertTrue("Correct double2 value", new Double("6.1").equals(tb.getDouble2()));
    assertTrue("Correct bigDecimal value", new BigDecimal("4.0").equals(bw.getPropertyValue("bigDecimal")));
    assertTrue("Correct bigDecimal value", new BigDecimal("4.0").equals(tb.getBigDecimal()));
}

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

@Test
public void testIntArrayProperty() {
    PropsTester pt = new PropsTester();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(pt);

    bw.setPropertyValue("intArray", new int[] { 4, 5, 2, 3 });
    assertTrue("intArray length = 4", pt.intArray.length == 4);
    assertTrue("correct values",
            pt.intArray[0] == 4 && pt.intArray[1] == 5 && pt.intArray[2] == 2 && pt.intArray[3] == 3);

    bw.setPropertyValue("intArray", new String[] { "4", "5", "2", "3" });
    assertTrue("intArray length = 4", pt.intArray.length == 4);
    assertTrue("correct values",
            pt.intArray[0] == 4 && pt.intArray[1] == 5 && pt.intArray[2] == 2 && pt.intArray[3] == 3);

    List<Object> list = new ArrayList<Object>();
    list.add(new Integer(4));
    list.add("5");
    list.add(new Integer(2));
    list.add("3");
    bw.setPropertyValue("intArray", list);
    assertTrue("intArray length = 4", pt.intArray.length == 4);
    assertTrue("correct values",
            pt.intArray[0] == 4 && pt.intArray[1] == 5 && pt.intArray[2] == 2 && pt.intArray[3] == 3);

    Set<Object> set = new HashSet<Object>();
    set.add("4");
    set.add(new Integer(5));
    set.add("3");
    bw.setPropertyValue("intArray", set);
    assertTrue("intArray length = 3", pt.intArray.length == 3);
    List<Integer> result = new ArrayList<Integer>();
    result.add(new Integer(pt.intArray[0]));
    result.add(new Integer(pt.intArray[1]));
    result.add(new Integer(pt.intArray[2]));
    assertTrue("correct values", result.contains(new Integer(4)) && result.contains(new Integer(5))
            && result.contains(new Integer(3)));

    bw.setPropertyValue("intArray", new Integer[] { new Integer(1) });
    assertTrue("intArray length = 4", pt.intArray.length == 1);
    assertTrue("correct values", pt.intArray[0] == 1);

    bw.setPropertyValue("intArray", new Integer(1));
    assertTrue("intArray length = 4", pt.intArray.length == 1);
    assertTrue("correct values", pt.intArray[0] == 1);

    bw.setPropertyValue("intArray", new String[] { "1" });
    assertTrue("intArray length = 4", pt.intArray.length == 1);
    assertTrue("correct values", pt.intArray[0] == 1);

    bw.setPropertyValue("intArray", "1");
    assertTrue("intArray length = 4", pt.intArray.length == 1);
    assertTrue("correct values", pt.intArray[0] == 1);
}

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

@Test
public void testValidNullUpdate() {
    TestBean t = new TestBean();
    t.setName("Frank"); // we need to change it back
    t.setSpouse(t);/*w  w  w.j ava 2  s.c  o m*/
    BeanWrapper bw = new JuffrouSpringBeanWrapper(t);
    assertTrue("name is not null to start off", t.getName() != null);
    bw.setPropertyValue("name", null);
    assertTrue("name is now null", t.getName() == null);
    // now test with non-string
    assertTrue("spouse is not null to start off", t.getSpouse() != null);
    bw.setPropertyValue("spouse", null);
    assertTrue("spouse is now null", t.getSpouse() == null);
}

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

@SuppressWarnings("unchecked")
// list cannot be properly parameterized as it breaks other tests
@Test//from www  . j a v  a2  s .c  o m
public void testCollectionsWithStringValues() {
    IndexedTestBean tb = new IndexedTestBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(tb);
    List<String> set = new LinkedList<String>();
    set.add("set1");
    bw.setPropertyValue("set", "set1");
    List<String> sortedSet = new ArrayList<String>();
    sortedSet.add("sortedSet1");
    bw.setPropertyValue("sortedSet", "sortedSet1");
    Set<String> list = new HashSet<String>();
    list.add("list1");
    bw.setPropertyValue("list", "list1");
    assertEquals(1, tb.getSet().size());
    assertTrue(tb.getSet().containsAll(set));
    assertEquals(1, tb.getSortedSet().size());
    assertTrue(tb.getSortedSet().containsAll(sortedSet));
    assertEquals(1, tb.getList().size());
    assertTrue(tb.getList().containsAll(list));
}