class CacheEntryEventAdapter<K, V> extends CacheEntryEvent<K, V> {
    /** */
    protected CacheEntryEventAdapter(Cache src, EventType evtType) {
        super(src, evtType);
    }

    /** {@inheritDoc} */
    @Override public V getValue() {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @Override public <T> T unwrap(Class<T> cls) {
        if (cls.isAssignableFrom(getClass()))
            return cls.cast(this);

        throw new IllegalArgumentException("Unwrapping to class is not supported: " + cls);
    }

    /** */
    protected abstract V getNewValue();
}

        EventType evtType = getEventType();

        return (evtType == EXPIRED || evtType == REMOVED) ? getOldValue() : getNewValue();
    
<no_super_class>