org.infinispan.context.impl.AbstractInvocationContext Maven / Gradle / Ivy
package org.infinispan.context.impl;
import org.infinispan.container.entries.CacheEntry;
import org.infinispan.container.entries.InternalCacheEntry;
import org.infinispan.context.InvocationContext;
import org.infinispan.remoting.transport.Address;
/**
* Common features of transaction and invocation contexts
*
* @author Manik Surtani
* @author [email protected]
* @since 4.0
*/
public abstract class AbstractInvocationContext implements InvocationContext {
private final Address origin;
protected AbstractInvocationContext(Address origin) {
this.origin = origin;
}
@Override
public final Address getOrigin() {
return origin;
}
@Override
public boolean isOriginLocal() {
return origin == null;
}
@Override
public boolean hasLockedKey(Object key) {
return getLockedKeys().contains(key);
}
@Override
public final ClassLoader getClassLoader() {
return null;
}
@Override
public final void setClassLoader(final ClassLoader classLoader) {
// No-op
}
@Override
public boolean isEntryRemovedInContext(final Object key) {
CacheEntry ce = lookupEntry(key);
return ce != null && ce.isRemoved() && ce.isChanged();
}
/**
* @deprecated Since 8.1, no longer used.
*/
@Deprecated
protected void onEntryValueReplaced(final Object key, final InternalCacheEntry cacheEntry) {
}
@Override
public InvocationContext clone() {
try {
return (InvocationContext) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException("Impossible!", e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy