Class ObjectExtensions<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
- java.lang.Object
-
- java.util.AbstractMap<Class<? extends E>,E>
-
- org.opendaylight.yangtools.concepts.ObjectExtensions<O,E>
-
- Type Parameters:
O
- Type of extensible objectE
- Extension marker interface
- All Implemented Interfaces:
ClassToInstanceMap<E>
,Map<Class<? extends E>,E>
@Beta public final class ObjectExtensions<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>> extends AbstractMap<Class<? extends E>,E> implements ClassToInstanceMap<E>
UtilityClassToInstanceMap
implementation for implementingExtensibleObject.getExtensions()
method by objects which are themselves implementing the extension.- Author:
- Robert Varga
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ObjectExtensions.Factory<T,O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
-
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object,V extends Object>
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
boolean
containsKey(Object key)
boolean
containsValue(Object value)
Set<Map.Entry<Class<? extends E>,E>>
entrySet()
static <T,O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
@NonNull ObjectExtensions.Factory<T,O,E>factory(Class<T> objClass, Class<? extends E>... extensions)
E
get(Object key)
<T extends E>
TgetInstance(Class<T> type)
boolean
isEmpty()
Set<Class<? extends E>>
keySet()
E
put(Class<? extends E> key, E value)
void
putAll(Map<? extends Class<? extends E>,? extends E> m)
<T extends E>
TputInstance(Class<T> type, T value)
E
remove(Object key)
int
size()
Collection<E>
values()
-
Methods inherited from class java.util.AbstractMap
clone, equals, hashCode, toString
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
-
-
-
-
Method Detail
-
factory
@SafeVarargs public static <T,O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>> @NonNull ObjectExtensions.Factory<T,O,E> factory(Class<T> objClass, Class<? extends E>... extensions)
-
size
public int size()
- Specified by:
size
in interfaceMap<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
- Overrides:
size
in classAbstractMap<Class<? extends E extends ObjectExtension<O,E>>,E extends ObjectExtension<O,E>>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interfaceMap<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
- Overrides:
isEmpty
in classAbstractMap<Class<? extends E extends ObjectExtension<O,E>>,E extends ObjectExtension<O,E>>
-
containsKey
public boolean containsKey(Object key)
- Specified by:
containsKey
in interfaceMap<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
- Overrides:
containsKey
in classAbstractMap<Class<? extends E extends ObjectExtension<O,E>>,E extends ObjectExtension<O,E>>
-
containsValue
public boolean containsValue(Object value)
- Specified by:
containsValue
in interfaceMap<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
- Overrides:
containsValue
in classAbstractMap<Class<? extends E extends ObjectExtension<O,E>>,E extends ObjectExtension<O,E>>
-
get
public E get(Object key)
- Specified by:
get
in interfaceMap<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
- Overrides:
get
in classAbstractMap<Class<? extends E extends ObjectExtension<O,E>>,E extends ObjectExtension<O,E>>
-
put
public E put(Class<? extends E> key, E value)
- Specified by:
put
in interfaceMap<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
- Overrides:
put
in classAbstractMap<Class<? extends E extends ObjectExtension<O,E>>,E extends ObjectExtension<O,E>>
-
remove
public E remove(Object key)
- Specified by:
remove
in interfaceMap<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
- Overrides:
remove
in classAbstractMap<Class<? extends E extends ObjectExtension<O,E>>,E extends ObjectExtension<O,E>>
-
putAll
public void putAll(Map<? extends Class<? extends E>,? extends E> m)
- Specified by:
putAll
in interfaceMap<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
- Overrides:
putAll
in classAbstractMap<Class<? extends E extends ObjectExtension<O,E>>,E extends ObjectExtension<O,E>>
-
clear
public void clear()
- Specified by:
clear
in interfaceMap<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
- Overrides:
clear
in classAbstractMap<Class<? extends E extends ObjectExtension<O,E>>,E extends ObjectExtension<O,E>>
-
keySet
public Set<Class<? extends E>> keySet()
- Specified by:
keySet
in interfaceMap<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
- Overrides:
keySet
in classAbstractMap<Class<? extends E extends ObjectExtension<O,E>>,E extends ObjectExtension<O,E>>
-
values
public Collection<E> values()
- Specified by:
values
in interfaceMap<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
- Overrides:
values
in classAbstractMap<Class<? extends E extends ObjectExtension<O,E>>,E extends ObjectExtension<O,E>>
-
entrySet
public Set<Map.Entry<Class<? extends E>,E>> entrySet()
- Specified by:
entrySet
in interfaceMap<O extends ExtensibleObject<O,E>,E extends ObjectExtension<O,E>>
- Specified by:
entrySet
in classAbstractMap<Class<? extends E extends ObjectExtension<O,E>>,E extends ObjectExtension<O,E>>
-
getInstance
public <T extends E> T getInstance(Class<T> type)
- Specified by:
getInstance
in interfaceClassToInstanceMap<O extends ExtensibleObject<O,E>>
-
putInstance
public <T extends E> T putInstance(Class<T> type, T value)
- Specified by:
putInstance
in interfaceClassToInstanceMap<O extends ExtensibleObject<O,E>>
-
-