Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
0fb63134
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,发现更多精彩内容 >>
提交
0fb63134
编写于
1月 07, 2011
作者:
K
Keith Donald
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
switched to better encapsulated convert(Object, TypeDescriptor) where possible
上级
bb4aa9cc
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
38 addition
and
30 deletion
+38
-30
org.springframework.context/src/test/java/org/springframework/format/support/FormattingConversionServiceTests.java
...work/format/support/FormattingConversionServiceTests.java
+2
-2
org.springframework.core/src/main/java/org/springframework/core/convert/ConversionService.java
...a/org/springframework/core/convert/ConversionService.java
+7
-1
org.springframework.core/src/main/java/org/springframework/core/convert/support/ConvertingPropertyEditorAdapter.java
...core/convert/support/ConvertingPropertyEditorAdapter.java
+1
-1
org.springframework.core/src/main/java/org/springframework/core/convert/support/GenericConversionService.java
...mework/core/convert/support/GenericConversionService.java
+8
-0
org.springframework.core/src/test/java/org/springframework/core/convert/support/DefaultConversionTests.java
...ramework/core/convert/support/DefaultConversionTests.java
+7
-13
org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericConversionServiceTests.java
...k/core/convert/support/GenericConversionServiceTests.java
+8
-10
org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionTestsUsingCoreConversionService.java
...ssion/spel/ExpressionTestsUsingCoreConversionService.java
+5
-3
未找到文件。
org.springframework.context/src/test/java/org/springframework/format/support/FormattingConversionServiceTests.java
浏览文件 @
0fb63134
...
...
@@ -190,7 +190,7 @@ public class FormattingConversionServiceTests {
@Test
public
void
testParseEmptyString
()
throws
ParseException
{
formattingService
.
addFormatterForFieldType
(
Number
.
class
,
new
NumberFormatter
());
assertNull
(
formattingService
.
convert
(
""
,
TypeDescriptor
.
valueOf
(
String
.
class
),
TypeDescriptor
.
valueOf
(
Integer
.
class
)));
assertNull
(
formattingService
.
convert
(
""
,
TypeDescriptor
.
valueOf
(
Integer
.
class
)));
}
@Test
...
...
@@ -205,7 +205,7 @@ public class FormattingConversionServiceTests {
@Test
public
void
testParseEmptyStringDefault
()
throws
ParseException
{
assertNull
(
formattingService
.
convert
(
""
,
TypeDescriptor
.
valueOf
(
String
.
class
),
TypeDescriptor
.
valueOf
(
Integer
.
class
)));
assertNull
(
formattingService
.
convert
(
""
,
TypeDescriptor
.
valueOf
(
Integer
.
class
)));
}
...
...
org.springframework.core/src/main/java/org/springframework/core/convert/ConversionService.java
浏览文件 @
0fb63134
...
...
@@ -64,4 +64,10 @@ public interface ConversionService {
*/
Object
convert
(
Object
source
,
TypeDescriptor
sourceType
,
TypeDescriptor
targetType
);
}
// 3.1 additions that encapsulate TypeDescriptor.forObject(source)
boolean
canConvert
(
Object
source
,
TypeDescriptor
targetType
);
Object
convert
(
Object
source
,
TypeDescriptor
targetType
);
}
\ No newline at end of file
org.springframework.core/src/main/java/org/springframework/core/convert/support/ConvertingPropertyEditorAdapter.java
浏览文件 @
0fb63134
...
...
@@ -56,7 +56,7 @@ public class ConvertingPropertyEditorAdapter extends PropertyEditorSupport {
@Override
public
void
setAsText
(
String
text
)
throws
IllegalArgumentException
{
setValue
(
this
.
conversionService
.
convert
(
text
,
TypeDescriptor
.
valueOf
(
String
.
class
),
this
.
targetDescriptor
));
setValue
(
this
.
conversionService
.
convert
(
text
,
this
.
targetDescriptor
));
}
@Override
...
...
org.springframework.core/src/main/java/org/springframework/core/convert/support/GenericConversionService.java
浏览文件 @
0fb63134
...
...
@@ -188,6 +188,14 @@ public class GenericConversionService implements ConversionService, ConverterReg
return
result
;
}
public
boolean
canConvert
(
Object
source
,
TypeDescriptor
targetType
)
{
return
canConvert
(
TypeDescriptor
.
forObject
(
source
),
targetType
);
}
public
Object
convert
(
Object
source
,
TypeDescriptor
targetType
)
{
return
convert
(
source
,
TypeDescriptor
.
forObject
(
source
),
targetType
);
}
public
String
toString
()
{
List
<
String
>
converterStrings
=
new
ArrayList
<
String
>();
for
(
Map
<
Class
<?>,
MatchableConverters
>
targetConverters
:
this
.
converters
.
values
())
{
...
...
org.springframework.core/src/test/java/org/springframework/core/convert/support/DefaultConversionTests.java
浏览文件 @
0fb63134
...
...
@@ -287,8 +287,7 @@ public class DefaultConversionTests {
@Test
public
void
convertArrayToCollectionGenericTypeConversion
()
throws
Exception
{
List
<
Integer
>
result
=
(
List
<
Integer
>)
conversionService
.
convert
(
new
String
[]
{
"1"
,
"2"
,
"3"
},
TypeDescriptor
.
valueOf
(
String
[].
class
),
new
TypeDescriptor
(
getClass
().
getDeclaredField
(
"genericList"
)));
List
<
Integer
>
result
=
(
List
<
Integer
>)
conversionService
.
convert
(
new
String
[]
{
"1"
,
"2"
,
"3"
},
new
TypeDescriptor
(
getClass
().
getDeclaredField
(
"genericList"
)));
assertEquals
(
new
Integer
(
"1"
),
result
.
get
(
0
));
assertEquals
(
new
Integer
(
"2"
),
result
.
get
(
1
));
assertEquals
(
new
Integer
(
"3"
),
result
.
get
(
2
));
...
...
@@ -298,7 +297,7 @@ public class DefaultConversionTests {
public
void
testSpr7766
()
throws
Exception
{
ConverterRegistry
registry
=
((
ConverterRegistry
)
conversionService
);
registry
.
addConverter
(
new
ColorConverter
());
List
<
Color
>
colors
=
(
List
<
Color
>)
conversionService
.
convert
(
new
String
[]
{
"ffffff"
,
"#000000"
},
TypeDescriptor
.
valueOf
(
String
[].
class
),
new
TypeDescriptor
(
new
MethodParameter
(
getClass
().
getMethod
(
"handlerMethod"
,
List
.
class
),
0
)));
List
<
Color
>
colors
=
(
List
<
Color
>)
conversionService
.
convert
(
new
String
[]
{
"ffffff"
,
"#000000"
},
new
TypeDescriptor
(
new
MethodParameter
(
getClass
().
getMethod
(
"handlerMethod"
,
List
.
class
),
0
)));
assertEquals
(
2
,
colors
.
size
());
assertEquals
(
Color
.
WHITE
,
colors
.
get
(
0
));
assertEquals
(
Color
.
BLACK
,
colors
.
get
(
1
));
...
...
@@ -531,8 +530,7 @@ public class DefaultConversionTests {
foo
.
add
(
"1"
);
foo
.
add
(
"2"
);
foo
.
add
(
"3"
);
List
<
Integer
>
bar
=
(
List
<
Integer
>)
conversionService
.
convert
(
foo
,
TypeDescriptor
.
forObject
(
foo
),
new
TypeDescriptor
(
getClass
().
getField
(
"genericList"
)));
List
<
Integer
>
bar
=
(
List
<
Integer
>)
conversionService
.
convert
(
foo
,
new
TypeDescriptor
(
getClass
().
getField
(
"genericList"
)));
assertEquals
(
new
Integer
(
1
),
bar
.
get
(
0
));
assertEquals
(
new
Integer
(
2
),
bar
.
get
(
1
));
assertEquals
(
new
Integer
(
3
),
bar
.
get
(
2
));
...
...
@@ -540,8 +538,7 @@ public class DefaultConversionTests {
@Test
public
void
convertCollectionToCollectionNull
()
throws
Exception
{
List
<
Integer
>
bar
=
(
List
<
Integer
>)
conversionService
.
convert
(
null
,
TypeDescriptor
.
valueOf
(
LinkedHashSet
.
class
),
new
TypeDescriptor
(
getClass
().
getField
(
"genericList"
)));
List
<
Integer
>
bar
=
(
List
<
Integer
>)
conversionService
.
convert
(
null
,
new
TypeDescriptor
(
getClass
().
getField
(
"genericList"
)));
assertNull
(
bar
);
}
...
...
@@ -551,8 +548,7 @@ public class DefaultConversionTests {
foo
.
add
(
"1"
);
foo
.
add
(
"2"
);
foo
.
add
(
"3"
);
List
bar
=
(
List
)
conversionService
.
convert
(
foo
,
TypeDescriptor
.
valueOf
(
LinkedHashSet
.
class
),
TypeDescriptor
.
valueOf
(
List
.
class
));
List
bar
=
(
List
)
conversionService
.
convert
(
foo
,
TypeDescriptor
.
valueOf
(
List
.
class
));
assertEquals
(
"1"
,
bar
.
get
(
0
));
assertEquals
(
"2"
,
bar
.
get
(
1
));
assertEquals
(
"3"
,
bar
.
get
(
2
));
...
...
@@ -565,8 +561,7 @@ public class DefaultConversionTests {
map
.
put
(
"2"
,
"2"
);
map
.
put
(
"3"
,
"3"
);
Collection
values
=
map
.
values
();
List
<
Integer
>
bar
=
(
List
<
Integer
>)
conversionService
.
convert
(
values
,
TypeDescriptor
.
forObject
(
values
),
new
TypeDescriptor
(
getClass
().
getField
(
"genericList"
)));
List
<
Integer
>
bar
=
(
List
<
Integer
>)
conversionService
.
convert
(
values
,
new
TypeDescriptor
(
getClass
().
getField
(
"genericList"
)));
assertEquals
(
3
,
bar
.
size
());
assertEquals
(
new
Integer
(
1
),
bar
.
get
(
0
));
assertEquals
(
new
Integer
(
2
),
bar
.
get
(
1
));
...
...
@@ -580,8 +575,7 @@ public class DefaultConversionTests {
Map
<
String
,
String
>
foo
=
new
HashMap
<
String
,
String
>();
foo
.
put
(
"1"
,
"BAR"
);
foo
.
put
(
"2"
,
"BAZ"
);
Map
<
String
,
FooEnum
>
map
=
(
Map
<
String
,
FooEnum
>)
conversionService
.
convert
(
foo
,
TypeDescriptor
.
forObject
(
foo
),
new
TypeDescriptor
(
getClass
().
getField
(
"genericMap"
)));
Map
<
String
,
FooEnum
>
map
=
(
Map
<
String
,
FooEnum
>)
conversionService
.
convert
(
foo
,
new
TypeDescriptor
(
getClass
().
getField
(
"genericMap"
)));
assertEquals
(
FooEnum
.
BAR
,
map
.
get
(
1
));
assertEquals
(
FooEnum
.
BAZ
,
map
.
get
(
2
));
}
...
...
org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericConversionServiceTests.java
浏览文件 @
0fb63134
...
...
@@ -109,12 +109,13 @@ public class GenericConversionServiceTests {
}
public
void
convertNullTargetClass
()
{
assertNull
(
conversionService
.
convert
(
"3"
,
null
));
assertNull
(
conversionService
.
convert
(
"3"
,
(
Class
)
null
));
assertNull
(
conversionService
.
convert
(
"3"
,
TypeDescriptor
.
NULL
));
}
@Test
public
void
convertNullTypeDescriptor
()
{
assertNull
(
conversionService
.
convert
(
"3"
,
TypeDescriptor
.
valueOf
(
String
.
class
),
TypeDescriptor
.
NULL
));
assertNull
(
conversionService
.
convert
(
"3"
,
TypeDescriptor
.
NULL
));
}
@Test
...
...
@@ -147,10 +148,8 @@ public class GenericConversionServiceTests {
assertTrue
(
conversionService
.
canConvert
(
String
.
class
,
boolean
.
class
));
Boolean
b
=
conversionService
.
convert
(
"true"
,
boolean
.
class
);
assertEquals
(
Boolean
.
TRUE
,
b
);
assertTrue
(
conversionService
.
canConvert
(
TypeDescriptor
.
valueOf
(
String
.
class
),
TypeDescriptor
.
valueOf
(
boolean
.
class
)));
b
=
(
Boolean
)
conversionService
.
convert
(
"true"
,
TypeDescriptor
.
valueOf
(
String
.
class
),
TypeDescriptor
.
valueOf
(
boolean
.
class
));
assertTrue
(
conversionService
.
canConvert
(
TypeDescriptor
.
valueOf
(
String
.
class
),
TypeDescriptor
.
valueOf
(
boolean
.
class
)));
b
=
(
Boolean
)
conversionService
.
convert
(
"true"
,
TypeDescriptor
.
valueOf
(
boolean
.
class
));
assertEquals
(
Boolean
.
TRUE
,
b
);
}
...
...
@@ -260,8 +259,7 @@ public class GenericConversionServiceTests {
GenericConversionService
conversionService
=
ConversionServiceFactory
.
createDefaultConversionService
();
Map
<
String
,
String
>
input
=
new
LinkedHashMap
<
String
,
String
>();
input
.
put
(
"key"
,
"value"
);
Object
converted
=
conversionService
.
convert
(
input
,
TypeDescriptor
.
forObject
(
input
),
new
TypeDescriptor
(
getClass
().
getField
(
"wildcardMap"
)));
Object
converted
=
conversionService
.
convert
(
input
,
new
TypeDescriptor
(
getClass
().
getField
(
"wildcardMap"
)));
assertEquals
(
input
,
converted
);
}
...
...
@@ -344,7 +342,7 @@ public class GenericConversionServiceTests {
source
.
add
(
"3"
);
TypeDescriptor
td
=
new
TypeDescriptor
(
getClass
().
getField
(
"list"
));
for
(
int
i
=
0
;
i
<
1000000
;
i
++)
{
conversionService
.
convert
(
source
,
TypeDescriptor
.
forObject
(
source
),
td
);
conversionService
.
convert
(
source
,
td
);
}
watch
.
stop
();
watch
.
start
(
"convert 4,000,000 manually"
);
...
...
@@ -371,7 +369,7 @@ public class GenericConversionServiceTests {
source
.
put
(
"3"
,
"3"
);
TypeDescriptor
td
=
new
TypeDescriptor
(
getClass
().
getField
(
"map"
));
for
(
int
i
=
0
;
i
<
1000000
;
i
++)
{
conversionService
.
convert
(
source
,
TypeDescriptor
.
forObject
(
source
),
td
);
conversionService
.
convert
(
source
,
td
);
}
watch
.
stop
();
watch
.
start
(
"convert 4,000,000 manually"
);
...
...
org.springframework.expression/src/test/java/org/springframework/expression/spel/ExpressionTestsUsingCoreConversionService.java
浏览文件 @
0fb63134
...
...
@@ -16,14 +16,16 @@
package
org.springframework.expression.spel
;
import
static
junit
.
framework
.
Assert
.
assertEquals
;
import
static
junit
.
framework
.
Assert
.
assertNotNull
;
import
static
junit
.
framework
.
Assert
.
assertTrue
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
import
static
junit
.
framework
.
Assert
.*;
import
org.junit.Before
;
import
org.junit.Test
;
import
org.springframework.core.MethodParameter
;
import
org.springframework.core.convert.ConversionService
;
import
org.springframework.core.convert.TypeDescriptor
;
...
...
@@ -141,7 +143,7 @@ public class ExpressionTestsUsingCoreConversionService extends ExpressionTestCas
private
final
ConversionService
service
=
ConversionServiceFactory
.
createDefaultConversionService
();
public
Object
convertValue
(
Object
value
,
TypeDescriptor
typeDescriptor
)
throws
EvaluationException
{
return
this
.
service
.
convert
(
value
,
TypeDescriptor
.
forObject
(
value
),
typeDescriptor
);
return
this
.
service
.
convert
(
value
,
typeDescriptor
);
}
public
boolean
canConvert
(
TypeDescriptor
sourceType
,
TypeDescriptor
targetType
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录