com.github.benmanes.caffeine.cache.LocalCacheFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of driver-cql-shaded Show documentation
Show all versions of driver-cql-shaded Show documentation
A Shaded CQL ActivityType driver for http://nosqlbench.io/
// Copyright 2016 Ben Manes. All Rights Reserved.
package com.github.benmanes.caffeine.cache;
import com.github.benmanes.caffeine.base.UnsafeAccess;
import com.github.benmanes.caffeine.cache.stats.StatsCounter;
import java.lang.IllegalStateException;
import java.lang.Runnable;
import java.lang.StringBuilder;
import java.lang.SuppressWarnings;
import java.lang.ref.ReferenceQueue;
/**
* WARNING: GENERATED CODE
*
* A factory for caches optimized for a particular configuration.
*
* @author [email protected] (Ben Manes)
*/
@SuppressWarnings({"unchecked", "unused", "PMD"})
final class LocalCacheFactory {
/**
* Returns a cache optimized for this configuration.
*/
static BoundedLocalCache newBoundedLocalCache(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
StringBuilder sb = new StringBuilder();
if (builder.isStrongKeys()) {
sb.append('S');
} else {
sb.append('W');
}
if (builder.isStrongValues()) {
sb.append('S');
} else {
sb.append('I');
}
if (builder.removalListener != null) {
sb.append("Li");
}
if (builder.isRecordingStats()) {
sb.append('S');
}
if (builder.evicts()) {
sb.append('M');
if (builder.isWeighted()) {
sb.append('W');
} else {
sb.append('S');
}
}
if (builder.expiresAfterAccess()) {
sb.append('A');
}
if (builder.expiresAfterWrite()) {
sb.append('W');
}
if (builder.refreshes()) {
sb.append('R');
}
switch (sb.toString()) {
case "SI": return new SI<>(builder, cacheLoader, async);
case "SIA": return new SIA<>(builder, cacheLoader, async);
case "SIAR": return new SIAR<>(builder, cacheLoader, async);
case "SIAW": return new SIAW<>(builder, cacheLoader, async);
case "SIAWR": return new SIAWR<>(builder, cacheLoader, async);
case "SILi": return new SILi<>(builder, cacheLoader, async);
case "SILiA": return new SILiA<>(builder, cacheLoader, async);
case "SILiAR": return new SILiAR<>(builder, cacheLoader, async);
case "SILiAW": return new SILiAW<>(builder, cacheLoader, async);
case "SILiAWR": return new SILiAWR<>(builder, cacheLoader, async);
case "SILiMS": return new SILiMS<>(builder, cacheLoader, async);
case "SILiMSA": return new SILiMSA<>(builder, cacheLoader, async);
case "SILiMSAR": return new SILiMSAR<>(builder, cacheLoader, async);
case "SILiMSAW": return new SILiMSAW<>(builder, cacheLoader, async);
case "SILiMSAWR": return new SILiMSAWR<>(builder, cacheLoader, async);
case "SILiMSR": return new SILiMSR<>(builder, cacheLoader, async);
case "SILiMSW": return new SILiMSW<>(builder, cacheLoader, async);
case "SILiMSWR": return new SILiMSWR<>(builder, cacheLoader, async);
case "SILiMW": return new SILiMW<>(builder, cacheLoader, async);
case "SILiMWA": return new SILiMWA<>(builder, cacheLoader, async);
case "SILiMWAR": return new SILiMWAR<>(builder, cacheLoader, async);
case "SILiMWAW": return new SILiMWAW<>(builder, cacheLoader, async);
case "SILiMWAWR": return new SILiMWAWR<>(builder, cacheLoader, async);
case "SILiMWR": return new SILiMWR<>(builder, cacheLoader, async);
case "SILiMWW": return new SILiMWW<>(builder, cacheLoader, async);
case "SILiMWWR": return new SILiMWWR<>(builder, cacheLoader, async);
case "SILiR": return new SILiR<>(builder, cacheLoader, async);
case "SILiS": return new SILiS<>(builder, cacheLoader, async);
case "SILiSA": return new SILiSA<>(builder, cacheLoader, async);
case "SILiSAR": return new SILiSAR<>(builder, cacheLoader, async);
case "SILiSAW": return new SILiSAW<>(builder, cacheLoader, async);
case "SILiSAWR": return new SILiSAWR<>(builder, cacheLoader, async);
case "SILiSMS": return new SILiSMS<>(builder, cacheLoader, async);
case "SILiSMSA": return new SILiSMSA<>(builder, cacheLoader, async);
case "SILiSMSAR": return new SILiSMSAR<>(builder, cacheLoader, async);
case "SILiSMSAW": return new SILiSMSAW<>(builder, cacheLoader, async);
case "SILiSMSAWR": return new SILiSMSAWR<>(builder, cacheLoader, async);
case "SILiSMSR": return new SILiSMSR<>(builder, cacheLoader, async);
case "SILiSMSW": return new SILiSMSW<>(builder, cacheLoader, async);
case "SILiSMSWR": return new SILiSMSWR<>(builder, cacheLoader, async);
case "SILiSMW": return new SILiSMW<>(builder, cacheLoader, async);
case "SILiSMWA": return new SILiSMWA<>(builder, cacheLoader, async);
case "SILiSMWAR": return new SILiSMWAR<>(builder, cacheLoader, async);
case "SILiSMWAW": return new SILiSMWAW<>(builder, cacheLoader, async);
case "SILiSMWAWR": return new SILiSMWAWR<>(builder, cacheLoader, async);
case "SILiSMWR": return new SILiSMWR<>(builder, cacheLoader, async);
case "SILiSMWW": return new SILiSMWW<>(builder, cacheLoader, async);
case "SILiSMWWR": return new SILiSMWWR<>(builder, cacheLoader, async);
case "SILiSR": return new SILiSR<>(builder, cacheLoader, async);
case "SILiSW": return new SILiSW<>(builder, cacheLoader, async);
case "SILiSWR": return new SILiSWR<>(builder, cacheLoader, async);
case "SILiW": return new SILiW<>(builder, cacheLoader, async);
case "SILiWR": return new SILiWR<>(builder, cacheLoader, async);
case "SIMS": return new SIMS<>(builder, cacheLoader, async);
case "SIMSA": return new SIMSA<>(builder, cacheLoader, async);
case "SIMSAR": return new SIMSAR<>(builder, cacheLoader, async);
case "SIMSAW": return new SIMSAW<>(builder, cacheLoader, async);
case "SIMSAWR": return new SIMSAWR<>(builder, cacheLoader, async);
case "SIMSR": return new SIMSR<>(builder, cacheLoader, async);
case "SIMSW": return new SIMSW<>(builder, cacheLoader, async);
case "SIMSWR": return new SIMSWR<>(builder, cacheLoader, async);
case "SIMW": return new SIMW<>(builder, cacheLoader, async);
case "SIMWA": return new SIMWA<>(builder, cacheLoader, async);
case "SIMWAR": return new SIMWAR<>(builder, cacheLoader, async);
case "SIMWAW": return new SIMWAW<>(builder, cacheLoader, async);
case "SIMWAWR": return new SIMWAWR<>(builder, cacheLoader, async);
case "SIMWR": return new SIMWR<>(builder, cacheLoader, async);
case "SIMWW": return new SIMWW<>(builder, cacheLoader, async);
case "SIMWWR": return new SIMWWR<>(builder, cacheLoader, async);
case "SIR": return new SIR<>(builder, cacheLoader, async);
case "SIS": return new SIS<>(builder, cacheLoader, async);
case "SISA": return new SISA<>(builder, cacheLoader, async);
case "SISAR": return new SISAR<>(builder, cacheLoader, async);
case "SISAW": return new SISAW<>(builder, cacheLoader, async);
case "SISAWR": return new SISAWR<>(builder, cacheLoader, async);
case "SISMS": return new SISMS<>(builder, cacheLoader, async);
case "SISMSA": return new SISMSA<>(builder, cacheLoader, async);
case "SISMSAR": return new SISMSAR<>(builder, cacheLoader, async);
case "SISMSAW": return new SISMSAW<>(builder, cacheLoader, async);
case "SISMSAWR": return new SISMSAWR<>(builder, cacheLoader, async);
case "SISMSR": return new SISMSR<>(builder, cacheLoader, async);
case "SISMSW": return new SISMSW<>(builder, cacheLoader, async);
case "SISMSWR": return new SISMSWR<>(builder, cacheLoader, async);
case "SISMW": return new SISMW<>(builder, cacheLoader, async);
case "SISMWA": return new SISMWA<>(builder, cacheLoader, async);
case "SISMWAR": return new SISMWAR<>(builder, cacheLoader, async);
case "SISMWAW": return new SISMWAW<>(builder, cacheLoader, async);
case "SISMWAWR": return new SISMWAWR<>(builder, cacheLoader, async);
case "SISMWR": return new SISMWR<>(builder, cacheLoader, async);
case "SISMWW": return new SISMWW<>(builder, cacheLoader, async);
case "SISMWWR": return new SISMWWR<>(builder, cacheLoader, async);
case "SISR": return new SISR<>(builder, cacheLoader, async);
case "SISW": return new SISW<>(builder, cacheLoader, async);
case "SISWR": return new SISWR<>(builder, cacheLoader, async);
case "SIW": return new SIW<>(builder, cacheLoader, async);
case "SIWR": return new SIWR<>(builder, cacheLoader, async);
case "SS": return new SS<>(builder, cacheLoader, async);
case "SSA": return new SSA<>(builder, cacheLoader, async);
case "SSAR": return new SSAR<>(builder, cacheLoader, async);
case "SSAW": return new SSAW<>(builder, cacheLoader, async);
case "SSAWR": return new SSAWR<>(builder, cacheLoader, async);
case "SSLi": return new SSLi<>(builder, cacheLoader, async);
case "SSLiA": return new SSLiA<>(builder, cacheLoader, async);
case "SSLiAR": return new SSLiAR<>(builder, cacheLoader, async);
case "SSLiAW": return new SSLiAW<>(builder, cacheLoader, async);
case "SSLiAWR": return new SSLiAWR<>(builder, cacheLoader, async);
case "SSLiMS": return new SSLiMS<>(builder, cacheLoader, async);
case "SSLiMSA": return new SSLiMSA<>(builder, cacheLoader, async);
case "SSLiMSAR": return new SSLiMSAR<>(builder, cacheLoader, async);
case "SSLiMSAW": return new SSLiMSAW<>(builder, cacheLoader, async);
case "SSLiMSAWR": return new SSLiMSAWR<>(builder, cacheLoader, async);
case "SSLiMSR": return new SSLiMSR<>(builder, cacheLoader, async);
case "SSLiMSW": return new SSLiMSW<>(builder, cacheLoader, async);
case "SSLiMSWR": return new SSLiMSWR<>(builder, cacheLoader, async);
case "SSLiMW": return new SSLiMW<>(builder, cacheLoader, async);
case "SSLiMWA": return new SSLiMWA<>(builder, cacheLoader, async);
case "SSLiMWAR": return new SSLiMWAR<>(builder, cacheLoader, async);
case "SSLiMWAW": return new SSLiMWAW<>(builder, cacheLoader, async);
case "SSLiMWAWR": return new SSLiMWAWR<>(builder, cacheLoader, async);
case "SSLiMWR": return new SSLiMWR<>(builder, cacheLoader, async);
case "SSLiMWW": return new SSLiMWW<>(builder, cacheLoader, async);
case "SSLiMWWR": return new SSLiMWWR<>(builder, cacheLoader, async);
case "SSLiR": return new SSLiR<>(builder, cacheLoader, async);
case "SSLiS": return new SSLiS<>(builder, cacheLoader, async);
case "SSLiSA": return new SSLiSA<>(builder, cacheLoader, async);
case "SSLiSAR": return new SSLiSAR<>(builder, cacheLoader, async);
case "SSLiSAW": return new SSLiSAW<>(builder, cacheLoader, async);
case "SSLiSAWR": return new SSLiSAWR<>(builder, cacheLoader, async);
case "SSLiSMS": return new SSLiSMS<>(builder, cacheLoader, async);
case "SSLiSMSA": return new SSLiSMSA<>(builder, cacheLoader, async);
case "SSLiSMSAR": return new SSLiSMSAR<>(builder, cacheLoader, async);
case "SSLiSMSAW": return new SSLiSMSAW<>(builder, cacheLoader, async);
case "SSLiSMSAWR": return new SSLiSMSAWR<>(builder, cacheLoader, async);
case "SSLiSMSR": return new SSLiSMSR<>(builder, cacheLoader, async);
case "SSLiSMSW": return new SSLiSMSW<>(builder, cacheLoader, async);
case "SSLiSMSWR": return new SSLiSMSWR<>(builder, cacheLoader, async);
case "SSLiSMW": return new SSLiSMW<>(builder, cacheLoader, async);
case "SSLiSMWA": return new SSLiSMWA<>(builder, cacheLoader, async);
case "SSLiSMWAR": return new SSLiSMWAR<>(builder, cacheLoader, async);
case "SSLiSMWAW": return new SSLiSMWAW<>(builder, cacheLoader, async);
case "SSLiSMWAWR": return new SSLiSMWAWR<>(builder, cacheLoader, async);
case "SSLiSMWR": return new SSLiSMWR<>(builder, cacheLoader, async);
case "SSLiSMWW": return new SSLiSMWW<>(builder, cacheLoader, async);
case "SSLiSMWWR": return new SSLiSMWWR<>(builder, cacheLoader, async);
case "SSLiSR": return new SSLiSR<>(builder, cacheLoader, async);
case "SSLiSW": return new SSLiSW<>(builder, cacheLoader, async);
case "SSLiSWR": return new SSLiSWR<>(builder, cacheLoader, async);
case "SSLiW": return new SSLiW<>(builder, cacheLoader, async);
case "SSLiWR": return new SSLiWR<>(builder, cacheLoader, async);
case "SSMS": return new SSMS<>(builder, cacheLoader, async);
case "SSMSA": return new SSMSA<>(builder, cacheLoader, async);
case "SSMSAR": return new SSMSAR<>(builder, cacheLoader, async);
case "SSMSAW": return new SSMSAW<>(builder, cacheLoader, async);
case "SSMSAWR": return new SSMSAWR<>(builder, cacheLoader, async);
case "SSMSR": return new SSMSR<>(builder, cacheLoader, async);
case "SSMSW": return new SSMSW<>(builder, cacheLoader, async);
case "SSMSWR": return new SSMSWR<>(builder, cacheLoader, async);
case "SSMW": return new SSMW<>(builder, cacheLoader, async);
case "SSMWA": return new SSMWA<>(builder, cacheLoader, async);
case "SSMWAR": return new SSMWAR<>(builder, cacheLoader, async);
case "SSMWAW": return new SSMWAW<>(builder, cacheLoader, async);
case "SSMWAWR": return new SSMWAWR<>(builder, cacheLoader, async);
case "SSMWR": return new SSMWR<>(builder, cacheLoader, async);
case "SSMWW": return new SSMWW<>(builder, cacheLoader, async);
case "SSMWWR": return new SSMWWR<>(builder, cacheLoader, async);
case "SSR": return new SSR<>(builder, cacheLoader, async);
case "SSS": return new SSS<>(builder, cacheLoader, async);
case "SSSA": return new SSSA<>(builder, cacheLoader, async);
case "SSSAR": return new SSSAR<>(builder, cacheLoader, async);
case "SSSAW": return new SSSAW<>(builder, cacheLoader, async);
case "SSSAWR": return new SSSAWR<>(builder, cacheLoader, async);
case "SSSMS": return new SSSMS<>(builder, cacheLoader, async);
case "SSSMSA": return new SSSMSA<>(builder, cacheLoader, async);
case "SSSMSAR": return new SSSMSAR<>(builder, cacheLoader, async);
case "SSSMSAW": return new SSSMSAW<>(builder, cacheLoader, async);
case "SSSMSAWR": return new SSSMSAWR<>(builder, cacheLoader, async);
case "SSSMSR": return new SSSMSR<>(builder, cacheLoader, async);
case "SSSMSW": return new SSSMSW<>(builder, cacheLoader, async);
case "SSSMSWR": return new SSSMSWR<>(builder, cacheLoader, async);
case "SSSMW": return new SSSMW<>(builder, cacheLoader, async);
case "SSSMWA": return new SSSMWA<>(builder, cacheLoader, async);
case "SSSMWAR": return new SSSMWAR<>(builder, cacheLoader, async);
case "SSSMWAW": return new SSSMWAW<>(builder, cacheLoader, async);
case "SSSMWAWR": return new SSSMWAWR<>(builder, cacheLoader, async);
case "SSSMWR": return new SSSMWR<>(builder, cacheLoader, async);
case "SSSMWW": return new SSSMWW<>(builder, cacheLoader, async);
case "SSSMWWR": return new SSSMWWR<>(builder, cacheLoader, async);
case "SSSR": return new SSSR<>(builder, cacheLoader, async);
case "SSSW": return new SSSW<>(builder, cacheLoader, async);
case "SSSWR": return new SSSWR<>(builder, cacheLoader, async);
case "SSW": return new SSW<>(builder, cacheLoader, async);
case "SSWR": return new SSWR<>(builder, cacheLoader, async);
case "WI": return new WI<>(builder, cacheLoader, async);
case "WIA": return new WIA<>(builder, cacheLoader, async);
case "WIAR": return new WIAR<>(builder, cacheLoader, async);
case "WIAW": return new WIAW<>(builder, cacheLoader, async);
case "WIAWR": return new WIAWR<>(builder, cacheLoader, async);
case "WILi": return new WILi<>(builder, cacheLoader, async);
case "WILiA": return new WILiA<>(builder, cacheLoader, async);
case "WILiAR": return new WILiAR<>(builder, cacheLoader, async);
case "WILiAW": return new WILiAW<>(builder, cacheLoader, async);
case "WILiAWR": return new WILiAWR<>(builder, cacheLoader, async);
case "WILiMS": return new WILiMS<>(builder, cacheLoader, async);
case "WILiMSA": return new WILiMSA<>(builder, cacheLoader, async);
case "WILiMSAR": return new WILiMSAR<>(builder, cacheLoader, async);
case "WILiMSAW": return new WILiMSAW<>(builder, cacheLoader, async);
case "WILiMSAWR": return new WILiMSAWR<>(builder, cacheLoader, async);
case "WILiMSR": return new WILiMSR<>(builder, cacheLoader, async);
case "WILiMSW": return new WILiMSW<>(builder, cacheLoader, async);
case "WILiMSWR": return new WILiMSWR<>(builder, cacheLoader, async);
case "WILiMW": return new WILiMW<>(builder, cacheLoader, async);
case "WILiMWA": return new WILiMWA<>(builder, cacheLoader, async);
case "WILiMWAR": return new WILiMWAR<>(builder, cacheLoader, async);
case "WILiMWAW": return new WILiMWAW<>(builder, cacheLoader, async);
case "WILiMWAWR": return new WILiMWAWR<>(builder, cacheLoader, async);
case "WILiMWR": return new WILiMWR<>(builder, cacheLoader, async);
case "WILiMWW": return new WILiMWW<>(builder, cacheLoader, async);
case "WILiMWWR": return new WILiMWWR<>(builder, cacheLoader, async);
case "WILiR": return new WILiR<>(builder, cacheLoader, async);
case "WILiS": return new WILiS<>(builder, cacheLoader, async);
case "WILiSA": return new WILiSA<>(builder, cacheLoader, async);
case "WILiSAR": return new WILiSAR<>(builder, cacheLoader, async);
case "WILiSAW": return new WILiSAW<>(builder, cacheLoader, async);
case "WILiSAWR": return new WILiSAWR<>(builder, cacheLoader, async);
case "WILiSMS": return new WILiSMS<>(builder, cacheLoader, async);
case "WILiSMSA": return new WILiSMSA<>(builder, cacheLoader, async);
case "WILiSMSAR": return new WILiSMSAR<>(builder, cacheLoader, async);
case "WILiSMSAW": return new WILiSMSAW<>(builder, cacheLoader, async);
case "WILiSMSAWR": return new WILiSMSAWR<>(builder, cacheLoader, async);
case "WILiSMSR": return new WILiSMSR<>(builder, cacheLoader, async);
case "WILiSMSW": return new WILiSMSW<>(builder, cacheLoader, async);
case "WILiSMSWR": return new WILiSMSWR<>(builder, cacheLoader, async);
case "WILiSMW": return new WILiSMW<>(builder, cacheLoader, async);
case "WILiSMWA": return new WILiSMWA<>(builder, cacheLoader, async);
case "WILiSMWAR": return new WILiSMWAR<>(builder, cacheLoader, async);
case "WILiSMWAW": return new WILiSMWAW<>(builder, cacheLoader, async);
case "WILiSMWAWR": return new WILiSMWAWR<>(builder, cacheLoader, async);
case "WILiSMWR": return new WILiSMWR<>(builder, cacheLoader, async);
case "WILiSMWW": return new WILiSMWW<>(builder, cacheLoader, async);
case "WILiSMWWR": return new WILiSMWWR<>(builder, cacheLoader, async);
case "WILiSR": return new WILiSR<>(builder, cacheLoader, async);
case "WILiSW": return new WILiSW<>(builder, cacheLoader, async);
case "WILiSWR": return new WILiSWR<>(builder, cacheLoader, async);
case "WILiW": return new WILiW<>(builder, cacheLoader, async);
case "WILiWR": return new WILiWR<>(builder, cacheLoader, async);
case "WIMS": return new WIMS<>(builder, cacheLoader, async);
case "WIMSA": return new WIMSA<>(builder, cacheLoader, async);
case "WIMSAR": return new WIMSAR<>(builder, cacheLoader, async);
case "WIMSAW": return new WIMSAW<>(builder, cacheLoader, async);
case "WIMSAWR": return new WIMSAWR<>(builder, cacheLoader, async);
case "WIMSR": return new WIMSR<>(builder, cacheLoader, async);
case "WIMSW": return new WIMSW<>(builder, cacheLoader, async);
case "WIMSWR": return new WIMSWR<>(builder, cacheLoader, async);
case "WIMW": return new WIMW<>(builder, cacheLoader, async);
case "WIMWA": return new WIMWA<>(builder, cacheLoader, async);
case "WIMWAR": return new WIMWAR<>(builder, cacheLoader, async);
case "WIMWAW": return new WIMWAW<>(builder, cacheLoader, async);
case "WIMWAWR": return new WIMWAWR<>(builder, cacheLoader, async);
case "WIMWR": return new WIMWR<>(builder, cacheLoader, async);
case "WIMWW": return new WIMWW<>(builder, cacheLoader, async);
case "WIMWWR": return new WIMWWR<>(builder, cacheLoader, async);
case "WIR": return new WIR<>(builder, cacheLoader, async);
case "WIS": return new WIS<>(builder, cacheLoader, async);
case "WISA": return new WISA<>(builder, cacheLoader, async);
case "WISAR": return new WISAR<>(builder, cacheLoader, async);
case "WISAW": return new WISAW<>(builder, cacheLoader, async);
case "WISAWR": return new WISAWR<>(builder, cacheLoader, async);
case "WISMS": return new WISMS<>(builder, cacheLoader, async);
case "WISMSA": return new WISMSA<>(builder, cacheLoader, async);
case "WISMSAR": return new WISMSAR<>(builder, cacheLoader, async);
case "WISMSAW": return new WISMSAW<>(builder, cacheLoader, async);
case "WISMSAWR": return new WISMSAWR<>(builder, cacheLoader, async);
case "WISMSR": return new WISMSR<>(builder, cacheLoader, async);
case "WISMSW": return new WISMSW<>(builder, cacheLoader, async);
case "WISMSWR": return new WISMSWR<>(builder, cacheLoader, async);
case "WISMW": return new WISMW<>(builder, cacheLoader, async);
case "WISMWA": return new WISMWA<>(builder, cacheLoader, async);
case "WISMWAR": return new WISMWAR<>(builder, cacheLoader, async);
case "WISMWAW": return new WISMWAW<>(builder, cacheLoader, async);
case "WISMWAWR": return new WISMWAWR<>(builder, cacheLoader, async);
case "WISMWR": return new WISMWR<>(builder, cacheLoader, async);
case "WISMWW": return new WISMWW<>(builder, cacheLoader, async);
case "WISMWWR": return new WISMWWR<>(builder, cacheLoader, async);
case "WISR": return new WISR<>(builder, cacheLoader, async);
case "WISW": return new WISW<>(builder, cacheLoader, async);
case "WISWR": return new WISWR<>(builder, cacheLoader, async);
case "WIW": return new WIW<>(builder, cacheLoader, async);
case "WIWR": return new WIWR<>(builder, cacheLoader, async);
case "WS": return new WS<>(builder, cacheLoader, async);
case "WSA": return new WSA<>(builder, cacheLoader, async);
case "WSAR": return new WSAR<>(builder, cacheLoader, async);
case "WSAW": return new WSAW<>(builder, cacheLoader, async);
case "WSAWR": return new WSAWR<>(builder, cacheLoader, async);
case "WSLi": return new WSLi<>(builder, cacheLoader, async);
case "WSLiA": return new WSLiA<>(builder, cacheLoader, async);
case "WSLiAR": return new WSLiAR<>(builder, cacheLoader, async);
case "WSLiAW": return new WSLiAW<>(builder, cacheLoader, async);
case "WSLiAWR": return new WSLiAWR<>(builder, cacheLoader, async);
case "WSLiMS": return new WSLiMS<>(builder, cacheLoader, async);
case "WSLiMSA": return new WSLiMSA<>(builder, cacheLoader, async);
case "WSLiMSAR": return new WSLiMSAR<>(builder, cacheLoader, async);
case "WSLiMSAW": return new WSLiMSAW<>(builder, cacheLoader, async);
case "WSLiMSAWR": return new WSLiMSAWR<>(builder, cacheLoader, async);
case "WSLiMSR": return new WSLiMSR<>(builder, cacheLoader, async);
case "WSLiMSW": return new WSLiMSW<>(builder, cacheLoader, async);
case "WSLiMSWR": return new WSLiMSWR<>(builder, cacheLoader, async);
case "WSLiMW": return new WSLiMW<>(builder, cacheLoader, async);
case "WSLiMWA": return new WSLiMWA<>(builder, cacheLoader, async);
case "WSLiMWAR": return new WSLiMWAR<>(builder, cacheLoader, async);
case "WSLiMWAW": return new WSLiMWAW<>(builder, cacheLoader, async);
case "WSLiMWAWR": return new WSLiMWAWR<>(builder, cacheLoader, async);
case "WSLiMWR": return new WSLiMWR<>(builder, cacheLoader, async);
case "WSLiMWW": return new WSLiMWW<>(builder, cacheLoader, async);
case "WSLiMWWR": return new WSLiMWWR<>(builder, cacheLoader, async);
case "WSLiR": return new WSLiR<>(builder, cacheLoader, async);
case "WSLiS": return new WSLiS<>(builder, cacheLoader, async);
case "WSLiSA": return new WSLiSA<>(builder, cacheLoader, async);
case "WSLiSAR": return new WSLiSAR<>(builder, cacheLoader, async);
case "WSLiSAW": return new WSLiSAW<>(builder, cacheLoader, async);
case "WSLiSAWR": return new WSLiSAWR<>(builder, cacheLoader, async);
case "WSLiSMS": return new WSLiSMS<>(builder, cacheLoader, async);
case "WSLiSMSA": return new WSLiSMSA<>(builder, cacheLoader, async);
case "WSLiSMSAR": return new WSLiSMSAR<>(builder, cacheLoader, async);
case "WSLiSMSAW": return new WSLiSMSAW<>(builder, cacheLoader, async);
case "WSLiSMSAWR": return new WSLiSMSAWR<>(builder, cacheLoader, async);
case "WSLiSMSR": return new WSLiSMSR<>(builder, cacheLoader, async);
case "WSLiSMSW": return new WSLiSMSW<>(builder, cacheLoader, async);
case "WSLiSMSWR": return new WSLiSMSWR<>(builder, cacheLoader, async);
case "WSLiSMW": return new WSLiSMW<>(builder, cacheLoader, async);
case "WSLiSMWA": return new WSLiSMWA<>(builder, cacheLoader, async);
case "WSLiSMWAR": return new WSLiSMWAR<>(builder, cacheLoader, async);
case "WSLiSMWAW": return new WSLiSMWAW<>(builder, cacheLoader, async);
case "WSLiSMWAWR": return new WSLiSMWAWR<>(builder, cacheLoader, async);
case "WSLiSMWR": return new WSLiSMWR<>(builder, cacheLoader, async);
case "WSLiSMWW": return new WSLiSMWW<>(builder, cacheLoader, async);
case "WSLiSMWWR": return new WSLiSMWWR<>(builder, cacheLoader, async);
case "WSLiSR": return new WSLiSR<>(builder, cacheLoader, async);
case "WSLiSW": return new WSLiSW<>(builder, cacheLoader, async);
case "WSLiSWR": return new WSLiSWR<>(builder, cacheLoader, async);
case "WSLiW": return new WSLiW<>(builder, cacheLoader, async);
case "WSLiWR": return new WSLiWR<>(builder, cacheLoader, async);
case "WSMS": return new WSMS<>(builder, cacheLoader, async);
case "WSMSA": return new WSMSA<>(builder, cacheLoader, async);
case "WSMSAR": return new WSMSAR<>(builder, cacheLoader, async);
case "WSMSAW": return new WSMSAW<>(builder, cacheLoader, async);
case "WSMSAWR": return new WSMSAWR<>(builder, cacheLoader, async);
case "WSMSR": return new WSMSR<>(builder, cacheLoader, async);
case "WSMSW": return new WSMSW<>(builder, cacheLoader, async);
case "WSMSWR": return new WSMSWR<>(builder, cacheLoader, async);
case "WSMW": return new WSMW<>(builder, cacheLoader, async);
case "WSMWA": return new WSMWA<>(builder, cacheLoader, async);
case "WSMWAR": return new WSMWAR<>(builder, cacheLoader, async);
case "WSMWAW": return new WSMWAW<>(builder, cacheLoader, async);
case "WSMWAWR": return new WSMWAWR<>(builder, cacheLoader, async);
case "WSMWR": return new WSMWR<>(builder, cacheLoader, async);
case "WSMWW": return new WSMWW<>(builder, cacheLoader, async);
case "WSMWWR": return new WSMWWR<>(builder, cacheLoader, async);
case "WSR": return new WSR<>(builder, cacheLoader, async);
case "WSS": return new WSS<>(builder, cacheLoader, async);
case "WSSA": return new WSSA<>(builder, cacheLoader, async);
case "WSSAR": return new WSSAR<>(builder, cacheLoader, async);
case "WSSAW": return new WSSAW<>(builder, cacheLoader, async);
case "WSSAWR": return new WSSAWR<>(builder, cacheLoader, async);
case "WSSMS": return new WSSMS<>(builder, cacheLoader, async);
case "WSSMSA": return new WSSMSA<>(builder, cacheLoader, async);
case "WSSMSAR": return new WSSMSAR<>(builder, cacheLoader, async);
case "WSSMSAW": return new WSSMSAW<>(builder, cacheLoader, async);
case "WSSMSAWR": return new WSSMSAWR<>(builder, cacheLoader, async);
case "WSSMSR": return new WSSMSR<>(builder, cacheLoader, async);
case "WSSMSW": return new WSSMSW<>(builder, cacheLoader, async);
case "WSSMSWR": return new WSSMSWR<>(builder, cacheLoader, async);
case "WSSMW": return new WSSMW<>(builder, cacheLoader, async);
case "WSSMWA": return new WSSMWA<>(builder, cacheLoader, async);
case "WSSMWAR": return new WSSMWAR<>(builder, cacheLoader, async);
case "WSSMWAW": return new WSSMWAW<>(builder, cacheLoader, async);
case "WSSMWAWR": return new WSSMWAWR<>(builder, cacheLoader, async);
case "WSSMWR": return new WSSMWR<>(builder, cacheLoader, async);
case "WSSMWW": return new WSSMWW<>(builder, cacheLoader, async);
case "WSSMWWR": return new WSSMWWR<>(builder, cacheLoader, async);
case "WSSR": return new WSSR<>(builder, cacheLoader, async);
case "WSSW": return new WSSW<>(builder, cacheLoader, async);
case "WSSWR": return new WSSWR<>(builder, cacheLoader, async);
case "WSW": return new WSW<>(builder, cacheLoader, async);
case "WSWR": return new WSWR<>(builder, cacheLoader, async);
default: throw new IllegalStateException(sb.toString());
}
}
static class SI extends BoundedLocalCache {
private final ReferenceQueue valueReferenceQueue = new ReferenceQueue();
SI(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
}
protected final ReferenceQueue valueReferenceQueue() {
return valueReferenceQueue;
}
protected final boolean collectValues() {
return true;
}
}
static class SIA extends SI {
private final Ticker ticker;
private final AccessOrderDeque> accessOrderEdenDeque;
private volatile long expiresAfterAccessNanos;
private final WriteBuffer writeBuffer;
SIA(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.ticker = builder.getTicker();
this.accessOrderEdenDeque = new AccessOrderDeque>();
this.expiresAfterAccessNanos = builder.getExpiresAfterAccessNanos();
this.writeBuffer = new WriteBuffer<>(WRITE_BUFFER_MIN, WRITE_BUFFER_MAX);
}
public final Ticker expirationTicker() {
return ticker;
}
protected final AccessOrderDeque> accessOrderEdenDeque() {
return accessOrderEdenDeque;
}
protected final boolean expiresAfterAccess() {
return true;
}
protected final long expiresAfterAccessNanos() {
return expiresAfterAccessNanos;
}
protected final void setExpiresAfterAccessNanos(long expiresAfterAccessNanos) {
this.expiresAfterAccessNanos = expiresAfterAccessNanos;
}
protected final WriteBuffer writeBuffer() {
return writeBuffer;
}
protected final boolean buffersWrites() {
return true;
}
}
static final class SIAR extends SIA {
private volatile long refreshAfterWriteNanos;
SIAR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static class SIAW extends SIA {
private final WriteOrderDeque> writeOrderDeque;
private volatile long expiresAfterWriteNanos;
SIAW(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.writeOrderDeque = new WriteOrderDeque>();
this.expiresAfterWriteNanos = builder.getExpiresAfterWriteNanos();
}
protected final WriteOrderDeque> writeOrderDeque() {
return writeOrderDeque;
}
protected final boolean expiresAfterWrite() {
return true;
}
protected final long expiresAfterWriteNanos() {
return expiresAfterWriteNanos;
}
protected final void setExpiresAfterWriteNanos(long expiresAfterWriteNanos) {
this.expiresAfterWriteNanos = expiresAfterWriteNanos;
}
}
static final class SIAWR extends SIAW {
private volatile long refreshAfterWriteNanos;
SIAWR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static class SILi extends SI {
private final RemovalListener removalListener;
SILi(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.removalListener = builder.getRemovalListener(async);
}
public final RemovalListener removalListener() {
return removalListener;
}
public final boolean hasRemovalListener() {
return true;
}
}
static class SILiA extends SILi {
private final Ticker ticker;
private final AccessOrderDeque> accessOrderEdenDeque;
private volatile long expiresAfterAccessNanos;
private final WriteBuffer writeBuffer;
SILiA(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.ticker = builder.getTicker();
this.accessOrderEdenDeque = new AccessOrderDeque>();
this.expiresAfterAccessNanos = builder.getExpiresAfterAccessNanos();
this.writeBuffer = new WriteBuffer<>(WRITE_BUFFER_MIN, WRITE_BUFFER_MAX);
}
public final Ticker expirationTicker() {
return ticker;
}
protected final AccessOrderDeque> accessOrderEdenDeque() {
return accessOrderEdenDeque;
}
protected final boolean expiresAfterAccess() {
return true;
}
protected final long expiresAfterAccessNanos() {
return expiresAfterAccessNanos;
}
protected final void setExpiresAfterAccessNanos(long expiresAfterAccessNanos) {
this.expiresAfterAccessNanos = expiresAfterAccessNanos;
}
protected final WriteBuffer writeBuffer() {
return writeBuffer;
}
protected final boolean buffersWrites() {
return true;
}
}
static final class SILiAR extends SILiA {
private volatile long refreshAfterWriteNanos;
SILiAR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static class SILiAW extends SILiA {
private final WriteOrderDeque> writeOrderDeque;
private volatile long expiresAfterWriteNanos;
SILiAW(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.writeOrderDeque = new WriteOrderDeque>();
this.expiresAfterWriteNanos = builder.getExpiresAfterWriteNanos();
}
protected final WriteOrderDeque> writeOrderDeque() {
return writeOrderDeque;
}
protected final boolean expiresAfterWrite() {
return true;
}
protected final long expiresAfterWriteNanos() {
return expiresAfterWriteNanos;
}
protected final void setExpiresAfterWriteNanos(long expiresAfterWriteNanos) {
this.expiresAfterWriteNanos = expiresAfterWriteNanos;
}
}
static final class SILiAWR extends SILiAW {
private volatile long refreshAfterWriteNanos;
SILiAWR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static class SILiMS extends SILi {
protected static final long MAXIMUM_OFFSET = UnsafeAccess.objectFieldOffset(SILiMS.class, "maximum");
protected static final long EDEN_MAXIMUM_OFFSET = UnsafeAccess.objectFieldOffset(SILiMS.class, "edenMaximum");
protected static final long MAIN_PROTECTED_MAXIMUM_OFFSET = UnsafeAccess.objectFieldOffset(SILiMS.class, "mainProtectedMaximum");
protected static final long WEIGHTED_SIZE_OFFSET = UnsafeAccess.objectFieldOffset(SILiMS.class, "weightedSize");
protected static final long EDEN_WEIGHTED_SIZE_OFFSET = UnsafeAccess.objectFieldOffset(SILiMS.class, "edenWeightedSize");
protected static final long MAIN_PROTECTED_WEIGHTED_SIZE_OFFSET = UnsafeAccess.objectFieldOffset(SILiMS.class, "mainProtectedWeightedSize");
private volatile long maximum;
private volatile long edenMaximum;
private volatile long mainProtectedMaximum;
private volatile long weightedSize;
private volatile long edenWeightedSize;
private volatile long mainProtectedWeightedSize;
private final FrequencySketch sketch;
private final AccessOrderDeque> accessOrderEdenDeque;
private final AccessOrderDeque> accessOrderProbationDeque;
private final AccessOrderDeque> accessOrderProtectedDeque;
private final WriteBuffer writeBuffer;
SILiMS(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.sketch = new FrequencySketch();
if (builder.hasInitialCapacity()) {
long capacity = Math.min(builder.getMaximum(), builder.getInitialCapacity());
this.sketch.ensureCapacity(capacity);
}
this.accessOrderEdenDeque = new AccessOrderDeque>();
this.accessOrderProbationDeque = new AccessOrderDeque>();
this.accessOrderProtectedDeque = new AccessOrderDeque>();
this.writeBuffer = new WriteBuffer<>(WRITE_BUFFER_MIN, WRITE_BUFFER_MAX);
}
protected final boolean evicts() {
return true;
}
protected final long maximum() {
return UnsafeAccess.UNSAFE.getLong(this, MAXIMUM_OFFSET);
}
protected final void lazySetMaximum(long maximum) {
UnsafeAccess.UNSAFE.putLong(this, MAXIMUM_OFFSET, maximum);
}
protected final long edenMaximum() {
return UnsafeAccess.UNSAFE.getLong(this, EDEN_MAXIMUM_OFFSET);
}
protected final void lazySetEdenMaximum(long edenMaximum) {
UnsafeAccess.UNSAFE.putLong(this, EDEN_MAXIMUM_OFFSET, edenMaximum);
}
protected final long mainProtectedMaximum() {
return UnsafeAccess.UNSAFE.getLong(this, MAIN_PROTECTED_MAXIMUM_OFFSET);
}
protected final void lazySetMainProtectedMaximum(long mainProtectedMaximum) {
UnsafeAccess.UNSAFE.putLong(this, MAIN_PROTECTED_MAXIMUM_OFFSET, mainProtectedMaximum);
}
protected final long weightedSize() {
return UnsafeAccess.UNSAFE.getLong(this, WEIGHTED_SIZE_OFFSET);
}
protected final void lazySetWeightedSize(long weightedSize) {
UnsafeAccess.UNSAFE.putLong(this, WEIGHTED_SIZE_OFFSET, weightedSize);
}
protected final long edenWeightedSize() {
return UnsafeAccess.UNSAFE.getLong(this, EDEN_WEIGHTED_SIZE_OFFSET);
}
protected final void lazySetEdenWeightedSize(long edenWeightedSize) {
UnsafeAccess.UNSAFE.putLong(this, EDEN_WEIGHTED_SIZE_OFFSET, edenWeightedSize);
}
protected final long mainProtectedWeightedSize() {
return UnsafeAccess.UNSAFE.getLong(this, MAIN_PROTECTED_WEIGHTED_SIZE_OFFSET);
}
protected final void lazySetMainProtectedWeightedSize(long mainProtectedWeightedSize) {
UnsafeAccess.UNSAFE.putLong(this, MAIN_PROTECTED_WEIGHTED_SIZE_OFFSET, mainProtectedWeightedSize);
}
protected final FrequencySketch frequencySketch() {
return sketch;
}
protected final AccessOrderDeque> accessOrderEdenDeque() {
return accessOrderEdenDeque;
}
protected final AccessOrderDeque> accessOrderProbationDeque() {
return accessOrderProbationDeque;
}
protected final AccessOrderDeque> accessOrderProtectedDeque() {
return accessOrderProtectedDeque;
}
protected final WriteBuffer writeBuffer() {
return writeBuffer;
}
protected final boolean buffersWrites() {
return true;
}
}
static class SILiMSA extends SILiMS {
private final Ticker ticker;
private volatile long expiresAfterAccessNanos;
SILiMSA(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.ticker = builder.getTicker();
this.expiresAfterAccessNanos = builder.getExpiresAfterAccessNanos();
}
public final Ticker expirationTicker() {
return ticker;
}
protected final boolean expiresAfterAccess() {
return true;
}
protected final long expiresAfterAccessNanos() {
return expiresAfterAccessNanos;
}
protected final void setExpiresAfterAccessNanos(long expiresAfterAccessNanos) {
this.expiresAfterAccessNanos = expiresAfterAccessNanos;
}
}
static final class SILiMSAR extends SILiMSA {
private volatile long refreshAfterWriteNanos;
SILiMSAR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static class SILiMSAW extends SILiMSA {
private final WriteOrderDeque> writeOrderDeque;
private volatile long expiresAfterWriteNanos;
SILiMSAW(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.writeOrderDeque = new WriteOrderDeque>();
this.expiresAfterWriteNanos = builder.getExpiresAfterWriteNanos();
}
protected final WriteOrderDeque> writeOrderDeque() {
return writeOrderDeque;
}
protected final boolean expiresAfterWrite() {
return true;
}
protected final long expiresAfterWriteNanos() {
return expiresAfterWriteNanos;
}
protected final void setExpiresAfterWriteNanos(long expiresAfterWriteNanos) {
this.expiresAfterWriteNanos = expiresAfterWriteNanos;
}
}
static final class SILiMSAWR extends SILiMSAW {
private volatile long refreshAfterWriteNanos;
SILiMSAWR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static final class SILiMSR extends SILiMS {
private final Ticker ticker;
private volatile long refreshAfterWriteNanos;
SILiMSR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.ticker = builder.getTicker();
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
public final Ticker expirationTicker() {
return ticker;
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static class SILiMSW extends SILiMS {
private final Ticker ticker;
private final WriteOrderDeque> writeOrderDeque;
private volatile long expiresAfterWriteNanos;
SILiMSW(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.ticker = builder.getTicker();
this.writeOrderDeque = new WriteOrderDeque>();
this.expiresAfterWriteNanos = builder.getExpiresAfterWriteNanos();
}
public final Ticker expirationTicker() {
return ticker;
}
protected final WriteOrderDeque> writeOrderDeque() {
return writeOrderDeque;
}
protected final boolean expiresAfterWrite() {
return true;
}
protected final long expiresAfterWriteNanos() {
return expiresAfterWriteNanos;
}
protected final void setExpiresAfterWriteNanos(long expiresAfterWriteNanos) {
this.expiresAfterWriteNanos = expiresAfterWriteNanos;
}
}
static final class SILiMSWR extends SILiMSW {
private volatile long refreshAfterWriteNanos;
SILiMSWR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static class SILiMW extends SILi {
protected static final long MAXIMUM_OFFSET = UnsafeAccess.objectFieldOffset(SILiMW.class, "maximum");
protected static final long EDEN_MAXIMUM_OFFSET = UnsafeAccess.objectFieldOffset(SILiMW.class, "edenMaximum");
protected static final long MAIN_PROTECTED_MAXIMUM_OFFSET = UnsafeAccess.objectFieldOffset(SILiMW.class, "mainProtectedMaximum");
protected static final long WEIGHTED_SIZE_OFFSET = UnsafeAccess.objectFieldOffset(SILiMW.class, "weightedSize");
protected static final long EDEN_WEIGHTED_SIZE_OFFSET = UnsafeAccess.objectFieldOffset(SILiMW.class, "edenWeightedSize");
protected static final long MAIN_PROTECTED_WEIGHTED_SIZE_OFFSET = UnsafeAccess.objectFieldOffset(SILiMW.class, "mainProtectedWeightedSize");
private volatile long maximum;
private volatile long edenMaximum;
private volatile long mainProtectedMaximum;
private volatile long weightedSize;
private volatile long edenWeightedSize;
private volatile long mainProtectedWeightedSize;
private final FrequencySketch sketch;
private final AccessOrderDeque> accessOrderEdenDeque;
private final AccessOrderDeque> accessOrderProbationDeque;
private final AccessOrderDeque> accessOrderProtectedDeque;
private final WriteBuffer writeBuffer;
SILiMW(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.sketch = new FrequencySketch();
if (builder.hasInitialCapacity()) {
long capacity = Math.min(builder.getMaximum(), builder.getInitialCapacity());
this.sketch.ensureCapacity(capacity);
}
this.accessOrderEdenDeque = new AccessOrderDeque>();
this.accessOrderProbationDeque = new AccessOrderDeque>();
this.accessOrderProtectedDeque = new AccessOrderDeque>();
this.writeBuffer = new WriteBuffer<>(WRITE_BUFFER_MIN, WRITE_BUFFER_MAX);
}
protected final boolean evicts() {
return true;
}
protected final long maximum() {
return UnsafeAccess.UNSAFE.getLong(this, MAXIMUM_OFFSET);
}
protected final void lazySetMaximum(long maximum) {
UnsafeAccess.UNSAFE.putLong(this, MAXIMUM_OFFSET, maximum);
}
protected final long edenMaximum() {
return UnsafeAccess.UNSAFE.getLong(this, EDEN_MAXIMUM_OFFSET);
}
protected final void lazySetEdenMaximum(long edenMaximum) {
UnsafeAccess.UNSAFE.putLong(this, EDEN_MAXIMUM_OFFSET, edenMaximum);
}
protected final long mainProtectedMaximum() {
return UnsafeAccess.UNSAFE.getLong(this, MAIN_PROTECTED_MAXIMUM_OFFSET);
}
protected final void lazySetMainProtectedMaximum(long mainProtectedMaximum) {
UnsafeAccess.UNSAFE.putLong(this, MAIN_PROTECTED_MAXIMUM_OFFSET, mainProtectedMaximum);
}
protected final long weightedSize() {
return UnsafeAccess.UNSAFE.getLong(this, WEIGHTED_SIZE_OFFSET);
}
protected final void lazySetWeightedSize(long weightedSize) {
UnsafeAccess.UNSAFE.putLong(this, WEIGHTED_SIZE_OFFSET, weightedSize);
}
protected final long edenWeightedSize() {
return UnsafeAccess.UNSAFE.getLong(this, EDEN_WEIGHTED_SIZE_OFFSET);
}
protected final void lazySetEdenWeightedSize(long edenWeightedSize) {
UnsafeAccess.UNSAFE.putLong(this, EDEN_WEIGHTED_SIZE_OFFSET, edenWeightedSize);
}
protected final long mainProtectedWeightedSize() {
return UnsafeAccess.UNSAFE.getLong(this, MAIN_PROTECTED_WEIGHTED_SIZE_OFFSET);
}
protected final void lazySetMainProtectedWeightedSize(long mainProtectedWeightedSize) {
UnsafeAccess.UNSAFE.putLong(this, MAIN_PROTECTED_WEIGHTED_SIZE_OFFSET, mainProtectedWeightedSize);
}
protected final FrequencySketch frequencySketch() {
return sketch;
}
protected final AccessOrderDeque> accessOrderEdenDeque() {
return accessOrderEdenDeque;
}
protected final AccessOrderDeque> accessOrderProbationDeque() {
return accessOrderProbationDeque;
}
protected final AccessOrderDeque> accessOrderProtectedDeque() {
return accessOrderProtectedDeque;
}
protected final WriteBuffer writeBuffer() {
return writeBuffer;
}
protected final boolean buffersWrites() {
return true;
}
}
static class SILiMWA extends SILiMW {
private final Ticker ticker;
private volatile long expiresAfterAccessNanos;
SILiMWA(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.ticker = builder.getTicker();
this.expiresAfterAccessNanos = builder.getExpiresAfterAccessNanos();
}
public final Ticker expirationTicker() {
return ticker;
}
protected final boolean expiresAfterAccess() {
return true;
}
protected final long expiresAfterAccessNanos() {
return expiresAfterAccessNanos;
}
protected final void setExpiresAfterAccessNanos(long expiresAfterAccessNanos) {
this.expiresAfterAccessNanos = expiresAfterAccessNanos;
}
}
static final class SILiMWAR extends SILiMWA {
private volatile long refreshAfterWriteNanos;
SILiMWAR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static class SILiMWAW extends SILiMWA {
private final WriteOrderDeque> writeOrderDeque;
private volatile long expiresAfterWriteNanos;
SILiMWAW(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.writeOrderDeque = new WriteOrderDeque>();
this.expiresAfterWriteNanos = builder.getExpiresAfterWriteNanos();
}
protected final WriteOrderDeque> writeOrderDeque() {
return writeOrderDeque;
}
protected final boolean expiresAfterWrite() {
return true;
}
protected final long expiresAfterWriteNanos() {
return expiresAfterWriteNanos;
}
protected final void setExpiresAfterWriteNanos(long expiresAfterWriteNanos) {
this.expiresAfterWriteNanos = expiresAfterWriteNanos;
}
}
static final class SILiMWAWR extends SILiMWAW {
private volatile long refreshAfterWriteNanos;
SILiMWAWR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static final class SILiMWR extends SILiMW {
private final Ticker ticker;
private volatile long refreshAfterWriteNanos;
SILiMWR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.ticker = builder.getTicker();
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
public final Ticker expirationTicker() {
return ticker;
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static class SILiMWW extends SILiMW {
private final Ticker ticker;
private final WriteOrderDeque> writeOrderDeque;
private volatile long expiresAfterWriteNanos;
SILiMWW(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.ticker = builder.getTicker();
this.writeOrderDeque = new WriteOrderDeque>();
this.expiresAfterWriteNanos = builder.getExpiresAfterWriteNanos();
}
public final Ticker expirationTicker() {
return ticker;
}
protected final WriteOrderDeque> writeOrderDeque() {
return writeOrderDeque;
}
protected final boolean expiresAfterWrite() {
return true;
}
protected final long expiresAfterWriteNanos() {
return expiresAfterWriteNanos;
}
protected final void setExpiresAfterWriteNanos(long expiresAfterWriteNanos) {
this.expiresAfterWriteNanos = expiresAfterWriteNanos;
}
}
static final class SILiMWWR extends SILiMWW {
private volatile long refreshAfterWriteNanos;
SILiMWWR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static final class SILiR extends SILi {
private final Ticker ticker;
private volatile long refreshAfterWriteNanos;
private final WriteBuffer writeBuffer;
SILiR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.ticker = builder.getTicker();
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
this.writeBuffer = new WriteBuffer<>(WRITE_BUFFER_MIN, WRITE_BUFFER_MAX);
}
public final Ticker expirationTicker() {
return ticker;
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
protected final WriteBuffer writeBuffer() {
return writeBuffer;
}
protected final boolean buffersWrites() {
return true;
}
}
static class SILiS extends SILi {
private final StatsCounter statsCounter;
SILiS(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.statsCounter = builder.getStatsCounterSupplier().get();
}
public final boolean isRecordingStats() {
return true;
}
public final Ticker statsTicker() {
return Ticker.systemTicker();
}
public final StatsCounter statsCounter() {
return statsCounter;
}
}
static class SILiSA extends SILiS {
private final Ticker ticker;
private final AccessOrderDeque> accessOrderEdenDeque;
private volatile long expiresAfterAccessNanos;
private final WriteBuffer writeBuffer;
SILiSA(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.ticker = builder.getTicker();
this.accessOrderEdenDeque = new AccessOrderDeque>();
this.expiresAfterAccessNanos = builder.getExpiresAfterAccessNanos();
this.writeBuffer = new WriteBuffer<>(WRITE_BUFFER_MIN, WRITE_BUFFER_MAX);
}
public final Ticker expirationTicker() {
return ticker;
}
protected final AccessOrderDeque> accessOrderEdenDeque() {
return accessOrderEdenDeque;
}
protected final boolean expiresAfterAccess() {
return true;
}
protected final long expiresAfterAccessNanos() {
return expiresAfterAccessNanos;
}
protected final void setExpiresAfterAccessNanos(long expiresAfterAccessNanos) {
this.expiresAfterAccessNanos = expiresAfterAccessNanos;
}
protected final WriteBuffer writeBuffer() {
return writeBuffer;
}
protected final boolean buffersWrites() {
return true;
}
}
static final class SILiSAR extends SILiSA {
private volatile long refreshAfterWriteNanos;
SILiSAR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static class SILiSAW extends SILiSA {
private final WriteOrderDeque> writeOrderDeque;
private volatile long expiresAfterWriteNanos;
SILiSAW(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.writeOrderDeque = new WriteOrderDeque>();
this.expiresAfterWriteNanos = builder.getExpiresAfterWriteNanos();
}
protected final WriteOrderDeque> writeOrderDeque() {
return writeOrderDeque;
}
protected final boolean expiresAfterWrite() {
return true;
}
protected final long expiresAfterWriteNanos() {
return expiresAfterWriteNanos;
}
protected final void setExpiresAfterWriteNanos(long expiresAfterWriteNanos) {
this.expiresAfterWriteNanos = expiresAfterWriteNanos;
}
}
static final class SILiSAWR extends SILiSAW {
private volatile long refreshAfterWriteNanos;
SILiSAWR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static class SILiSMS extends SILiS {
protected static final long MAXIMUM_OFFSET = UnsafeAccess.objectFieldOffset(SILiSMS.class, "maximum");
protected static final long EDEN_MAXIMUM_OFFSET = UnsafeAccess.objectFieldOffset(SILiSMS.class, "edenMaximum");
protected static final long MAIN_PROTECTED_MAXIMUM_OFFSET = UnsafeAccess.objectFieldOffset(SILiSMS.class, "mainProtectedMaximum");
protected static final long WEIGHTED_SIZE_OFFSET = UnsafeAccess.objectFieldOffset(SILiSMS.class, "weightedSize");
protected static final long EDEN_WEIGHTED_SIZE_OFFSET = UnsafeAccess.objectFieldOffset(SILiSMS.class, "edenWeightedSize");
protected static final long MAIN_PROTECTED_WEIGHTED_SIZE_OFFSET = UnsafeAccess.objectFieldOffset(SILiSMS.class, "mainProtectedWeightedSize");
private volatile long maximum;
private volatile long edenMaximum;
private volatile long mainProtectedMaximum;
private volatile long weightedSize;
private volatile long edenWeightedSize;
private volatile long mainProtectedWeightedSize;
private final FrequencySketch sketch;
private final AccessOrderDeque> accessOrderEdenDeque;
private final AccessOrderDeque> accessOrderProbationDeque;
private final AccessOrderDeque> accessOrderProtectedDeque;
private final WriteBuffer writeBuffer;
SILiSMS(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.sketch = new FrequencySketch();
if (builder.hasInitialCapacity()) {
long capacity = Math.min(builder.getMaximum(), builder.getInitialCapacity());
this.sketch.ensureCapacity(capacity);
}
this.accessOrderEdenDeque = new AccessOrderDeque>();
this.accessOrderProbationDeque = new AccessOrderDeque>();
this.accessOrderProtectedDeque = new AccessOrderDeque>();
this.writeBuffer = new WriteBuffer<>(WRITE_BUFFER_MIN, WRITE_BUFFER_MAX);
}
protected final boolean evicts() {
return true;
}
protected final long maximum() {
return UnsafeAccess.UNSAFE.getLong(this, MAXIMUM_OFFSET);
}
protected final void lazySetMaximum(long maximum) {
UnsafeAccess.UNSAFE.putLong(this, MAXIMUM_OFFSET, maximum);
}
protected final long edenMaximum() {
return UnsafeAccess.UNSAFE.getLong(this, EDEN_MAXIMUM_OFFSET);
}
protected final void lazySetEdenMaximum(long edenMaximum) {
UnsafeAccess.UNSAFE.putLong(this, EDEN_MAXIMUM_OFFSET, edenMaximum);
}
protected final long mainProtectedMaximum() {
return UnsafeAccess.UNSAFE.getLong(this, MAIN_PROTECTED_MAXIMUM_OFFSET);
}
protected final void lazySetMainProtectedMaximum(long mainProtectedMaximum) {
UnsafeAccess.UNSAFE.putLong(this, MAIN_PROTECTED_MAXIMUM_OFFSET, mainProtectedMaximum);
}
protected final long weightedSize() {
return UnsafeAccess.UNSAFE.getLong(this, WEIGHTED_SIZE_OFFSET);
}
protected final void lazySetWeightedSize(long weightedSize) {
UnsafeAccess.UNSAFE.putLong(this, WEIGHTED_SIZE_OFFSET, weightedSize);
}
protected final long edenWeightedSize() {
return UnsafeAccess.UNSAFE.getLong(this, EDEN_WEIGHTED_SIZE_OFFSET);
}
protected final void lazySetEdenWeightedSize(long edenWeightedSize) {
UnsafeAccess.UNSAFE.putLong(this, EDEN_WEIGHTED_SIZE_OFFSET, edenWeightedSize);
}
protected final long mainProtectedWeightedSize() {
return UnsafeAccess.UNSAFE.getLong(this, MAIN_PROTECTED_WEIGHTED_SIZE_OFFSET);
}
protected final void lazySetMainProtectedWeightedSize(long mainProtectedWeightedSize) {
UnsafeAccess.UNSAFE.putLong(this, MAIN_PROTECTED_WEIGHTED_SIZE_OFFSET, mainProtectedWeightedSize);
}
protected final FrequencySketch frequencySketch() {
return sketch;
}
protected final AccessOrderDeque> accessOrderEdenDeque() {
return accessOrderEdenDeque;
}
protected final AccessOrderDeque> accessOrderProbationDeque() {
return accessOrderProbationDeque;
}
protected final AccessOrderDeque> accessOrderProtectedDeque() {
return accessOrderProtectedDeque;
}
protected final WriteBuffer writeBuffer() {
return writeBuffer;
}
protected final boolean buffersWrites() {
return true;
}
}
static class SILiSMSA extends SILiSMS {
private final Ticker ticker;
private volatile long expiresAfterAccessNanos;
SILiSMSA(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.ticker = builder.getTicker();
this.expiresAfterAccessNanos = builder.getExpiresAfterAccessNanos();
}
public final Ticker expirationTicker() {
return ticker;
}
protected final boolean expiresAfterAccess() {
return true;
}
protected final long expiresAfterAccessNanos() {
return expiresAfterAccessNanos;
}
protected final void setExpiresAfterAccessNanos(long expiresAfterAccessNanos) {
this.expiresAfterAccessNanos = expiresAfterAccessNanos;
}
}
static final class SILiSMSAR extends SILiSMSA {
private volatile long refreshAfterWriteNanos;
SILiSMSAR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static class SILiSMSAW extends SILiSMSA {
private final WriteOrderDeque> writeOrderDeque;
private volatile long expiresAfterWriteNanos;
SILiSMSAW(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.writeOrderDeque = new WriteOrderDeque>();
this.expiresAfterWriteNanos = builder.getExpiresAfterWriteNanos();
}
protected final WriteOrderDeque> writeOrderDeque() {
return writeOrderDeque;
}
protected final boolean expiresAfterWrite() {
return true;
}
protected final long expiresAfterWriteNanos() {
return expiresAfterWriteNanos;
}
protected final void setExpiresAfterWriteNanos(long expiresAfterWriteNanos) {
this.expiresAfterWriteNanos = expiresAfterWriteNanos;
}
}
static final class SILiSMSAWR extends SILiSMSAW {
private volatile long refreshAfterWriteNanos;
SILiSMSAWR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static final class SILiSMSR extends SILiSMS {
private final Ticker ticker;
private volatile long refreshAfterWriteNanos;
SILiSMSR(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.ticker = builder.getTicker();
this.refreshAfterWriteNanos = builder.getRefreshAfterWriteNanos();
}
public final Ticker expirationTicker() {
return ticker;
}
protected final boolean refreshAfterWrite() {
return true;
}
protected final long refreshAfterWriteNanos() {
return refreshAfterWriteNanos;
}
protected final void setRefreshAfterWriteNanos(long refreshAfterWriteNanos) {
this.refreshAfterWriteNanos = refreshAfterWriteNanos;
}
}
static class SILiSMSW extends SILiSMS {
private final Ticker ticker;
private final WriteOrderDeque> writeOrderDeque;
private volatile long expiresAfterWriteNanos;
SILiSMSW(Caffeine builder, CacheLoader super K, V> cacheLoader, boolean async) {
super(builder, (CacheLoader) cacheLoader, async);
this.ticker = builder.getTicker();
this.writeOrderDeque = new WriteOrderDeque>();
this.expiresAfterWriteNanos = builder.getExpiresAfterWriteNanos();
}
public final Ticker expirationTicker() {
return ticker;
}
protected final WriteOrderDeque> writeOrderDeque() {
return writeOrderDeque;
}
protected final boolean expiresAfterWrite() {
return true;
}
protected final long expiresAfterWriteNanos() {
return expiresAfterWriteNanos;
}
protected final void setExpiresAfterWriteNanos(long expiresAfterWriteNanos) {
this.expiresAfterWriteNanos = expiresAfterWriteNanos;
}
}
static final class SILiSMSWR