diff --git a/spring-context/src/main/java/org/springframework/cache/support/NoOpCache.java b/spring-context/src/main/java/org/springframework/cache/support/NoOpCache.java new file mode 100644 index 0000000000..eab581da25 --- /dev/null +++ b/spring-context/src/main/java/org/springframework/cache/support/NoOpCache.java @@ -0,0 +1,92 @@ +/* + * Copyright 2002-2016 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.concurrent.Callable; + +import org.springframework.cache.Cache; + +/** + * A no operation {@link Cache} implementation suitable + * for disabling caching. + * + *

Will simply accept any items into the cache not actually storing them. + * + * @author Costin Leau + * @author Stephane Nicoll + * @since 4.3.4 + */ +public class NoOpCache implements Cache { + + private final String name; + + /** + * Create a {@link NoOpCache} instance with the specified name + * @param name the name of the cache + */ + public NoOpCache(String name) { + this.name = name; + } + + @Override + public void clear() { + } + + @Override + public void evict(Object key) { + } + + @Override + public ValueWrapper get(Object key) { + return null; + } + + @Override + public T get(Object key, Class type) { + return null; + } + + @Override + public T get(Object key, Callable valueLoader) { + try { + return valueLoader.call(); + } + catch (Exception ex) { + throw new ValueRetrievalException(key, valueLoader, ex); + } + } + + @Override + public String getName() { + return this.name; + } + + @Override + public Object getNativeCache() { + return null; + } + + @Override + public void put(Object key, Object value) { + } + + @Override + public ValueWrapper putIfAbsent(Object key, Object value) { + return null; + } + +} diff --git a/spring-context/src/main/java/org/springframework/cache/support/NoOpCacheManager.java b/spring-context/src/main/java/org/springframework/cache/support/NoOpCacheManager.java index df4ff8ee84..ce8176ff22 100644 --- a/spring-context/src/main/java/org/springframework/cache/support/NoOpCacheManager.java +++ b/spring-context/src/main/java/org/springframework/cache/support/NoOpCacheManager.java @@ -20,7 +20,6 @@ import java.util.Collection; import java.util.Collections; import java.util.LinkedHashSet; import java.util.Set; -import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -73,61 +72,4 @@ public class NoOpCacheManager implements CacheManager { } } - - private static class NoOpCache implements Cache { - - private final String name; - - public NoOpCache(String name) { - this.name = name; - } - - @Override - public void clear() { - } - - @Override - public void evict(Object key) { - } - - @Override - public ValueWrapper get(Object key) { - return null; - } - - @Override - public T get(Object key, Class type) { - return null; - } - - @Override - public T get(Object key, Callable valueLoader) { - try { - return valueLoader.call(); - } - catch (Exception ex) { - throw new ValueRetrievalException(key, valueLoader, ex); - } - } - - @Override - public String getName() { - return this.name; - } - - @Override - public Object getNativeCache() { - return null; - } - - @Override - public void put(Object key, Object value) { - } - - @Override - public ValueWrapper putIfAbsent(Object key, Object value) { - return null; - } - } - }