public abstract class LazyLookup<T> extends AbstractLookup
getValue() as late as possible and cache the results.| Modifier | Constructor and Description |
|---|---|
protected |
LazyLookup()
Constructor for LazyLookup.
|
| Modifier and Type | Method and Description |
|---|---|
<T> void |
addChangeListener(Class<T> type,
LookupChangeListener<? super T> lookupChangeListener)
Add a lookup change listener for a given type
|
void |
addChangeListener(LookupChangeListener<?> lookupChangeListener)
Adds a lookup change listener
|
<T> void |
addChangeListenerWeak(Class<T> type,
LookupChangeListener<? super T> lookupChangeListener)
Add a lookup change listener that is wrapped within a WeakLookupChangeListener for a given type
|
void |
addChangeListenerWeak(LookupChangeListener<?> lookupChangeListener)
Adds a lookup change listener that is wrapped within a WeakLookupChangeListener
|
<T> void |
bind(Class<T> type,
LookupChangeListener<? super T> lookupChangeListener)
Binds the given lookup change listener.
|
<T> void |
bind(TypedLookupChangeListener<T> lookupChangeListener)
Binds the given lookup change listener with the key retrieved from TypedLookupChangeListener#getType().
|
<T> void |
bindWeak(Class<T> type,
LookupChangeListener<? super T> lookupChangeListener)
Binds the given lookup change listener that is wrapped within a WeakLookupChangeListener.
|
<T> void |
bindWeak(TypedLookupChangeListener<T> lookupChangeListener)
Binds the given lookup change listener (that is wrapped within a WeakLookupChangeListener)
with the key retrieved from TypedLookupChangeListener#getType().
|
protected abstract T |
createInstance()
This method is only called once as soon as the first lookup request is made.
|
abstract Class<? extends T> |
getType()
The type the instance.
|
protected T |
getValue()
This method calls
createInstance() and caches the value. |
<T> T |
lookup(Class<T> type)
Lookup a given object
|
Map<Class<?>,Object> |
lookups()
Returns a map containing the available lookup objects.
|
<T> void |
removeChangeListener(Class<T> type,
LookupChangeListener<? super T> lookupChangeListener)
Remove a lookup change listener from the given type
|
void |
removeChangeListener(LookupChangeListener<?> lookupChangeListener)
Remove a lookup change listener
|
lookupNonNull@Nonnull public Map<Class<?>,Object> lookups()
@Nonnull protected abstract T createInstance()
getType()public abstract Class<? extends T> getType()
@Nullable public <T> T lookup(@Nonnull Class<T> type)
This lookup calls getValue() when the parameter fits the type (getType()).
T - a T object.type - the type@Nullable protected T getValue()
createInstance() and caches the value.
Subclasses should not override this method but createInstance() instead.public <T> void bind(@Nonnull Class<T> type, @Nonnull LookupChangeListener<? super T> lookupChangeListener)
T - a T object.type - a Class object.lookupChangeListener - the listener that is addedpublic <T> void bind(@Nonnull TypedLookupChangeListener<T> lookupChangeListener)
T - a T object.lookupChangeListener - the listener that is addedpublic <T> void bindWeak(@Nonnull Class<T> type, @Nonnull LookupChangeListener<? super T> lookupChangeListener)
T - a T object.type - a Class object.lookupChangeListener - the listener that is addedpublic <T> void bindWeak(@Nonnull TypedLookupChangeListener<T> lookupChangeListener)
T - a T object.lookupChangeListener - the listener that is addedpublic void addChangeListenerWeak(@Nonnull LookupChangeListener<?> lookupChangeListener)
lookupChangeListener - the lookup change listenerpublic <T> void addChangeListenerWeak(@Nonnull Class<T> type, @Nonnull LookupChangeListener<? super T> lookupChangeListener)
T - a T object.type - the typelookupChangeListener - the listenerpublic <T> void addChangeListener(@Nonnull Class<T> type, @Nonnull LookupChangeListener<? super T> lookupChangeListener)
T - a T object.type - the typelookupChangeListener - the listenerpublic <T> void removeChangeListener(@Nonnull Class<T> type, @Nonnull LookupChangeListener<? super T> lookupChangeListener)
T - a T object.type - the type of the listenerlookupChangeListener - the listenerpublic void removeChangeListener(@Nonnull LookupChangeListener<?> lookupChangeListener)
lookupChangeListener - the listener that is removed from *all* typespublic void addChangeListener(@Nonnull LookupChangeListener<?> lookupChangeListener)
lookupChangeListener - the lookup change listenerCopyright © 2007–2017 cedarsoft GmbH. All rights reserved.