parent
47711c6743
commit
21d64a74ae
|
@ -16,20 +16,11 @@
|
|||
|
||||
package org.springframework.cache.ehcache;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import net.sf.ehcache.Ehcache;
|
||||
import net.sf.ehcache.Element;
|
||||
import net.sf.ehcache.Status;
|
||||
|
||||
import org.springframework.cache.Cache;
|
||||
import org.springframework.cache.support.SimpleMapEntry;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
/**
|
||||
|
@ -74,51 +65,17 @@ public class EhCacheCache implements Cache<Object, Object> {
|
|||
return cache.isValueInCache(value);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public Set<Map.Entry<Object, Object>> entrySet() {
|
||||
List<Object> keys = cache.getKeys();
|
||||
Set<Map.Entry<Object, Object>> entries = new LinkedHashSet<Map.Entry<Object, Object>>(keys.size());
|
||||
for (Object key : keys) {
|
||||
Element element = cache.get(key);
|
||||
if (element != null) {
|
||||
entries.add(new SimpleMapEntry(key, element.getObjectValue()));
|
||||
}
|
||||
}
|
||||
|
||||
return Collections.unmodifiableSet(entries);
|
||||
}
|
||||
|
||||
public Object get(Object key) {
|
||||
Element element = cache.get(key);
|
||||
return (element != null ? element.getObjectValue() : null);
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return cache.getSize() == 0;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public Set<Object> keySet() {
|
||||
List<Object> keys = cache.getKeys();
|
||||
Set<Object> keySet = new LinkedHashSet<Object>(keys.size());
|
||||
for (Object key : keys) {
|
||||
keySet.add(key);
|
||||
}
|
||||
return Collections.unmodifiableSet(keySet);
|
||||
}
|
||||
|
||||
public Object put(Object key, Object value) {
|
||||
Element previous = cache.getQuiet(key);
|
||||
cache.put(new Element(key, value));
|
||||
return (previous != null ? previous.getValue() : null);
|
||||
}
|
||||
|
||||
public void putAll(Map<? extends Object, ? extends Object> m) {
|
||||
for (Map.Entry<? extends Object, ? extends Object> entry : m.entrySet()) {
|
||||
cache.put(new Element(entry.getKey(), entry.getValue()));
|
||||
}
|
||||
}
|
||||
|
||||
public Object remove(Object key) {
|
||||
Object value = null;
|
||||
if (cache.isKeyInCache(key)) {
|
||||
|
@ -129,23 +86,6 @@ public class EhCacheCache implements Cache<Object, Object> {
|
|||
return value;
|
||||
}
|
||||
|
||||
public int size() {
|
||||
return cache.getSize();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public Collection<Object> values() {
|
||||
List<Object> keys = cache.getKeys();
|
||||
List<Object> values = new ArrayList<Object>(keys.size());
|
||||
for (Object key : keys) {
|
||||
Element element = cache.get(key);
|
||||
if (element != null) {
|
||||
values.add(element.getObjectValue());
|
||||
}
|
||||
}
|
||||
return Collections.unmodifiableCollection(values);
|
||||
}
|
||||
|
||||
public Object putIfAbsent(Object key, Object value) {
|
||||
// putIfAbsent supported only from Ehcache 2.1
|
||||
// return cache.putIfAbsent(new Element(key, value));
|
||||
|
|
|
@ -1,74 +0,0 @@
|
|||
/*
|
||||
* Copyright 2010 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.cache.support;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
/**
|
||||
* Basic {@link Entry} implementation.
|
||||
*
|
||||
* @author Costin Leau
|
||||
*/
|
||||
public class SimpleMapEntry<K, V> implements Entry<K, V> {
|
||||
private K key;
|
||||
private V value;
|
||||
|
||||
public SimpleMapEntry(K key, V value) {
|
||||
this.key = key;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public SimpleMapEntry(Map.Entry<K, V> e) {
|
||||
this.key = e.getKey();
|
||||
this.value = e.getValue();
|
||||
}
|
||||
|
||||
public K getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public V getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public V setValue(V value) {
|
||||
V oldValue = this.value;
|
||||
this.value = value;
|
||||
return oldValue;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public boolean equals(Object o) {
|
||||
if (!(o instanceof Map.Entry))
|
||||
return false;
|
||||
Map.Entry e = (Map.Entry) o;
|
||||
return eq(key, e.getKey()) && eq(value, e.getValue());
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return ((key == null) ? 0 : key.hashCode()) ^ ((value == null) ? 0 : value.hashCode());
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return key + "=" + value;
|
||||
}
|
||||
|
||||
static boolean eq(Object o1, Object o2) {
|
||||
return (o1 == null ? o2 == null : o1.equals(o2));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue