List of usage examples for org.springframework.beans PropertyValues getPropertyValues
PropertyValue[] getPropertyValues();
From source file:com.trenako.web.infrastructure.ServletRequestPathVariablesPropertyValuesTests.java
@Test public void shouldFillPropertyValues() { MockHttpServletRequest request = new MockHttpServletRequest(); request.setRequestURI("/trenako-web/rs/brand/ACME"); PropertyValues pvs = new ServletRequestPathVariablesPropertyValues(request); assertNotNull(pvs);/*from www .ja va 2s . c o m*/ assertEquals(1, pvs.getPropertyValues().length); assertEquals("ACME", pvs.getPropertyValue("brand").getValue()); }
From source file:de.luzzifa.spring.test.CustomBeanPostProcessor.java
private List<PropertyValue> getOriginalPropertyValuesList(PropertyValues pvs) { if (pvs instanceof MutablePropertyValues) { return ((MutablePropertyValues) pvs).getPropertyValueList(); }/*from w w w .j av a 2 s. c o m*/ return Arrays.asList(pvs.getPropertyValues()); }
From source file:org.codehaus.groovy.grails.web.binding.GrailsDataBinder.java
private PropertyValues filterPropertyValues(PropertyValues propertyValues, String prefix) { if (prefix == null || prefix.length() == 0) return propertyValues; PropertyValue[] valueArray = propertyValues.getPropertyValues(); MutablePropertyValues newValues = new MutablePropertyValues(); for (PropertyValue propertyValue : valueArray) { String name = propertyValue.getName(); final String prefixWithDot = prefix + PREFIX_SEPERATOR; if (name.startsWith(prefixWithDot)) { name = name.substring(prefixWithDot.length(), name.length()); newValues.addPropertyValue(name, propertyValue.getValue()); }//from ww w . j a v a 2 s . co m } return newValues; }
From source file:org.jdal.aop.SerializableReference.java
private Object readResolve() throws ObjectStreamException { if (beanFactory == null) { log.error("Can't not deserialize reference without bean factory"); return null; }//w w w . ja va 2s . c o m if (useMemoryCache) { Object ret = serializedObjects.remove(this.id); if (ret != null) { if (log.isDebugEnabled()) log.debug("Removed a serialized reference. serialized objects size [" + serializedObjects.size() + "]"); return getSerializableProxy(ret); } } if (targetBeanName != null) { if (log.isDebugEnabled()) log.debug("Resolving serializable object to bean name [" + targetBeanName + "]"); return getSerializableProxy(); } if (log.isDebugEnabled()) log.debug("Resolving serializable object for [" + descriptor.getDependencyName() + "]"); Field field = descriptor.getField(); // Check bean definition BeanDefinition rbd = beanFactory.getBeanDefinition(beanName); PropertyValues pvs = rbd.getPropertyValues(); if (pvs.contains(field.getName())) { Object value = pvs.getPropertyValue(field.getName()); if (value instanceof BeanReference) { // cache the bean name this.targetBeanName = ((BeanReference) value).getBeanName(); return getSerializableProxy(); } } // Check Autowired try { Object bean = beanFactory.resolveDependency(descriptor, beanName); if (bean != null) return getSerializableProxy(bean); } catch (BeansException be) { // dependency not found. } // Check Resource annotation if (field.isAnnotationPresent(Resource.class)) { Resource r = field.getAnnotation(Resource.class); String name = StringUtils.isEmpty(r.name()) ? descriptor.getField().getName() : r.name(); if (beanFactory.containsBean(name)) { this.targetBeanName = name; return getSerializableProxy(); } } // Try with depend beans. String[] dependentBeans = beanFactory.getDependenciesForBean(beanName); List<String> candidates = new ArrayList<String>(); for (String name : dependentBeans) { if (beanFactory.isTypeMatch(name, descriptor.getDependencyType())) ; candidates.add(name); } if (candidates.size() == 1) return getSerializableProxy(beanFactory.getBean(candidates.get(0))); if (candidates.size() > 1) { for (PropertyValue pv : pvs.getPropertyValues()) { if (pv.getValue() instanceof BeanReference) { BeanReference br = (BeanReference) pv.getValue(); if (candidates.contains(br.getBeanName())) return getSerializableProxy(beanFactory.getBean(br.getBeanName())); } } } log.error("Cant not resolve serializable reference wiht candidates " + candidates.toArray()); return null; }
From source file:gov.nih.nci.cabig.caaers.domain.expeditedfields.ExpeditedReportTree.java
/** * Verify nodes satisfied.//from w w w. j a va 2 s . co m * * @param propertyNodes the property nodes * @param report the report * @return the list */ public List<UnsatisfiedProperty> verifyNodesSatisfied(Collection<TreeNode> propertyNodes, ExpeditedAdverseEventReport report) { if (log.isDebugEnabled()) { log.debug("Examining report for satisfaction of " + propertyNodes); } List<UnsatisfiedProperty> unsatisfied = new LinkedList<UnsatisfiedProperty>(); for (TreeNode node : propertyNodes) { PropertyValues values = node.getPropertyValuesFrom(report); for (PropertyValue pv : values.getPropertyValues()) { Object value = pv.getValue(); if (value == null || (value instanceof CodedEnum && String.valueOf(value).contains("Please select"))) unsatisfied.add(new UnsatisfiedProperty(node, pv.getName())); } } return unsatisfied; }
From source file:org.nextframework.controller.ExtendedBeanWrapper.java
public void setPropertyValues(PropertyValues propertyValues, boolean ignoreUnknown) throws BeansException { List propertyAccessExceptions = new ArrayList(); PropertyValue[] pvs = propertyValues.getPropertyValues(); for (int i = 0; i < pvs.length; i++) { try {//w w w.j av a 2 s . com // This method may throw any BeansException, which won't be caught // here, if there is a critical failure such as no matching field. // We can attempt to deal only with less serious exceptions. setPropertyValue(pvs[i]); } catch (NotWritablePropertyException ex) { if (!ignoreUnknown) { throw ex; } // Otherwise, just ignore it and continue... } catch (PropertyAccessException ex) { propertyAccessExceptions.add(ex); } } // If we encountered individual exceptions, throw the composite exception. if (!propertyAccessExceptions.isEmpty()) { Object[] paeArray = propertyAccessExceptions .toArray(new PropertyAccessException[propertyAccessExceptions.size()]); throw new PropertyBatchUpdateException((PropertyAccessException[]) paeArray); } }
From source file:org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.java
/** * Apply the given property values, resolving any runtime references * to other beans in this bean factory. Must use deep copy, so we * don't permanently modify this property. * @param beanName the bean name passed for better exception information * @param mbd the merged bean definition * @param bw the BeanWrapper wrapping the target object * @param pvs the new property values/*from ww w. j a va2 s. c om*/ */ protected void applyPropertyValues(String beanName, BeanDefinition mbd, BeanWrapper bw, PropertyValues pvs) { if (pvs.isEmpty()) { return; } if (System.getSecurityManager() != null && bw instanceof BeanWrapperImpl) { ((BeanWrapperImpl) bw).setSecurityContext(getAccessControlContext()); } MutablePropertyValues mpvs = null; List<PropertyValue> original; if (pvs instanceof MutablePropertyValues) { mpvs = (MutablePropertyValues) pvs; if (mpvs.isConverted()) { // Shortcut: use the pre-converted values as-is. try { bw.setPropertyValues(mpvs); return; } catch (BeansException ex) { throw new BeanCreationException(mbd.getResourceDescription(), beanName, "Error setting property values", ex); } } original = mpvs.getPropertyValueList(); } else { original = Arrays.asList(pvs.getPropertyValues()); } TypeConverter converter = getCustomTypeConverter(); if (converter == null) { converter = bw; } BeanDefinitionValueResolver valueResolver = new BeanDefinitionValueResolver(this, beanName, mbd, converter); // Create a deep copy, resolving any references for values. List<PropertyValue> deepCopy = new ArrayList<>(original.size()); boolean resolveNecessary = false; for (PropertyValue pv : original) { if (pv.isConverted()) { deepCopy.add(pv); } else { String propertyName = pv.getName(); Object originalValue = pv.getValue(); Object resolvedValue = valueResolver.resolveValueIfNecessary(pv, originalValue); Object convertedValue = resolvedValue; boolean convertible = bw.isWritableProperty(propertyName) && !PropertyAccessorUtils.isNestedOrIndexedProperty(propertyName); if (convertible) { convertedValue = convertForProperty(resolvedValue, propertyName, bw, converter); } // Possibly store converted value in merged bean definition, // in order to avoid re-conversion for every created bean instance. if (resolvedValue == originalValue) { if (convertible) { pv.setConvertedValue(convertedValue); } deepCopy.add(pv); } else if (convertible && originalValue instanceof TypedStringValue && !((TypedStringValue) originalValue).isDynamic() && !(convertedValue instanceof Collection || ObjectUtils.isArray(convertedValue))) { pv.setConvertedValue(convertedValue); deepCopy.add(pv); } else { resolveNecessary = true; deepCopy.add(new PropertyValue(pv, convertedValue)); } } } if (mpvs != null && !resolveNecessary) { mpvs.setConverted(); } // Set our (possibly massaged) deep copy. try { bw.setPropertyValues(new MutablePropertyValues(deepCopy)); } catch (BeansException ex) { throw new BeanCreationException(mbd.getResourceDescription(), beanName, "Error setting property values", ex); } }
From source file:org.springframework.springfaces.mvc.bind.ReverseDataBinderTest.java
@Test public void shouldReverseBind() throws Exception { Sample target = new Sample(); DataBinder dataBinder = new DataBinder(target); initBinder(dataBinder);//from w w w .j ava2 s . co m MutablePropertyValues pvs = new MutablePropertyValues(); pvs.addPropertyValue("customTypeValue", "custom"); pvs.addPropertyValue("dateValue", S01_12_2009); pvs.addPropertyValue("integerValue", "123"); pvs.addPropertyValue("stringValue", "string"); dataBinder.bind(pvs); assertThat(target.getIntegerValue(), is(equalTo(new Integer(123)))); assertThat(target.getStringValue(), is(equalTo("string"))); assertThat(target.getDateValue(), is(equalTo(D01_12_2009))); assertThat(target.getCustomTypeValue(), is(equalTo(new CustomType("custom")))); ReverseDataBinder reverseDataBinder = new ReverseDataBinder(dataBinder); PropertyValues result = reverseDataBinder.reverseBind(); for (int i = 0; i < result.getPropertyValues().length; i++) { PropertyValue pv = result.getPropertyValues()[i]; this.logger.info(pv.getName() + "=" + pv.getValue()); } assertThat(result, is(equalTo((Object) pvs))); }
From source file:org.springframework.springfaces.mvc.bind.ReverseDataBinderTest.java
private void doTestReverseBindWithDefaultValues(boolean dontSkip, boolean noConstructor) throws Exception { Sample target = noConstructor ? new SampleWithoutDefaultConstructor("") : new Sample(); target.setIntegerValue(new Integer(123)); DataBinder dataBinder = new DataBinder(target); ReverseDataBinder reverseDataBinder = new ReverseDataBinder(dataBinder); if (dontSkip) { // Only set when skipped to test default is true reverseDataBinder.setSkipDefaultValues(false); }/*from w w w. ja va 2 s . c om*/ PropertyValues result = reverseDataBinder.reverseBind(); boolean fullBindExpected = dontSkip || noConstructor; assertThat(result.getPropertyValues().length, is(equalTo(fullBindExpected ? 2 : 1))); assertThat(result.getPropertyValue("integerValue").getValue(), is(equalTo((Object) "123"))); if (fullBindExpected) { assertThat(result.getPropertyValue("stringValue").getValue(), is(equalTo((Object) "default"))); } }