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 testLargeMatchingPrimitiveArray() {
    if (LogFactory.getLog(BeanWrapperTests.class).isTraceEnabled()) {
        // Skip this test: Trace logging blows the time limit.
        return;/*from w w  w . j ava  2s  .c o m*/
    }

    PrimitiveArrayBean tb = new PrimitiveArrayBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(tb);
    int[] input = new int[1024];
    StopWatch sw = new StopWatch();
    sw.start("array1");
    for (int i = 0; i < 1000; i++) {
        bw.setPropertyValue("array", input);
    }
    sw.stop();
    assertEquals(1024, tb.getArray().length);
    assertEquals(0, tb.getArray()[0]);
    long time1 = sw.getLastTaskTimeMillis();
    assertTrue("Took too long", sw.getLastTaskTimeMillis() < 100);

    bw.registerCustomEditor(String.class, new StringTrimmerEditor(false));
    sw.start("array2");
    for (int i = 0; i < 1000; i++) {
        bw.setPropertyValue("array", input);
    }
    sw.stop();
    assertTrue("Took too long", sw.getLastTaskTimeMillis() < 125);

    bw.registerCustomEditor(int.class, "array.somePath", new CustomNumberEditor(Integer.class, false));
    sw.start("array3");
    for (int i = 0; i < 1000; i++) {
        bw.setPropertyValue("array", input);
    }
    sw.stop();
    assertTrue("Took too long", sw.getLastTaskTimeMillis() < 100);

    bw.registerCustomEditor(int.class, "array[0].somePath", new CustomNumberEditor(Integer.class, false));
    sw.start("array3");
    for (int i = 0; i < 1000; i++) {
        bw.setPropertyValue("array", input);
    }
    sw.stop();
    assertTrue("Took too long", sw.getLastTaskTimeMillis() < 100);

    bw.registerCustomEditor(int.class, new CustomNumberEditor(Integer.class, false));
    sw.start("array4");
    for (int i = 0; i < 100; i++) {
        bw.setPropertyValue("array", input);
    }
    sw.stop();
    assertEquals(1024, tb.getArray().length);
    assertEquals(0, tb.getArray()[0]);
    assertTrue("Took too long", sw.getLastTaskTimeMillis() > time1);
}

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

@Test
public void testIntArrayPropertyWithCustomEditor() {
    PropsTester pt = new PropsTester();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(pt);
    bw.registerCustomEditor(int.class, new PropertyEditorSupport() {
        @Override//from w ww. j a  va2 s.c  o  m
        public void setAsText(String text) {
            setValue(new Integer(Integer.parseInt(text) + 1));
        }
    });

    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[] { "3", "4", "1", "2" });
    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 Integer(1));
    assertTrue("intArray length = 4", pt.intArray.length == 1);
    assertTrue("correct values", pt.intArray[0] == 1);

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

    bw.setPropertyValue("intArray", "0");
    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 testStringArrayPropertyWithCustomStringEditor() throws Exception {
    PropsTester pt = new PropsTester();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(pt);
    bw.registerCustomEditor(String.class, "stringArray", new PropertyEditorSupport() {
        @Override// ww  w  . ja va2 s .c o  m
        public void setAsText(String text) {
            setValue(text.substring(1));
        }
    });

    bw.setPropertyValue("stringArray", new String[] { "4foo", "7fi", "6fi", "5fum" });
    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("4foo");
    list.add("7fi");
    list.add("6fi");
    list.add("5fum");
    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("4foo");
    set.add("7fi");
    set.add("6fum");
    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", "8one");
    assertTrue("stringArray length = 1", pt.stringArray.length == 1);
    assertTrue("correct values", pt.stringArray[0].equals("one"));
}

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

@Test
public void testLargeMatchingPrimitiveArrayWithSpecificEditor() {
    PrimitiveArrayBean tb = new PrimitiveArrayBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(tb);
    bw.registerCustomEditor(int.class, "array", new PropertyEditorSupport() {
        @Override/*from   w w  w.  j a va 2 s. c o m*/
        public void setValue(Object value) {
            if (value instanceof Integer) {
                super.setValue(new Integer(((Integer) value).intValue() + 1));
            }
        }
    });
    int[] input = new int[1024];
    bw.setPropertyValue("array", input);
    assertEquals(1024, tb.getArray().length);
    assertEquals(1, tb.getArray()[0]);
    assertEquals(1, tb.getArray()[1]);
}

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

@Test
public void testLargeMatchingPrimitiveArrayWithIndexSpecificEditor() {
    PrimitiveArrayBean tb = new PrimitiveArrayBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(tb);
    bw.registerCustomEditor(int.class, "array[1]", new PropertyEditorSupport() {
        @Override/*  w ww  .  ja v  a 2s  .c o m*/
        public void setValue(Object value) {
            if (value instanceof Integer) {
                super.setValue(new Integer(((Integer) value).intValue() + 1));
            }
        }
    });
    int[] input = new int[1024];
    bw.setPropertyValue("array", input);
    assertEquals(1024, tb.getArray().length);
    assertEquals(0, tb.getArray()[0]);
    assertEquals(1, tb.getArray()[1]);
}

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

@Test
public void testSetNumberProperties() {
    NumberPropertyBean bean = new NumberPropertyBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(bean);

    String byteValue = " " + Byte.MAX_VALUE + " ";
    String shortValue = " " + Short.MAX_VALUE + " ";
    String intValue = " " + Integer.MAX_VALUE + " ";
    String longValue = " " + Long.MAX_VALUE + " ";
    String floatValue = " " + Float.MAX_VALUE + " ";
    String doubleValue = " " + Double.MAX_VALUE + " ";

    bw.setPropertyValue("myPrimitiveByte", byteValue);
    bw.setPropertyValue("myByte", byteValue);

    bw.setPropertyValue("myPrimitiveShort", shortValue);
    bw.setPropertyValue("myShort", shortValue);

    bw.setPropertyValue("myPrimitiveInt", intValue);
    bw.setPropertyValue("myInteger", intValue);

    bw.setPropertyValue("myPrimitiveLong", longValue);
    bw.setPropertyValue("myLong", longValue);

    bw.setPropertyValue("myPrimitiveFloat", floatValue);
    bw.setPropertyValue("myFloat", floatValue);

    bw.setPropertyValue("myPrimitiveDouble", doubleValue);
    bw.setPropertyValue("myDouble", doubleValue);

    assertEquals(Byte.MAX_VALUE, bean.getMyPrimitiveByte());
    assertEquals(Byte.MAX_VALUE, bean.getMyByte().byteValue());

    assertEquals(Short.MAX_VALUE, bean.getMyPrimitiveShort());
    assertEquals(Short.MAX_VALUE, bean.getMyShort().shortValue());

    assertEquals(Integer.MAX_VALUE, bean.getMyPrimitiveInt());
    assertEquals(Integer.MAX_VALUE, bean.getMyInteger().intValue());

    assertEquals(Long.MAX_VALUE, bean.getMyPrimitiveLong());
    assertEquals(Long.MAX_VALUE, bean.getMyLong().longValue());

    assertEquals(Float.MAX_VALUE, bean.getMyPrimitiveFloat(), 0.001);
    assertEquals(Float.MAX_VALUE, bean.getMyFloat().floatValue(), 0.001);

    assertEquals(Double.MAX_VALUE, bean.getMyPrimitiveDouble(), 0.001);
    assertEquals(Double.MAX_VALUE, bean.getMyDouble().doubleValue(), 0.001);

}

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

@Test
public void testStringPropertyWithCustomEditor() throws Exception {
    TestBean tb = new TestBean();
    BeanWrapper bw = new JuffrouSpringBeanWrapper(tb);
    bw.registerCustomEditor(String.class, "name", new PropertyEditorSupport() {
        @Override/* ww w.  jav a 2  s .c om*/
        public void setValue(Object value) {
            if (value instanceof String[]) {
                setValue(StringUtils.arrayToDelimitedString(((String[]) value), "-"));
            } else {
                super.setValue(value != null ? value : "");
            }
        }
    });
    bw.setPropertyValue("name", new String[] {});
    assertEquals("", tb.getName());
    bw.setPropertyValue("name", new String[] { "a1", "b2" });
    assertEquals("a1-b2", tb.getName());
    bw.setPropertyValue("name", null);
    assertEquals("", tb.getName());
}

From source file:com.jaspersoft.jasperserver.api.engine.scheduling.quartz.JSMethodInvokingJobDetailFactoryBean.java

public void afterPropertiesSet() throws ClassNotFoundException, NoSuchMethodException {
    prepare();//from w w  w. j a va  2  s  . c  o  m
    String name = this.name == null ? beanName : this.name;
    Class jobClass = concurrent
            ? com.jaspersoft.jasperserver.api.engine.scheduling.quartz.JSMethodInvokingJobDetailFactoryBean.MethodInvokingJob.class
            : com.jaspersoft.jasperserver.api.engine.scheduling.quartz.JSMethodInvokingJobDetailFactoryBean.StatefulMethodInvokingJob.class;
    if (jobDetailImplClass != null) {
        jobDetail = (JobDetail) BeanUtils.instantiate(jobDetailImplClass);
        BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(jobDetail);
        bw.setPropertyValue("name", name);
        bw.setPropertyValue("group", group);
        bw.setPropertyValue("jobClass", jobClass);
        // 2012-01-25   thorick:  no more durability in Quartz 2.1.2 ?
        bw.setPropertyValue("durability", Boolean.valueOf(true));
        ((JobDataMap) bw.getPropertyValue("jobDataMap")).put("methodInvoker", this);
    } else {
        jobDetail = new JobDetailImpl(name, group, jobClass);
        // 2012-01-25  thorick:  there is no more volatility in Quartz 2.1.2
        //jobDetail.setVolatility(true);

        if (!(jobDetail instanceof JobDetailImpl))
            throw new RuntimeException("Expected JobDetail to be an instance of '" + JobDetailImpl.class
                    + "' but instead we got '" + jobDetail.getClass().getName() + "'");
        ((JobDetailImpl) jobDetail).setDurability(true);
        jobDetail.getJobDataMap().put("methodInvoker", this);
    }
    if (jobListenerNames != null) {
        String as[];
        int j = (as = jobListenerNames).length;
        for (int i = 0; i < j; i++) {
            String jobListenerName = as[i];
            if (jobDetailImplClass != null)
                throw new IllegalStateException(
                        "Non-global JobListeners not supported on Quartz 2 - manually register a Matcher against the Quartz ListenerManager instead");

            JobKey jk = jobDetail.getKey();
            Matcher<JobKey> matcher = KeyMatcher.keyEquals(jk);
            try {
                getScheduler().getListenerManager().addJobListenerMatcher(jobListenerName, matcher);
            } catch (org.quartz.SchedulerException e) {
                throw new RuntimeException("Error adding Quartz Trigger Listener: " + e.getMessage());
            }

            //jobDetail.addJobListener(jobListenerName);
        }

    }
    postProcessJobDetail(jobDetail);
}

From source file:com.myspring.integration.schedule.quartz.MethodInvokingJobDetailFactoryBean.java

public void afterPropertiesSet() throws ClassNotFoundException, NoSuchMethodException {
    prepare();/* www .  ja  v a 2  s.  c  om*/

    // Use specific name if given, else fall back to bean name.
    String name = (this.name != null ? this.name : this.beanName);

    // Consider the concurrent flag to choose between stateful and stateless job.
    Class<?> jobClass = (this.concurrent ? MethodInvokingJob.class : StatefulMethodInvokingJob.class);

    // Build JobDetail instance.
    if (jobDetailImplClass != null) {
        // Using Quartz 2.0 JobDetailImpl class...
        Object jobDetail = BeanUtils.instantiate(jobDetailImplClass);
        BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(jobDetail);
        bw.setPropertyValue("name", name);
        bw.setPropertyValue("group", this.group);
        bw.setPropertyValue("jobClass", jobClass);
        bw.setPropertyValue("durability", true);
        ((JobDataMap) bw.getPropertyValue("jobDataMap")).put("methodInvoker", this);
        this.jobDetail = (JobDetail) jobDetail;
    } else {
        throw new IllegalStateException("This instance no longer supports Quartz 1.x as a runtime");
    }

    // Register job listener names.
    if (this.jobListenerNames != null) {
        if (jobDetailImplClass != null) {
            throw new IllegalStateException("Non-global JobListeners not supported on Quartz 2 - "
                    + "manually register a Matcher against the Quartz ListenerManager instead");
        }
    }

    postProcessJobDetail(this.jobDetail);
}