/** * @see org.databene.commons.Mutator#setValue(java.lang.Object, java.lang.Object) */ @Override public void setValue(Object target, Object value) throws UpdateFailedException { realMutator.setValue(target, value); }
@Override public void setValue(Object target, Object value) throws UpdateFailedException { realMutator.setValue(target, value); }
@Override public void setValue(Object target, Object value) throws UpdateFailedException { String s; if (value == null) s = null; else if (value instanceof String) s = (String) value; else s = value.toString(); realMutator.setValue(target, s); } }
@Override public void setValue(Object target, Object value) throws UpdateFailedException { try { Object convertedValue = converter.convert(value); realMutator.setValue(target, convertedValue); } catch (ConversionException e) { throw new UpdateFailedException(e); } }
switch (mode) { case OVERWRITE: realMutator.setValue(target, value); break; case ASSERT_EQUALS: if (isEmpty(oldValue)) { realMutator.setValue(target, value); } else if (!NullSafeComparator.equals(oldValue, value)) throw new UpdateFailedException("Mutator " + realMutator + " expected '" + oldValue + "', " case SET_IF_UNDEFINED: if (isEmpty(oldValue)) realMutator.setValue(target, value); else logger.debug("no update needed by " + realMutator); case SET_IF_GREATER: if (isEmpty(oldValue)) realMutator.setValue(target, value); else if (comparator.compare(oldValue, value) == -1) realMutator.setValue(target, value); else logger.debug("no update needed by " + realMutator);
@Override public Object convert(Object[] propertyArray) throws ConversionException { if (propertyArray == null) return null; Class<?> beanClass = beanClassProvider.classFor(propertyArray); Object bean = BeanUtil.newInstance(beanClass); int elementsToUse = Math.min(propertyArray.length, attributePaths.length); for (int i = 0; i < elementsToUse; i++) { String attributePath = attributePaths[i]; String[] pathParts = StringUtil.splitOnLastSeparator(attributePath, '.'); Object target = haveTargetObject(bean, pathParts[0]); mutators[i].setValue(bean, referenceResolver.resolveReferences(propertyArray[i], target, pathParts[1])); } return bean; }