LightJason - AgentSpeak(L++)
org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M > Class Template Reference

thread-safe storage of the data of single- and multi-elements, a multi-element can be stored once and will be replaced iif a new one is added More...

+ Inheritance diagram for org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >:
+ Collaboration diagram for org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >:

Public Member Functions

 CSingleStorage ()
 ctor More...
 
final void clear ()
 clears all elements More...
 
final boolean containsMultiElement ( @Nonnull final String p_key)
 contains a multi-element More...
 
final boolean containsSingleElement ( @Nonnull final String p_key)
 contains a single-element More...
 
final boolean empty ()
 checks if a storage is empty More...
 
final Collection< N > getMultiElement ( @Nonnull final String p_key)
 returns a collection of multi-elementy by name More...
 
final M getSingleElement ( @Nonnull final String p_key)
 returns a single-element by the name More...
 
final M getSingleElementOrDefault ( @Nonnull final String p_key, final M p_default)
 returns a single-element by the name More...
 
final boolean putMultiElement ( @Nonnull final String p_key, final N p_value)
 puts a multi-element into the storage More...
 
final boolean putSingleElement ( @Nonnull final String p_key, final M p_value)
 puts a single-element into the storage More...
 
final boolean putSingleElementIfAbsent ( @Nonnull final String p_key, final M p_value)
 puts a single-element if it is absent More...
 
final boolean removeMultiElement ( @Nonnull final String p_key, final N p_value)
 removes a multi-element from the storage More...
 
final boolean removeSingleElement ( @Nonnull final String p_key)
 removes a single-element from the storage More...
 
final int size ()
 number of multi elements More...
 
final Stream< N > streamMultiElements ()
 returns a stream over all multi-elements More...
 
final Stream< M > streamSingleElements ()
 returns a stream over all single-elements More...
 
final String toString ()
 
- Public Member Functions inherited from org.lightjason.agentspeak.beliefbase.storage.IBaseStorage< N, M >
IAgent<?> update ( @Nonnull final IAgent<?> p_agent)
 updates all items More...
 

Private Attributes

final Map< String, N > m_multielements = Collections.synchronizedMap( new LinkedHashMap<>() )
 map with elements More...
 
final Map< String, M > m_singleelements = new ConcurrentHashMap<>()
 map with single elements More...
 

Detailed Description

Template Parameters
Nmulti-element type
Msingle-element type
Tagent type

Definition at line 47 of file CSingleStorage.java.

Constructor & Destructor Documentation

◆ CSingleStorage()

Member Function Documentation

◆ clear()

◆ containsMultiElement()

final boolean org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.containsMultiElement ( @Nonnull final String  p_key)
Parameters
p_keykey
Returns
boolean existing flag

Implements org.lightjason.agentspeak.beliefbase.storage.IStorage< N, M >.

Definition at line 81 of file CSingleStorage.java.

◆ containsSingleElement()

final boolean org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.containsSingleElement ( @Nonnull final String  p_key)
Parameters
p_keykey
Returns
boolean existing flag

Implements org.lightjason.agentspeak.beliefbase.storage.IStorage< N, M >.

Definition at line 87 of file CSingleStorage.java.

◆ empty()

Returns
empty boolean

Implements org.lightjason.agentspeak.beliefbase.storage.IStorage< N, M >.

Definition at line 149 of file CSingleStorage.java.

◆ getMultiElement()

final Collection<N> org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.getMultiElement ( @Nonnull final String  p_key)
Parameters
p_keyname
Returns
collection of multi-elements

Implements org.lightjason.agentspeak.beliefbase.storage.IStorage< N, M >.

Definition at line 136 of file CSingleStorage.java.

◆ getSingleElement()

final M org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.getSingleElement ( @Nonnull final String  p_key)
Parameters
p_keykey
Returns
single-element or null

Implements org.lightjason.agentspeak.beliefbase.storage.IStorage< N, M >.

Definition at line 123 of file CSingleStorage.java.

◆ getSingleElementOrDefault()

final M org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.getSingleElementOrDefault ( @Nonnull final String  p_key,
final M  p_default 
)
Parameters
p_keykey
p_defaultdefault element
Returns
single-element or the default element

Implements org.lightjason.agentspeak.beliefbase.storage.IStorage< N, M >.

Definition at line 129 of file CSingleStorage.java.

◆ putMultiElement()

final boolean org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.putMultiElement ( @Nonnull final String  p_key,
final N  p_value 
)
Parameters
p_keykey
p_valuemulti-element
Returns
boolean if the element can be stored

Implements org.lightjason.agentspeak.beliefbase.storage.IStorage< N, M >.

Definition at line 93 of file CSingleStorage.java.

◆ putSingleElement()

final boolean org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.putSingleElement ( @Nonnull final String  p_key,
final M  p_value 
)
Parameters
p_keykey
p_valuesingle-element
Returns
boolean if the element can be stored

Implements org.lightjason.agentspeak.beliefbase.storage.IStorage< N, M >.

Definition at line 99 of file CSingleStorage.java.

◆ putSingleElementIfAbsent()

final boolean org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.putSingleElementIfAbsent ( @Nonnull final String  p_key,
final M  p_value 
)
Parameters
p_keykey
p_valuesingle-element
Returns
boolean if the element can be stored

Implements org.lightjason.agentspeak.beliefbase.storage.IStorage< N, M >.

Definition at line 105 of file CSingleStorage.java.

◆ removeMultiElement()

final boolean org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.removeMultiElement ( @Nonnull final String  p_key,
final N  p_value 
)
Parameters
p_keykey
p_valuemulti-element
Returns
boolean if the element can removed

Implements org.lightjason.agentspeak.beliefbase.storage.IStorage< N, M >.

Definition at line 111 of file CSingleStorage.java.

◆ removeSingleElement()

final boolean org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.removeSingleElement ( @Nonnull final String  p_key)
Parameters
p_keykey
Returns
boolean if the element can be removed

Implements org.lightjason.agentspeak.beliefbase.storage.IStorage< N, M >.

Definition at line 117 of file CSingleStorage.java.

◆ size()

◆ streamMultiElements()

final Stream<N> org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.streamMultiElements ( )
Returns
multi-element stream

Implements org.lightjason.agentspeak.beliefbase.storage.IStorage< N, M >.

Definition at line 68 of file CSingleStorage.java.

◆ streamSingleElements()

final Stream<M> org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.streamSingleElements ( )
Returns
single-element stream

Implements org.lightjason.agentspeak.beliefbase.storage.IStorage< N, M >.

Definition at line 75 of file CSingleStorage.java.

◆ toString()

Definition at line 162 of file CSingleStorage.java.

Member Data Documentation

◆ m_multielements

final Map<String, N> org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.m_multielements = Collections.synchronizedMap( new LinkedHashMap<>() )
private

Definition at line 52 of file CSingleStorage.java.

◆ m_singleelements

final Map<String, M> org.lightjason.agentspeak.beliefbase.storage.CSingleStorage< N, M >.m_singleelements = new ConcurrentHashMap<>()
private

Definition at line 56 of file CSingleStorage.java.