Class CaffeineSpec
- java.lang.Object
-
- com.github.benmanes.caffeine.cache.CaffeineSpec
-
public final class CaffeineSpec extends java.lang.ObjectA specification of aCaffeinebuilder configuration.CaffeineSpecsupports parsing configuration off of a string, which makes it especially useful for command-line configuration of aCaffeinebuilder.The string syntax is a series of comma-separated keys or key-value pairs, each corresponding to a
Caffeinebuilder method.initialCapacity=[integer]: setsCaffeine.initialCapacity.maximumSize=[long]: setsCaffeine.maximumSize.maximumWeight=[long]: setsCaffeine.maximumWeight.expireAfterAccess=[duration]: setsCaffeine.expireAfterAccess(long, java.util.concurrent.TimeUnit).expireAfterWrite=[duration]: setsCaffeine.expireAfterWrite(long, java.util.concurrent.TimeUnit).refreshAfterWrite=[duration]: setsCaffeine.refreshAfterWrite(long, java.util.concurrent.TimeUnit).weakKeys: setsCaffeine.weakKeys().weakValues: setsCaffeine.weakValues().softValues: setsCaffeine.softValues().recordStats: setsCaffeine.recordStats().
Durations are represented by an integer, followed by one of "d", "h", "m", or "s", representing days, hours, minutes, or seconds respectively. There is currently no syntax to request expiration in milliseconds, microseconds, or nanoseconds.
Whitespace before and after commas and equal signs is ignored. Keys may not be repeated; it is also illegal to use the following pairs of keys in a single value:
maximumSizeandmaximumWeightweakValuesandsoftValues
CaffeineSpecdoes not support configuringCaffeinemethods with non-value parameters. These must be configured in code.A new
Caffeinebuilder can be instantiated from aCaffeineSpecusingCaffeine.from(CaffeineSpec)orCaffeine.from(String).
-
-
Field Summary
Fields Modifier and Type Field Description (package private) longexpireAfterAccessDuration(package private) java.util.concurrent.TimeUnitexpireAfterAccessTimeUnit(package private) longexpireAfterWriteDuration(package private) java.util.concurrent.TimeUnitexpireAfterWriteTimeUnit(package private) intinitialCapacity(package private) Caffeine.StrengthkeyStrength(package private) longmaximumSize(package private) longmaximumWeight(package private) booleanrecordStats(package private) longrefreshAfterWriteDuration(package private) java.util.concurrent.TimeUnitrefreshAfterWriteTimeUnit(package private) java.lang.Stringspecification(package private) static java.lang.StringSPLIT_KEY_VALUE(package private) static java.lang.StringSPLIT_OPTIONS(package private) Caffeine.StrengthvalueStrength
-
Constructor Summary
Constructors Modifier Constructor Description privateCaffeineSpec(java.lang.String specification)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) voidconfigure(java.lang.String key, java.lang.String value)Configures the setting.(package private) static longdurationInNanos(long duration, java.util.concurrent.TimeUnit unit)Converts an expiration duration/unit pair into a single long for hashing and equality.booleanequals(java.lang.Object o)(package private) voidexpireAfterAccess(java.lang.String key, java.lang.String value)Configures expire after access.(package private) voidexpireAfterWrite(java.lang.String key, java.lang.String value)Configures expire after write.inthashCode()(package private) voidinitialCapacity(java.lang.String key, java.lang.String value)Configures the initial capacity.(package private) voidmaximumSize(java.lang.String key, java.lang.String value)Configures the maximum size.(package private) voidmaximumWeight(java.lang.String key, java.lang.String value)Configures the maximum size.static CaffeineSpecparse(java.lang.String specification)Creates a CaffeineSpec from a string.(package private) static longparseDuration(java.lang.String key, java.lang.String value)Returns a parsed duration value.(package private) static intparseInt(java.lang.String key, java.lang.String value)Returns a parsed int value.(package private) static longparseLong(java.lang.String key, java.lang.String value)Returns a parsed long value.(package private) voidparseOption(java.lang.String option)Parses and applies the configuration option.(package private) static java.util.concurrent.TimeUnitparseTimeUnit(java.lang.String key, java.lang.String value)Returns a parsedTimeUnitvalue.(package private) voidrecordStats(java.lang.String value)Configures the value as weak or soft references.(package private) voidrefreshAfterWrite(java.lang.String key, java.lang.String value)Configures refresh after write.(package private) Caffeine<java.lang.Object,java.lang.Object>toBuilder()Returns aCaffeinebuilder configured according to this specification.java.lang.StringtoParsableString()Returns a string that can be used to parse an equivalentCaffeineSpec.java.lang.StringtoString()Returns a string representation for thisCaffeineSpecinstance.(package private) voidvalueStrength(java.lang.String key, java.lang.String value, Caffeine.Strength strength)Configures the value as weak or soft references.(package private) voidweakKeys(java.lang.String value)Configures the keys as weak references.
-
-
-
Field Detail
-
SPLIT_OPTIONS
static final java.lang.String SPLIT_OPTIONS
- See Also:
- Constant Field Values
-
SPLIT_KEY_VALUE
static final java.lang.String SPLIT_KEY_VALUE
- See Also:
- Constant Field Values
-
specification
final java.lang.String specification
-
initialCapacity
int initialCapacity
-
maximumWeight
long maximumWeight
-
maximumSize
long maximumSize
-
recordStats
boolean recordStats
-
keyStrength
Caffeine.Strength keyStrength
-
valueStrength
Caffeine.Strength valueStrength
-
expireAfterAccessDuration
long expireAfterAccessDuration
-
expireAfterAccessTimeUnit
java.util.concurrent.TimeUnit expireAfterAccessTimeUnit
-
expireAfterWriteDuration
long expireAfterWriteDuration
-
expireAfterWriteTimeUnit
java.util.concurrent.TimeUnit expireAfterWriteTimeUnit
-
refreshAfterWriteDuration
long refreshAfterWriteDuration
-
refreshAfterWriteTimeUnit
java.util.concurrent.TimeUnit refreshAfterWriteTimeUnit
-
-
Method Detail
-
toBuilder
Caffeine<java.lang.Object,java.lang.Object> toBuilder()
Returns aCaffeinebuilder configured according to this specification.- Returns:
- a builder configured to the specification
-
parse
public static CaffeineSpec parse(java.lang.String specification)
Creates a CaffeineSpec from a string.- Parameters:
specification- the string form- Returns:
- the parsed specification
-
parseOption
void parseOption(java.lang.String option)
Parses and applies the configuration option.
-
configure
void configure(java.lang.String key, @Nullable java.lang.String value)Configures the setting.
-
initialCapacity
void initialCapacity(java.lang.String key, java.lang.String value)Configures the initial capacity.
-
maximumSize
void maximumSize(java.lang.String key, java.lang.String value)Configures the maximum size.
-
maximumWeight
void maximumWeight(java.lang.String key, java.lang.String value)Configures the maximum size.
-
weakKeys
void weakKeys(@Nullable java.lang.String value)Configures the keys as weak references.
-
valueStrength
void valueStrength(java.lang.String key, @Nullable java.lang.String value, Caffeine.Strength strength)Configures the value as weak or soft references.
-
expireAfterAccess
void expireAfterAccess(java.lang.String key, java.lang.String value)Configures expire after access.
-
expireAfterWrite
void expireAfterWrite(java.lang.String key, java.lang.String value)Configures expire after write.
-
refreshAfterWrite
void refreshAfterWrite(java.lang.String key, java.lang.String value)Configures refresh after write.
-
recordStats
void recordStats(@Nullable java.lang.String value)Configures the value as weak or soft references.
-
parseInt
static int parseInt(java.lang.String key, java.lang.String value)Returns a parsed int value.
-
parseLong
static long parseLong(java.lang.String key, java.lang.String value)Returns a parsed long value.
-
parseDuration
static long parseDuration(java.lang.String key, java.lang.String value)Returns a parsed duration value.
-
parseTimeUnit
static java.util.concurrent.TimeUnit parseTimeUnit(java.lang.String key, java.lang.String value)Returns a parsedTimeUnitvalue.
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
durationInNanos
static long durationInNanos(long duration, @Nullable java.util.concurrent.TimeUnit unit)Converts an expiration duration/unit pair into a single long for hashing and equality.
-
toParsableString
public java.lang.String toParsableString()
Returns a string that can be used to parse an equivalentCaffeineSpec. The order and form of this representation is not guaranteed, except that parsing its output will produce aCaffeineSpecequal to this instance.- Returns:
- a string representation of this specification
-
toString
public java.lang.String toString()
Returns a string representation for thisCaffeineSpecinstance. The form of this representation is not guaranteed.- Overrides:
toStringin classjava.lang.Object
-
-