public class LazyMetadataValue extends MetadataValueAdapter implements MetadataValue
By making metadata values lazy, no computation is done by the providing
plugin until absolutely necessary (if ever). Additionally,
LazyMetadataValue objects cache their values internally unless overridden
by a LazyMetadataValue.CacheStrategy
or invalidated at the individual or plugin
level. Once invalidated, the LazyMetadataValue will recompute its value
when asked.
Modifier and Type | Class and Description |
---|---|
static class |
LazyMetadataValue.CacheStrategy
Describes possible caching strategies for metadata.
|
owningPlugin
Modifier | Constructor and Description |
---|---|
protected |
LazyMetadataValue(Plugin owningPlugin)
Protected special constructor used by FixedMetadataValue to bypass
standard setup.
|
|
LazyMetadataValue(Plugin owningPlugin,
Callable<Object> lazyValue)
Initialized a LazyMetadataValue object with the default
CACHE_AFTER_FIRST_EVAL cache strategy.
|
|
LazyMetadataValue(Plugin owningPlugin,
LazyMetadataValue.CacheStrategy cacheStrategy,
Callable<Object> lazyValue)
Initializes a LazyMetadataValue object with a specific cache strategy.
|
Modifier and Type | Method and Description |
---|---|
void |
invalidate()
Invalidates this metadata item, forcing it to recompute when next
accessed.
|
Object |
value()
Fetches the value of this metadata item.
|
asBoolean, asByte, asDouble, asFloat, asInt, asLong, asShort, asString, getOwningPlugin
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
asBoolean, asByte, asDouble, asFloat, asInt, asLong, asShort, asString, getOwningPlugin
public LazyMetadataValue(Plugin owningPlugin, Callable<Object> lazyValue)
owningPlugin
- the Plugin
that created this metadata
value.lazyValue
- the lazy value assigned to this metadata value.public LazyMetadataValue(Plugin owningPlugin, LazyMetadataValue.CacheStrategy cacheStrategy, Callable<Object> lazyValue)
owningPlugin
- the Plugin
that created this metadata
value.cacheStrategy
- determines the rules for caching this metadata
value.lazyValue
- the lazy value assigned to this metadata value.protected LazyMetadataValue(Plugin owningPlugin)
owningPlugin
- the owning pluginpublic Object value()
MetadataValue
value
in interface MetadataValue
public void invalidate()
MetadataValue
invalidate
in interface MetadataValue
Copyright © 2022. All rights reserved.