Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
5c1b0e6c
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,发现更多精彩内容 >>
提交
5c1b0e6c
编写于
9月 24, 2009
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
removed classes which are not used in 3.0 yet
上级
a59d205b
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
0 addition
and
588 deletion
+0
-588
org.springframework.core/src/main/java/org/springframework/util/StringKeyedMapAdapter.java
.../java/org/springframework/util/StringKeyedMapAdapter.java
+0
-354
org.springframework.core/src/test/java/org/springframework/util/StringKeyedMapAdapterTests.java
.../org/springframework/util/StringKeyedMapAdapterTests.java
+0
-82
org.springframework.web/src/main/java/org/springframework/web/context/request/NativeWebRequestParameterMap.java
...ork/web/context/request/NativeWebRequestParameterMap.java
+0
-83
org.springframework.web/src/test/java/org/springframework/web/context/request/NativeWebRequestParameterMapTests.java
...eb/context/request/NativeWebRequestParameterMapTests.java
+0
-69
未找到文件。
org.springframework.core/src/main/java/org/springframework/util/StringKeyedMapAdapter.java
已删除
100644 → 0
浏览文件 @
a59d205b
/*
* Copyright 2002-2009 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.util
;
import
java.util.AbstractSet
;
import
java.util.Collection
;
import
java.util.Iterator
;
import
java.util.Map
;
import
java.util.NoSuchElementException
;
import
java.util.Set
;
/**
* Base class for map adapters whose keys are String values.
* Concrete classes need only implement the abstract hook methods defined by this class.
* @author Keith Donald
*/
public
abstract
class
StringKeyedMapAdapter
<
V
>
implements
Map
<
String
,
V
>
{
private
Set
<
String
>
keySet
;
private
Collection
<
V
>
values
;
private
Set
<
Map
.
Entry
<
String
,
V
>>
entrySet
;
// implementing Map
public
void
clear
()
{
for
(
Iterator
<
String
>
it
=
getAttributeNames
();
it
.
hasNext
();)
{
removeAttribute
((
String
)
it
.
next
());
}
}
public
boolean
containsKey
(
Object
key
)
{
return
getAttribute
(
key
.
toString
())
!=
null
;
}
public
boolean
containsValue
(
Object
value
)
{
if
(
value
==
null
)
{
return
false
;
}
for
(
Iterator
<
String
>
it
=
getAttributeNames
();
it
.
hasNext
();)
{
Object
aValue
=
getAttribute
((
String
)
it
.
next
());
if
(
value
.
equals
(
aValue
))
{
return
true
;
}
}
return
false
;
}
public
Set
<
Map
.
Entry
<
String
,
V
>>
entrySet
()
{
return
(
entrySet
!=
null
)
?
entrySet
:
(
entrySet
=
new
EntrySet
());
}
public
V
get
(
Object
key
)
{
return
getAttribute
(
key
.
toString
());
}
public
boolean
isEmpty
()
{
return
!
getAttributeNames
().
hasNext
();
}
public
Set
<
String
>
keySet
()
{
return
(
keySet
!=
null
)
?
keySet
:
(
keySet
=
new
KeySet
());
}
public
V
put
(
String
key
,
V
value
)
{
String
stringKey
=
String
.
valueOf
(
key
);
V
previousValue
=
getAttribute
(
stringKey
);
setAttribute
(
stringKey
,
value
);
return
previousValue
;
}
public
void
putAll
(
Map
<?
extends
String
,
?
extends
V
>
map
)
{
for
(
Map
.
Entry
<?
extends
String
,
?
extends
V
>
entry
:
map
.
entrySet
())
{
setAttribute
(
entry
.
getKey
().
toString
(),
entry
.
getValue
());
}
}
public
V
remove
(
Object
key
)
{
String
stringKey
=
key
.
toString
();
V
retval
=
getAttribute
(
stringKey
);
removeAttribute
(
stringKey
);
return
retval
;
}
public
int
size
()
{
int
size
=
0
;
for
(
Iterator
<
String
>
it
=
getAttributeNames
();
it
.
hasNext
();)
{
size
++;
it
.
next
();
}
return
size
;
}
public
Collection
<
V
>
values
()
{
return
(
values
!=
null
)
?
values
:
(
values
=
new
Values
());
}
// hook methods
/**
* Hook method that needs to be implemented by concrete subclasses. Gets a value associated with a key.
* @param key the key to lookup
* @return the associated value, or null if none
*/
protected
abstract
V
getAttribute
(
String
key
);
/**
* Hook method that needs to be implemented by concrete subclasses. Puts a key-value pair in the map, overwriting
* any possible earlier value associated with the same key.
* @param key the key to associate the value with
* @param value the value to associate with the key
*/
protected
abstract
void
setAttribute
(
String
key
,
V
value
);
/**
* Hook method that needs to be implemented by concrete subclasses. Removes a key and its associated value from the
* map.
* @param key the key to remove
*/
protected
abstract
void
removeAttribute
(
String
key
);
/**
* Hook method that needs to be implemented by concrete subclasses. Returns an enumeration listing all keys known to
* the map.
* @return the key enumeration
*/
protected
abstract
Iterator
<
String
>
getAttributeNames
();
// internal helper classes
private
class
KeySet
extends
AbstractSet
<
String
>
{
public
boolean
isEmpty
()
{
return
StringKeyedMapAdapter
.
this
.
isEmpty
();
}
public
int
size
()
{
return
StringKeyedMapAdapter
.
this
.
size
();
}
public
void
clear
()
{
StringKeyedMapAdapter
.
this
.
clear
();
}
public
Iterator
<
String
>
iterator
()
{
return
new
KeyIterator
();
}
public
boolean
contains
(
Object
o
)
{
return
StringKeyedMapAdapter
.
this
.
containsKey
(
o
);
}
public
boolean
remove
(
Object
o
)
{
return
StringKeyedMapAdapter
.
this
.
remove
(
o
)
!=
null
;
}
}
private
class
KeyIterator
implements
Iterator
<
String
>
{
private
final
Iterator
<
String
>
it
=
getAttributeNames
();
private
String
currentKey
;
public
boolean
hasNext
()
{
return
it
.
hasNext
();
}
public
String
next
()
{
return
currentKey
=
it
.
next
();
}
public
void
remove
()
{
if
(
currentKey
==
null
)
{
throw
new
NoSuchElementException
(
"You must call next() at least once"
);
}
StringKeyedMapAdapter
.
this
.
remove
(
currentKey
);
}
}
private
class
Values
extends
AbstractSet
<
V
>
{
public
boolean
isEmpty
()
{
return
StringKeyedMapAdapter
.
this
.
isEmpty
();
}
public
int
size
()
{
return
StringKeyedMapAdapter
.
this
.
size
();
}
public
void
clear
()
{
StringKeyedMapAdapter
.
this
.
clear
();
}
public
Iterator
<
V
>
iterator
()
{
return
new
ValuesIterator
();
}
public
boolean
contains
(
Object
o
)
{
return
StringKeyedMapAdapter
.
this
.
containsValue
(
o
);
}
public
boolean
remove
(
Object
o
)
{
if
(
o
==
null
)
{
return
false
;
}
for
(
Iterator
<
V
>
it
=
iterator
();
it
.
hasNext
();)
{
if
(
o
.
equals
(
it
.
next
()))
{
it
.
remove
();
return
true
;
}
}
return
false
;
}
}
private
class
ValuesIterator
implements
Iterator
<
V
>
{
private
final
Iterator
<
String
>
it
=
getAttributeNames
();
private
String
currentKey
;
public
boolean
hasNext
()
{
return
it
.
hasNext
();
}
public
V
next
()
{
currentKey
=
it
.
next
();
return
StringKeyedMapAdapter
.
this
.
get
(
currentKey
);
}
public
void
remove
()
{
if
(
currentKey
==
null
)
{
throw
new
NoSuchElementException
(
"You must call next() at least once"
);
}
StringKeyedMapAdapter
.
this
.
remove
(
currentKey
);
}
}
private
class
EntrySet
extends
AbstractSet
<
Map
.
Entry
<
String
,
V
>>
{
public
boolean
isEmpty
()
{
return
StringKeyedMapAdapter
.
this
.
isEmpty
();
}
public
int
size
()
{
return
StringKeyedMapAdapter
.
this
.
size
();
}
public
void
clear
()
{
StringKeyedMapAdapter
.
this
.
clear
();
}
public
Iterator
<
Map
.
Entry
<
String
,
V
>>
iterator
()
{
return
new
EntryIterator
();
}
@SuppressWarnings
(
"unchecked"
)
public
boolean
contains
(
Object
o
)
{
if
(!(
o
instanceof
Entry
))
{
return
false
;
}
Entry
entry
=
(
Entry
)
o
;
Object
key
=
entry
.
getKey
();
Object
value
=
entry
.
getValue
();
if
(
key
==
null
||
value
==
null
)
{
return
false
;
}
return
value
.
equals
(
StringKeyedMapAdapter
.
this
.
get
(
key
));
}
@SuppressWarnings
(
"unchecked"
)
public
boolean
remove
(
Object
o
)
{
if
(!(
o
instanceof
Entry
))
{
return
false
;
}
Entry
entry
=
(
Entry
)
o
;
Object
key
=
entry
.
getKey
();
Object
value
=
entry
.
getValue
();
if
(
key
==
null
||
value
==
null
||
!
value
.
equals
(
StringKeyedMapAdapter
.
this
.
get
(
key
)))
{
return
false
;
}
return
StringKeyedMapAdapter
.
this
.
remove
(((
Entry
)
o
).
getKey
())
!=
null
;
}
}
private
class
EntryIterator
implements
Iterator
<
Map
.
Entry
<
String
,
V
>>
{
private
final
Iterator
<
String
>
it
=
getAttributeNames
();
private
String
currentKey
;
public
boolean
hasNext
()
{
return
it
.
hasNext
();
}
public
Map
.
Entry
<
String
,
V
>
next
()
{
currentKey
=
it
.
next
();
return
new
EntrySetEntry
(
currentKey
);
}
public
void
remove
()
{
if
(
currentKey
==
null
)
{
throw
new
NoSuchElementException
(
"You must call next() at least once"
);
}
StringKeyedMapAdapter
.
this
.
remove
(
currentKey
);
}
}
private
class
EntrySetEntry
implements
Entry
<
String
,
V
>
{
private
final
String
currentKey
;
public
EntrySetEntry
(
String
currentKey
)
{
this
.
currentKey
=
currentKey
;
}
public
String
getKey
()
{
return
currentKey
;
}
public
V
getValue
()
{
return
StringKeyedMapAdapter
.
this
.
get
(
currentKey
);
}
public
V
setValue
(
V
value
)
{
return
StringKeyedMapAdapter
.
this
.
put
(
currentKey
,
value
);
}
}
}
org.springframework.core/src/test/java/org/springframework/util/StringKeyedMapAdapterTests.java
已删除
100644 → 0
浏览文件 @
a59d205b
package
org.springframework.util
;
import
java.util.Collection
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.Map
;
import
java.util.Set
;
import
junit.framework.TestCase
;
/**
* Unit tests for {@link org.springframework.binding.collection.StringKeyedMapAdapter}.
*/
public
class
StringKeyedMapAdapterTests
extends
TestCase
{
private
Map
contents
=
new
HashMap
();
private
StringKeyedMapAdapter
<
Object
>
map
=
new
StringKeyedMapAdapter
<
Object
>()
{
protected
Object
getAttribute
(
String
key
)
{
return
contents
.
get
(
key
);
}
protected
Iterator
<
String
>
getAttributeNames
()
{
return
contents
.
keySet
().
iterator
();
}
protected
void
removeAttribute
(
String
key
)
{
contents
.
remove
(
key
);
}
protected
void
setAttribute
(
String
key
,
Object
value
)
{
contents
.
put
(
key
,
value
);
}
};
public
void
testGetPutRemove
()
{
assertTrue
(
map
.
size
()
==
0
);
assertTrue
(
map
.
isEmpty
());
assertNull
(
map
.
get
(
"foo"
));
assertFalse
(
map
.
containsKey
(
"foo"
));
map
.
put
(
"foo"
,
"bar"
);
assertTrue
(
map
.
size
()
==
1
);
assertFalse
(
map
.
isEmpty
());
assertNotNull
(
map
.
get
(
"foo"
));
assertTrue
(
map
.
containsKey
(
"foo"
));
assertTrue
(
map
.
containsValue
(
"bar"
));
assertEquals
(
"bar"
,
map
.
get
(
"foo"
));
map
.
remove
(
"foo"
);
assertTrue
(
map
.
size
()
==
0
);
assertNull
(
map
.
get
(
"foo"
));
}
public
void
testPutAll
()
{
Map
all
=
new
HashMap
();
all
.
put
(
"foo"
,
"bar"
);
all
.
put
(
"bar"
,
"baz"
);
map
.
putAll
(
all
);
assertTrue
(
map
.
size
()
==
2
);
}
public
void
testEntrySet
()
{
map
.
put
(
"foo"
,
"bar"
);
map
.
put
(
"bar"
,
"baz"
);
Set
entrySet
=
map
.
entrySet
();
assertTrue
(
entrySet
.
size
()
==
2
);
}
public
void
testKeySet
()
{
map
.
put
(
"foo"
,
"bar"
);
map
.
put
(
"bar"
,
"baz"
);
Set
keySet
=
map
.
keySet
();
assertTrue
(
keySet
.
size
()
==
2
);
}
public
void
testValues
()
{
map
.
put
(
"foo"
,
"bar"
);
map
.
put
(
"bar"
,
"baz"
);
Collection
values
=
map
.
values
();
assertTrue
(
values
.
size
()
==
2
);
}
}
org.springframework.web/src/main/java/org/springframework/web/context/request/NativeWebRequestParameterMap.java
已删除
100644 → 0
浏览文件 @
a59d205b
/*
* Copyright 2004-2009 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.springframework.web.context.request
;
import
java.util.Iterator
;
import
org.springframework.util.Assert
;
import
org.springframework.util.CompositeIterator
;
import
org.springframework.util.StringKeyedMapAdapter
;
import
org.springframework.web.multipart.MultipartRequest
;
/**
* Map backed by a Web request parameter map for accessing request parameters.
* Also provides support for multi-part requests, providing transparent access to the request "fileMap" as a request parameter entry.
* @author Keith Donald
* @since 3.0
*/
public
class
NativeWebRequestParameterMap
extends
StringKeyedMapAdapter
<
Object
>
{
/**
* The wrapped native request.
*/
private
NativeWebRequest
request
;
/**
* Create a new map wrapping the parameters of given request.
*/
public
NativeWebRequestParameterMap
(
NativeWebRequest
request
)
{
Assert
.
notNull
(
request
,
"The NativeWebRequest is required"
);
this
.
request
=
request
;
}
protected
Object
getAttribute
(
String
key
)
{
if
(
request
instanceof
MultipartRequest
)
{
MultipartRequest
multipartRequest
=
(
MultipartRequest
)
request
;
Object
data
=
multipartRequest
.
getFileMap
().
get
(
key
);
if
(
data
!=
null
)
{
return
data
;
}
}
String
[]
parameters
=
request
.
getParameterValues
(
key
);
if
(
parameters
==
null
)
{
return
null
;
}
else
if
(
parameters
.
length
==
1
)
{
return
parameters
[
0
];
}
else
{
return
parameters
;
}
}
protected
void
setAttribute
(
String
key
,
Object
value
)
{
throw
new
UnsupportedOperationException
(
"WebRequest parameter maps are immutable"
);
}
protected
void
removeAttribute
(
String
key
)
{
throw
new
UnsupportedOperationException
(
"WebRequest parameter maps are immutable"
);
}
protected
Iterator
<
String
>
getAttributeNames
()
{
if
(
request
instanceof
MultipartRequest
)
{
MultipartRequest
multipartRequest
=
(
MultipartRequest
)
request
;
CompositeIterator
<
String
>
iterator
=
new
CompositeIterator
<
String
>();
iterator
.
add
(
multipartRequest
.
getFileMap
().
keySet
().
iterator
());
iterator
.
add
(
request
.
getParameterNames
());
return
iterator
;
}
else
{
return
request
.
getParameterNames
();
}
}
}
\ No newline at end of file
org.springframework.web/src/test/java/org/springframework/web/context/request/NativeWebRequestParameterMapTests.java
已删除
100644 → 0
浏览文件 @
a59d205b
package
org.springframework.web.context.request
;
import
java.util.Iterator
;
import
junit.framework.TestCase
;
import
org.springframework.mock.web.MockHttpServletRequest
;
/**
* Unit test for the {@link HttpServletRequestParameterMap} class.
*
* @author Ulrik Sandberg
*/
public
class
NativeWebRequestParameterMapTests
extends
TestCase
{
private
NativeWebRequestParameterMap
tested
;
private
MockHttpServletRequest
request
;
protected
void
setUp
()
throws
Exception
{
super
.
setUp
();
request
=
new
MockHttpServletRequest
();
tested
=
new
NativeWebRequestParameterMap
(
new
ServletWebRequest
(
request
));
}
protected
void
tearDown
()
throws
Exception
{
super
.
tearDown
();
request
=
null
;
tested
=
null
;
}
public
void
testGetAttribute
()
{
request
.
setParameter
(
"Some param"
,
"Some value"
);
// perform test
Object
result
=
tested
.
getAttribute
(
"Some param"
);
assertEquals
(
"Some value"
,
result
);
}
public
void
testSetAttribute
()
{
// perform test
try
{
tested
.
setAttribute
(
"Some key"
,
"Some value"
);
fail
(
"UnsupportedOperationException expected"
);
}
catch
(
UnsupportedOperationException
expected
)
{
// expected
}
}
public
void
testRemoveAttribute
()
{
request
.
setParameter
(
"Some param"
,
"Some value"
);
// perform test
try
{
tested
.
removeAttribute
(
"Some param"
);
fail
(
"UnsupportedOperationException expected"
);
}
catch
(
UnsupportedOperationException
expected
)
{
// expected
}
}
public
void
testGetAttributeNames
()
{
request
.
setParameter
(
"Some param"
,
"Some value"
);
// perform test
Iterator
names
=
tested
.
getAttributeNames
();
assertNotNull
(
"Null result unexpected"
,
names
);
assertTrue
(
"More elements"
,
names
.
hasNext
());
String
name
=
(
String
)
names
.
next
();
assertEquals
(
"Some param"
,
name
);
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录