Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
c693f216
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,发现更多精彩内容 >>
提交
c693f216
编写于
9月 21, 2009
作者:
K
Keith Donald
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Beefed up test suite
上级
e9416db4
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
70 addition
and
18 deletion
+70
-18
org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToArrayGenericConverter.java
...rk/core/convert/support/ArrayToArrayGenericConverter.java
+1
-1
org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToCollectionGenericConverter.java
...re/convert/support/ArrayToCollectionGenericConverter.java
+1
-1
org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToObjectGenericConverter.java
...k/core/convert/support/ArrayToObjectGenericConverter.java
+1
-1
org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToArrayGenericConverter.java
...re/convert/support/CollectionToArrayGenericConverter.java
+1
-1
org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToCollectionGenericConverter.java
...nvert/support/CollectionToCollectionGenericConverter.java
+6
-5
org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToObjectGenericConverter.java
...e/convert/support/CollectionToObjectGenericConverter.java
+7
-3
org.springframework.core/src/main/java/org/springframework/core/convert/support/ObjectToArrayGenericConverter.java
...k/core/convert/support/ObjectToArrayGenericConverter.java
+1
-1
org.springframework.core/src/main/java/org/springframework/core/convert/support/ObjectToCollectionGenericConverter.java
...e/convert/support/ObjectToCollectionGenericConverter.java
+1
-1
org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericConversionServiceTests.java
...k/core/convert/support/GenericConversionServiceTests.java
+51
-4
未找到文件。
org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToArrayGenericConverter.java
浏览文件 @
c693f216
...
@@ -37,7 +37,7 @@ final class ArrayToArrayGenericConverter implements GenericConverter {
...
@@ -37,7 +37,7 @@ final class ArrayToArrayGenericConverter implements GenericConverter {
Object
target
=
Array
.
newInstance
(
targetElementType
.
getType
(),
Array
.
getLength
(
source
));
Object
target
=
Array
.
newInstance
(
targetElementType
.
getType
(),
Array
.
getLength
(
source
));
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceElementType
,
targetElementType
);
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceElementType
,
targetElementType
);
if
(
converter
==
null
)
{
if
(
converter
==
null
)
{
throw
new
ConverterNotFoundException
(
source
Type
,
targe
tType
);
throw
new
ConverterNotFoundException
(
source
ElementType
,
targetElemen
tType
);
}
}
for
(
int
i
=
0
;
i
<
Array
.
getLength
(
target
);
i
++)
{
for
(
int
i
=
0
;
i
<
Array
.
getLength
(
target
);
i
++)
{
Array
.
set
(
target
,
i
,
converter
.
convert
(
Array
.
get
(
source
,
i
),
sourceElementType
,
targetElementType
));
Array
.
set
(
target
,
i
,
converter
.
convert
(
Array
.
get
(
source
,
i
),
sourceElementType
,
targetElementType
));
...
...
org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToCollectionGenericConverter.java
浏览文件 @
c693f216
...
@@ -42,7 +42,7 @@ final class ArrayToCollectionGenericConverter implements GenericConverter {
...
@@ -42,7 +42,7 @@ final class ArrayToCollectionGenericConverter implements GenericConverter {
}
else
{
}
else
{
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceElementType
,
targetElementType
);
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceElementType
,
targetElementType
);
if
(
converter
==
null
)
{
if
(
converter
==
null
)
{
throw
new
ConverterNotFoundException
(
source
Type
,
targe
tType
);
throw
new
ConverterNotFoundException
(
source
ElementType
,
targetElemen
tType
);
}
}
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
collection
.
add
(
converter
.
convert
(
Array
.
get
(
source
,
i
),
sourceElementType
,
targetElementType
));
collection
.
add
(
converter
.
convert
(
Array
.
get
(
source
,
i
),
sourceElementType
,
targetElementType
));
...
...
org.springframework.core/src/main/java/org/springframework/core/convert/support/ArrayToObjectGenericConverter.java
浏览文件 @
c693f216
...
@@ -39,7 +39,7 @@ final class ArrayToObjectGenericConverter implements GenericConverter {
...
@@ -39,7 +39,7 @@ final class ArrayToObjectGenericConverter implements GenericConverter {
}
else
{
}
else
{
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceElementType
,
targetType
);
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceElementType
,
targetType
);
if
(
converter
==
null
)
{
if
(
converter
==
null
)
{
throw
new
ConverterNotFoundException
(
sourceType
,
targetType
);
throw
new
ConverterNotFoundException
(
source
Element
Type
,
targetType
);
}
}
return
converter
.
convert
(
Array
.
get
(
source
,
0
),
sourceElementType
,
targetType
);
return
converter
.
convert
(
Array
.
get
(
source
,
0
),
sourceElementType
,
targetType
);
}
}
...
...
org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToArrayGenericConverter.java
浏览文件 @
c693f216
...
@@ -46,7 +46,7 @@ final class CollectionToArrayGenericConverter implements GenericConverter {
...
@@ -46,7 +46,7 @@ final class CollectionToArrayGenericConverter implements GenericConverter {
}
else
{
}
else
{
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceElementType
,
targetElementType
);
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceElementType
,
targetElementType
);
if
(
converter
==
null
)
{
if
(
converter
==
null
)
{
throw
new
ConverterNotFoundException
(
source
Type
,
targe
tType
);
throw
new
ConverterNotFoundException
(
source
ElementType
,
targetElemen
tType
);
}
}
for
(
Iterator
it
=
sourceCollection
.
iterator
();
it
.
hasNext
();
i
++)
{
for
(
Iterator
it
=
sourceCollection
.
iterator
();
it
.
hasNext
();
i
++)
{
Array
.
set
(
array
,
i
,
converter
.
convert
(
it
.
next
(),
sourceElementType
,
targetElementType
));
Array
.
set
(
array
,
i
,
converter
.
convert
(
it
.
next
(),
sourceElementType
,
targetElementType
));
...
...
org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToCollectionGenericConverter.java
浏览文件 @
c693f216
...
@@ -28,7 +28,7 @@ final class CollectionToCollectionGenericConverter implements GenericConverter {
...
@@ -28,7 +28,7 @@ final class CollectionToCollectionGenericConverter implements GenericConverter {
public
CollectionToCollectionGenericConverter
(
GenericConversionService
conversionService
)
{
public
CollectionToCollectionGenericConverter
(
GenericConversionService
conversionService
)
{
this
.
conversionService
=
conversionService
;
this
.
conversionService
=
conversionService
;
}
}
public
Object
convert
(
Object
source
,
TypeDescriptor
sourceType
,
TypeDescriptor
targetType
)
{
public
Object
convert
(
Object
source
,
TypeDescriptor
sourceType
,
TypeDescriptor
targetType
)
{
Collection
sourceCollection
=
(
Collection
)
source
;
Collection
sourceCollection
=
(
Collection
)
source
;
TypeDescriptor
sourceElementType
=
sourceType
.
getElementTypeDescriptor
();
TypeDescriptor
sourceElementType
=
sourceType
.
getElementTypeDescriptor
();
...
@@ -40,7 +40,8 @@ final class CollectionToCollectionGenericConverter implements GenericConverter {
...
@@ -40,7 +40,8 @@ final class CollectionToCollectionGenericConverter implements GenericConverter {
if
(
sourceType
.
isAssignableTo
(
targetType
))
{
if
(
sourceType
.
isAssignableTo
(
targetType
))
{
return
sourceCollection
;
return
sourceCollection
;
}
else
{
}
else
{
Collection
targetCollection
=
CollectionFactory
.
createCollection
(
targetType
.
getType
(),
sourceCollection
.
size
());
Collection
targetCollection
=
CollectionFactory
.
createCollection
(
targetType
.
getType
(),
sourceCollection
.
size
());
targetCollection
.
addAll
(
sourceCollection
);
targetCollection
.
addAll
(
sourceCollection
);
return
targetCollection
;
return
targetCollection
;
}
}
...
@@ -48,14 +49,14 @@ final class CollectionToCollectionGenericConverter implements GenericConverter {
...
@@ -48,14 +49,14 @@ final class CollectionToCollectionGenericConverter implements GenericConverter {
Collection
targetCollection
=
CollectionFactory
.
createCollection
(
targetType
.
getType
(),
sourceCollection
.
size
());
Collection
targetCollection
=
CollectionFactory
.
createCollection
(
targetType
.
getType
(),
sourceCollection
.
size
());
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceElementType
,
targetElementType
);
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceElementType
,
targetElementType
);
if
(
converter
==
null
)
{
if
(
converter
==
null
)
{
throw
new
ConverterNotFoundException
(
source
Type
,
targe
tType
);
throw
new
ConverterNotFoundException
(
source
ElementType
,
targetElemen
tType
);
}
}
for
(
Object
element
:
sourceCollection
)
{
for
(
Object
element
:
sourceCollection
)
{
targetCollection
.
add
(
converter
.
convert
(
element
,
sourceElementType
,
targetElementType
));
targetCollection
.
add
(
converter
.
convert
(
element
,
sourceElementType
,
targetElementType
));
}
}
return
targetCollection
;
return
targetCollection
;
}
}
private
TypeDescriptor
getElementType
(
Collection
collection
)
{
private
TypeDescriptor
getElementType
(
Collection
collection
)
{
for
(
Object
element
:
collection
)
{
for
(
Object
element
:
collection
)
{
if
(
element
!=
null
)
{
if
(
element
!=
null
)
{
...
...
org.springframework.core/src/main/java/org/springframework/core/convert/support/CollectionToObjectGenericConverter.java
浏览文件 @
c693f216
...
@@ -33,15 +33,19 @@ final class CollectionToObjectGenericConverter implements GenericConverter {
...
@@ -33,15 +33,19 @@ final class CollectionToObjectGenericConverter implements GenericConverter {
if
(
sourceCollection
.
size
()
==
0
)
{
if
(
sourceCollection
.
size
()
==
0
)
{
return
null
;
return
null
;
}
else
{
}
else
{
Object
firstElement
=
sourceCollection
.
iterator
().
next
();
TypeDescriptor
sourceElementType
=
sourceType
.
getElementTypeDescriptor
();
TypeDescriptor
sourceElementType
=
sourceType
.
getElementTypeDescriptor
();
if
(
sourceElementType
==
TypeDescriptor
.
NULL
&&
firstElement
!=
null
)
{
sourceElementType
=
TypeDescriptor
.
valueOf
(
firstElement
.
getClass
());
}
if
(
sourceElementType
==
TypeDescriptor
.
NULL
||
sourceElementType
.
isAssignableTo
(
targetType
))
{
if
(
sourceElementType
==
TypeDescriptor
.
NULL
||
sourceElementType
.
isAssignableTo
(
targetType
))
{
return
sourceCollection
.
iterator
().
next
()
;
return
firstElement
;
}
else
{
}
else
{
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceElementType
,
targetType
);
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceElementType
,
targetType
);
if
(
converter
==
null
)
{
if
(
converter
==
null
)
{
throw
new
ConverterNotFoundException
(
sourceType
,
targetType
);
throw
new
ConverterNotFoundException
(
source
Element
Type
,
targetType
);
}
}
return
converter
.
convert
(
sourceCollection
.
iterator
().
next
()
,
sourceElementType
,
targetType
);
return
converter
.
convert
(
firstElement
,
sourceElementType
,
targetType
);
}
}
}
}
}
}
...
...
org.springframework.core/src/main/java/org/springframework/core/convert/support/ObjectToArrayGenericConverter.java
浏览文件 @
c693f216
...
@@ -36,7 +36,7 @@ final class ObjectToArrayGenericConverter implements GenericConverter {
...
@@ -36,7 +36,7 @@ final class ObjectToArrayGenericConverter implements GenericConverter {
}
else
{
}
else
{
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceType
,
targetElementType
);
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceType
,
targetElementType
);
if
(
converter
==
null
)
{
if
(
converter
==
null
)
{
throw
new
ConverterNotFoundException
(
sourceType
,
targetType
);
throw
new
ConverterNotFoundException
(
sourceType
,
target
Element
Type
);
}
}
Array
.
set
(
target
,
0
,
converter
.
convert
(
source
,
sourceType
,
targetElementType
));
Array
.
set
(
target
,
0
,
converter
.
convert
(
source
,
sourceType
,
targetElementType
));
}
}
...
...
org.springframework.core/src/main/java/org/springframework/core/convert/support/ObjectToCollectionGenericConverter.java
浏览文件 @
c693f216
...
@@ -37,7 +37,7 @@ final class ObjectToCollectionGenericConverter implements GenericConverter {
...
@@ -37,7 +37,7 @@ final class ObjectToCollectionGenericConverter implements GenericConverter {
}
else
{
}
else
{
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceType
,
targetElementType
);
GenericConverter
converter
=
this
.
conversionService
.
getConverter
(
sourceType
,
targetElementType
);
if
(
converter
==
null
)
{
if
(
converter
==
null
)
{
throw
new
ConverterNotFoundException
(
sourceType
,
targetType
);
throw
new
ConverterNotFoundException
(
sourceType
,
target
Element
Type
);
}
}
target
.
add
(
converter
.
convert
(
source
,
sourceType
,
targetElementType
));
target
.
add
(
converter
.
convert
(
source
,
sourceType
,
targetElementType
));
}
}
...
...
org.springframework.core/src/test/java/org/springframework/core/convert/support/GenericConversionServiceTests.java
浏览文件 @
c693f216
...
@@ -24,6 +24,7 @@ import static org.junit.Assert.assertTrue;
...
@@ -24,6 +24,7 @@ import static org.junit.Assert.assertTrue;
import
java.util.AbstractList
;
import
java.util.AbstractList
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.LinkedHashSet
;
import
java.util.LinkedHashSet
;
import
java.util.LinkedList
;
import
java.util.LinkedList
;
...
@@ -145,7 +146,7 @@ public class GenericConversionServiceTests {
...
@@ -145,7 +146,7 @@ public class GenericConversionServiceTests {
assertEquals
(
2
,
result
[
1
]);
assertEquals
(
2
,
result
[
1
]);
assertEquals
(
3
,
result
[
2
]);
assertEquals
(
3
,
result
[
2
]);
}
}
@Test
@Test
public
void
convertArrayToArrayAssignable
()
{
public
void
convertArrayToArrayAssignable
()
{
int
[]
result
=
converter
.
convert
(
new
int
[]
{
1
,
2
,
3
},
int
[].
class
);
int
[]
result
=
converter
.
convert
(
new
int
[]
{
1
,
2
,
3
},
int
[].
class
);
...
@@ -182,7 +183,7 @@ public class GenericConversionServiceTests {
...
@@ -182,7 +183,7 @@ public class GenericConversionServiceTests {
assertEquals
(
"3"
,
result
.
get
(
2
));
assertEquals
(
"3"
,
result
.
get
(
2
));
}
}
@Test
(
expected
=
ConversionFailedException
.
class
)
@Test
(
expected
=
ConversionFailedException
.
class
)
public
void
convertArrayToAbstractList
()
{
public
void
convertArrayToAbstractList
()
{
converter
.
convert
(
new
String
[]
{
"1"
,
"2"
,
"3"
},
AbstractList
.
class
);
converter
.
convert
(
new
String
[]
{
"1"
,
"2"
,
"3"
},
AbstractList
.
class
);
}
}
...
@@ -241,6 +242,37 @@ public class GenericConversionServiceTests {
...
@@ -241,6 +242,37 @@ public class GenericConversionServiceTests {
assertEquals
(
map
.
get
(
2
),
FooEnum
.
BAZ
);
assertEquals
(
map
.
get
(
2
),
FooEnum
.
BAZ
);
}
}
@Test
public
void
convertObjectToCollection
()
{
List
<
String
>
result
=
(
List
<
String
>)
converter
.
convert
(
"test"
,
List
.
class
);
assertEquals
(
1
,
result
.
size
());
assertEquals
(
"test"
,
result
.
get
(
0
));
}
@Test
public
void
convertObjectToCollectionWithElementConversion
()
throws
Exception
{
converter
.
addConverterFactory
(
new
StringToNumberConverterFactory
());
List
<
Integer
>
result
=
(
List
<
Integer
>)
converter
.
convert
(
"3"
,
TypeDescriptor
.
valueOf
(
String
.
class
),
new
TypeDescriptor
(
getClass
().
getField
(
"genericList"
)));
assertEquals
(
1
,
result
.
size
());
assertEquals
(
new
Integer
(
3
),
result
.
get
(
0
));
}
@Test
public
void
convertCollectionToObject
()
{
List
<
String
>
list
=
Collections
.
singletonList
(
"test"
);
String
result
=
converter
.
convert
(
list
,
String
.
class
);
assertEquals
(
"test"
,
result
);
}
@Test
public
void
convertCollectionToObjectWithElementConversion
()
{
converter
.
addConverterFactory
(
new
StringToNumberConverterFactory
());
List
<
String
>
list
=
Collections
.
singletonList
(
"3"
);
Integer
result
=
converter
.
convert
(
list
,
Integer
.
class
);
assertEquals
(
new
Integer
(
3
),
result
);
}
@Test
@Test
public
void
convertObjectToArray
()
{
public
void
convertObjectToArray
()
{
String
[]
result
=
converter
.
convert
(
"test"
,
String
[].
class
);
String
[]
result
=
converter
.
convert
(
"test"
,
String
[].
class
);
...
@@ -256,6 +288,21 @@ public class GenericConversionServiceTests {
...
@@ -256,6 +288,21 @@ public class GenericConversionServiceTests {
assertEquals
(
new
Integer
(
1
),
result
[
0
]);
assertEquals
(
new
Integer
(
1
),
result
[
0
]);
}
}
@Test
public
void
convertArrayToObject
()
{
String
[]
array
=
new
String
[]
{
"test"
};
String
result
=
converter
.
convert
(
array
,
String
.
class
);
assertEquals
(
"test"
,
result
);
}
@Test
public
void
convertArrayToObjectWithElementConversion
()
{
converter
.
addConverterFactory
(
new
StringToNumberConverterFactory
());
String
[]
array
=
new
String
[]
{
"3"
};
Integer
result
=
converter
.
convert
(
array
,
Integer
.
class
);
assertEquals
(
new
Integer
(
3
),
result
);
}
@Test
@Test
@Ignore
@Ignore
public
void
convertStringToArrayWithElementConversion
()
{
public
void
convertStringToArrayWithElementConversion
()
{
...
@@ -275,7 +322,7 @@ public class GenericConversionServiceTests {
...
@@ -275,7 +322,7 @@ public class GenericConversionServiceTests {
assertTrue
(
e
.
getCause
()
instanceof
ConverterNotFoundException
);
assertTrue
(
e
.
getCause
()
instanceof
ConverterNotFoundException
);
}
}
}
}
@Test
@Test
public
void
parent
()
{
public
void
parent
()
{
GenericConversionService
parent
=
new
GenericConversionService
();
GenericConversionService
parent
=
new
GenericConversionService
();
...
@@ -284,7 +331,7 @@ public class GenericConversionServiceTests {
...
@@ -284,7 +331,7 @@ public class GenericConversionServiceTests {
try
{
try
{
converter
.
convert
(
"3"
,
Integer
.
class
);
converter
.
convert
(
"3"
,
Integer
.
class
);
}
catch
(
ConverterNotFoundException
e
)
{
}
catch
(
ConverterNotFoundException
e
)
{
}
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录