/* * Copyright 2008-2014 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.kaleidofoundry.core.cache; import java.io.Serializable; import java.util.concurrent.ConcurrentMap; import org.kaleidofoundry.core.config.Configuration; import org.kaleidofoundry.core.context.AbstractRuntimeContextBuilder; import org.kaleidofoundry.core.context.RuntimeContext; /** * {@link Cache} base {@link RuntimeContext} builder & properties.<br/> * <b>{@link Cache} commons context properties</b> : <br/> * <p> * <table border="1"> * <tr> * <td><b>Property name</b></td> * <td><b>Property description</b></td> * </tr> * <tr> * <td>cacheName</td> * <td>the cache name (unique for a cache provider instance)</td> * </tr> * <tr> * <td>cacheManagerRef</td> * <td>reference name of the cache manager context to use</td> * </tr> * <tr> * <td>gaeExpirationDelta</td> * <td>Google application engine - expire values the given amount of time relative to when they are put, as an Integer number of * milliseconds</td> * </tr> * <tr> * <td>gaeExpirationAt</td> * <td>Google application engine - expire values at the given date and time, as a java.util.Date</td> * </tr> * </table> * </p> * * @author jraduget * @see CacheManagerContextBuilder */ @SuppressWarnings("rawtypes") public class CacheContextBuilder extends AbstractRuntimeContextBuilder<Cache> { /** the cache name (unique for a cache provider instance) */ public static final String CacheName = "cacheName"; /** reference name of the cache manager context to use */ public static final String CacheManagerRef = "cacheManagerRef"; /** * Google application engine - expire values the given amount of time relative to when they are put, as an Integer number of milliseconds */ public static final String GaeCacheExpirationDelta = "gaeExpirationDelta"; /** Google application engine - expire values at the given date and time, as a java.util.Date */ public static final String GaeCacheExpiration = "gaeExpirationAt"; /** * Google application engine - Property key that determines whether to throw a {@link GCacheException} if a put method fails. * The value should be a boolean value, and defaults to {@code false}. * If you set this to true, you should be prepared to catch any {@link GCacheException} thrown from {@code put} or {@code putAll} as this * may happen sporadically or during scheduled maintenance. */ public static final String GaeThrowOnPutFailure = "ThrowOnPutFailure"; /** * Apache jcs group, to configuration your cache datas */ public static final String JcsGroup = "jcsGroup"; /** * */ public CacheContextBuilder() { super(); } /** * @param pluginInterface * @param configurations */ public CacheContextBuilder(final Class<Cache> pluginInterface, final Configuration... configurations) { super(pluginInterface, configurations); } /** * @param pluginInterface * @param staticParameters */ public CacheContextBuilder(final Class<Cache> pluginInterface, final ConcurrentMap<String, Serializable> staticParameters) { super(pluginInterface, staticParameters); } /** * @param pluginInterface */ public CacheContextBuilder(final Class<Cache> pluginInterface) { super(pluginInterface); } /** * @param staticParameters * @param configurations */ public CacheContextBuilder(final ConcurrentMap<String, Serializable> staticParameters, final Configuration... configurations) { super(staticParameters, configurations); } /** * @param name * @param pluginInterface * @param configurations */ public CacheContextBuilder(final String name, final Class<Cache> pluginInterface, final Configuration... configurations) { super(name, pluginInterface, configurations); } /** * @param name * @param pluginInterface * @param staticParameters * @param configurations */ public CacheContextBuilder(final String name, final Class<Cache> pluginInterface, final ConcurrentMap<String, Serializable> staticParameters, final Configuration... configurations) { super(name, pluginInterface, staticParameters, configurations); } /** * @param name * @param configurations */ public CacheContextBuilder(final String name, final Configuration... configurations) { super(name, configurations); } /** * @param name * @param prefixProperty * @param configurations */ public CacheContextBuilder(final String name, final String prefixProperty, final Configuration... configurations) { super(name, prefixProperty, configurations); } /** * @param name * @param prefixProperty * @param staticParameters * @param configurations */ public CacheContextBuilder(final String name, final String prefixProperty, final ConcurrentMap<String, Serializable> staticParameters, final Configuration... configurations) { super(name, prefixProperty, staticParameters, configurations); } /** * @param name * @param prefix */ public CacheContextBuilder(final String name, final String prefix) { super(name, prefix); } /** * @param name */ public CacheContextBuilder(final String name) { super(name); } /** * @param parameter parameter name * @param value parameter value * @return current builder instance */ public CacheContextBuilder withParameter(final String parameter, final Serializable value) { getContextParameters().put(parameter, value); return this; } /** * @param cacheName * @return current builder instance */ public CacheContextBuilder withCacheName(final String cacheName) { getContextParameters().put(CacheName, cacheName); return this; } /** * @param cacheManagerRef * @return current builder instance */ public CacheContextBuilder withCacheManagerRef(final String cacheManagerRef) { getContextParameters().put(CacheManagerRef, cacheManagerRef); return this; } /** * @param cacheManagerRef * @return current builder instance */ public CacheContextBuilder withGaeCacheExpirationDelta(final String gaeCacheExpirationDelta) { getContextParameters().put(GaeCacheExpirationDelta, gaeCacheExpirationDelta); return this; } /** * @param cacheManagerRef * @return current builder instance */ public CacheContextBuilder withGaeCacheExpiration(final String gaeCacheExpiration) { getContextParameters().put(GaeCacheExpiration, gaeCacheExpiration); return this; } /** * @param cacheManagerRef * @return current builder instance */ public CacheContextBuilder withJcsGroup(final String jcsGroup) { getContextParameters().put(JcsGroup, jcsGroup); return this; } }