org.infinispan.spring.provider.NullValue Maven / Gradle / Ivy
Go to download
The Infinispan Spring Integration project provides Spring
integration for Infinispan, a high performance distributed cache.
Its primary features are
* An implementation of org.springframework.cache.CacheManager,
Spring's central caching abstraction, backed by Infinispan's
EmbeddedCacheManager. To be used if your Spring-powered
application and Infinispan are colocated, i.e. running within
the same VM.
* An implementation of org.springframework.cache.CacheManager
backed by Infinispan's RemoteCacheManager. To bes used if your
Spring-powered application accesses Infinispan remotely, i.e.
over the network.
* An implementation of org.springframework.cache.CacheManager
backed by a CacheContainer reference. To be used if your Spring-
powered application needs access to a CacheContainer defined
outside the application (e.g. retrieved from JNDI)
* Spring namespace support allowing shortcut definitions for all the
components above
In addition, Infinispan Spring Integration offers various FactoryBeans
for facilitating creation of Infinispan core classes - Cache, CacheManager,
... - within a Spring context.
package org.infinispan.spring.provider;
import org.infinispan.commons.marshall.SerializeWith;
import org.springframework.cache.Cache.ValueWrapper;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.Serializable;
/**
* A placeholder value for storing {@literal null} in a cache.
*
* @author Olaf Bergner
* @since 5.3
*/
@SerializeWith(NullValue.Externalizer.class)
final class NullValue implements ValueWrapper, Serializable {
/** The serialVersionUID */
private static final long serialVersionUID = 6104836300055942197L;
static final NullValue NULL = new NullValue();
/**
* Always returns {@literal null}.
*
* @return {@literal null}
* @see org.springframework.cache.Cache.ValueWrapper#get()
*/
@Override
public Object get() {
return null;
}
/**
* Create a new NullValue.
*
*/
private NullValue() {
// Intentionally left blank
}
public static class Externalizer implements org.infinispan.commons.marshall.Externalizer, Serializable {
/** The serialVersionUID */
private static final long serialVersionUID = -6374308529927819177L;
/**
* @param output
* @param object
* @throws IOException
* @see org.infinispan.commons.marshall.Externalizer#writeObject(java.io.ObjectOutput,
* java.lang.Object)
*/
@Override
public void writeObject(ObjectOutput output, NullValue object) throws IOException {
// Nothing to do?
}
/**
* @param input
* @return
* @throws IOException
* @throws ClassNotFoundException
* @see org.infinispan.commons.marshall.Externalizer#readObject(java.io.ObjectInput)
*/
@Override
public NullValue readObject(ObjectInput input) throws IOException, ClassNotFoundException {
return NullValue.NULL;
}
}
}