Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
53dc996b
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
53dc996b
编写于
9月 13, 2016
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
PropertyValue stores source object in common superclass field
Issue: SPR-8337 (cherry picked from commit
367949e9
)
上级
338a4a58
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
7 deletion
+17
-7
spring-beans/src/main/java/org/springframework/beans/PropertyValue.java
...rc/main/java/org/springframework/beans/PropertyValue.java
+17
-7
未找到文件。
spring-beans/src/main/java/org/springframework/beans/PropertyValue.java
浏览文件 @
53dc996b
...
...
@@ -45,8 +45,6 @@ public class PropertyValue extends BeanMetadataAttributeAccessor implements Seri
private
final
Object
value
;
private
Object
source
;
private
boolean
optional
=
false
;
private
boolean
converted
=
false
;
...
...
@@ -78,12 +76,12 @@ public class PropertyValue extends BeanMetadataAttributeAccessor implements Seri
Assert
.
notNull
(
original
,
"Original must not be null"
);
this
.
name
=
original
.
getName
();
this
.
value
=
original
.
getValue
();
this
.
source
=
original
.
getSource
();
this
.
optional
=
original
.
isOptional
();
this
.
converted
=
original
.
converted
;
this
.
convertedValue
=
original
.
convertedValue
;
this
.
conversionNecessary
=
original
.
conversionNecessary
;
this
.
resolvedTokens
=
original
.
resolvedTokens
;
setSource
(
original
.
getSource
());
copyAttributesFrom
(
original
);
}
...
...
@@ -97,10 +95,10 @@ public class PropertyValue extends BeanMetadataAttributeAccessor implements Seri
Assert
.
notNull
(
original
,
"Original must not be null"
);
this
.
name
=
original
.
getName
();
this
.
value
=
newValue
;
this
.
source
=
original
;
this
.
optional
=
original
.
isOptional
();
this
.
conversionNecessary
=
original
.
conversionNecessary
;
this
.
resolvedTokens
=
original
.
resolvedTokens
;
setSource
(
original
);
copyAttributesFrom
(
original
);
}
...
...
@@ -129,16 +127,28 @@ public class PropertyValue extends BeanMetadataAttributeAccessor implements Seri
*/
public
PropertyValue
getOriginalPropertyValue
()
{
PropertyValue
original
=
this
;
while
(
original
.
source
instanceof
PropertyValue
&&
original
.
source
!=
original
)
{
original
=
(
PropertyValue
)
original
.
source
;
Object
source
=
getSource
();
while
(
source
instanceof
PropertyValue
&&
source
!=
original
)
{
original
=
(
PropertyValue
)
source
;
source
=
original
.
getSource
();
}
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
)
{
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
()
{
return
this
.
optional
;
}
...
...
@@ -180,7 +190,7 @@ public class PropertyValue extends BeanMetadataAttributeAccessor implements Seri
PropertyValue
otherPv
=
(
PropertyValue
)
other
;
return
(
this
.
name
.
equals
(
otherPv
.
name
)
&&
ObjectUtils
.
nullSafeEquals
(
this
.
value
,
otherPv
.
value
)
&&
ObjectUtils
.
nullSafeEquals
(
this
.
source
,
otherPv
.
source
));
ObjectUtils
.
nullSafeEquals
(
getSource
(),
otherPv
.
getSource
()
));
}
@Override
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录