|
|
|
@ -45,8 +45,6 @@ public class PropertyValue extends BeanMetadataAttributeAccessor implements Seri |
|
|
|
|
|
|
|
|
|
|
|
private final Object value; |
|
|
|
private final Object value; |
|
|
|
|
|
|
|
|
|
|
|
private Object source; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private boolean optional = false; |
|
|
|
private boolean optional = false; |
|
|
|
|
|
|
|
|
|
|
|
private boolean converted = false; |
|
|
|
private boolean converted = false; |
|
|
|
@ -78,12 +76,12 @@ public class PropertyValue extends BeanMetadataAttributeAccessor implements Seri |
|
|
|
Assert.notNull(original, "Original must not be null"); |
|
|
|
Assert.notNull(original, "Original must not be null"); |
|
|
|
this.name = original.getName(); |
|
|
|
this.name = original.getName(); |
|
|
|
this.value = original.getValue(); |
|
|
|
this.value = original.getValue(); |
|
|
|
this.source = original.getSource(); |
|
|
|
|
|
|
|
this.optional = original.isOptional(); |
|
|
|
this.optional = original.isOptional(); |
|
|
|
this.converted = original.converted; |
|
|
|
this.converted = original.converted; |
|
|
|
this.convertedValue = original.convertedValue; |
|
|
|
this.convertedValue = original.convertedValue; |
|
|
|
this.conversionNecessary = original.conversionNecessary; |
|
|
|
this.conversionNecessary = original.conversionNecessary; |
|
|
|
this.resolvedTokens = original.resolvedTokens; |
|
|
|
this.resolvedTokens = original.resolvedTokens; |
|
|
|
|
|
|
|
setSource(original.getSource()); |
|
|
|
copyAttributesFrom(original); |
|
|
|
copyAttributesFrom(original); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -97,10 +95,10 @@ public class PropertyValue extends BeanMetadataAttributeAccessor implements Seri |
|
|
|
Assert.notNull(original, "Original must not be null"); |
|
|
|
Assert.notNull(original, "Original must not be null"); |
|
|
|
this.name = original.getName(); |
|
|
|
this.name = original.getName(); |
|
|
|
this.value = newValue; |
|
|
|
this.value = newValue; |
|
|
|
this.source = original; |
|
|
|
|
|
|
|
this.optional = original.isOptional(); |
|
|
|
this.optional = original.isOptional(); |
|
|
|
this.conversionNecessary = original.conversionNecessary; |
|
|
|
this.conversionNecessary = original.conversionNecessary; |
|
|
|
this.resolvedTokens = original.resolvedTokens; |
|
|
|
this.resolvedTokens = original.resolvedTokens; |
|
|
|
|
|
|
|
setSource(original); |
|
|
|
copyAttributesFrom(original); |
|
|
|
copyAttributesFrom(original); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -129,16 +127,28 @@ public class PropertyValue extends BeanMetadataAttributeAccessor implements Seri |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public PropertyValue getOriginalPropertyValue() { |
|
|
|
public PropertyValue getOriginalPropertyValue() { |
|
|
|
PropertyValue original = this; |
|
|
|
PropertyValue original = this; |
|
|
|
while (original.source instanceof PropertyValue && original.source != original) { |
|
|
|
Object source = getSource(); |
|
|
|
original = (PropertyValue) original.source; |
|
|
|
while (source instanceof PropertyValue && source != original) { |
|
|
|
|
|
|
|
original = (PropertyValue) source; |
|
|
|
|
|
|
|
source = original.getSource(); |
|
|
|
} |
|
|
|
} |
|
|
|
return original; |
|
|
|
return original; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Set whether this is an optional value, that is, to be ignored |
|
|
|
|
|
|
|
* when no corresponding property exists on the target class. |
|
|
|
|
|
|
|
* @since 3.0 |
|
|
|
|
|
|
|
*/ |
|
|
|
public void setOptional(boolean optional) { |
|
|
|
public void setOptional(boolean optional) { |
|
|
|
this.optional = optional; |
|
|
|
this.optional = optional; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Reeurn whether this is an optional value, that is, to be ignored |
|
|
|
|
|
|
|
* when no corresponding property exists on the target class. |
|
|
|
|
|
|
|
* @since 3.0 |
|
|
|
|
|
|
|
*/ |
|
|
|
public boolean isOptional() { |
|
|
|
public boolean isOptional() { |
|
|
|
return this.optional; |
|
|
|
return this.optional; |
|
|
|
} |
|
|
|
} |
|
|
|
@ -180,7 +190,7 @@ public class PropertyValue extends BeanMetadataAttributeAccessor implements Seri |
|
|
|
PropertyValue otherPv = (PropertyValue) other; |
|
|
|
PropertyValue otherPv = (PropertyValue) other; |
|
|
|
return (this.name.equals(otherPv.name) && |
|
|
|
return (this.name.equals(otherPv.name) && |
|
|
|
ObjectUtils.nullSafeEquals(this.value, otherPv.value) && |
|
|
|
ObjectUtils.nullSafeEquals(this.value, otherPv.value) && |
|
|
|
ObjectUtils.nullSafeEquals(this.source, otherPv.source)); |
|
|
|
ObjectUtils.nullSafeEquals(getSource(), otherPv.getSource())); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
|