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

belief storage to get access to all class attributes More...

+ Inheritance diagram for org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >:
+ Collaboration diagram for org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >:

Public Member Functions

 CClassStorage ( @Nonnull final Object p_instance)
 ctor More...
 
 CClassStorage ( @Nonnull final Object p_instance, @Nonnull final Function< String, String > p_fieldnameformater)
 ctor More...
 
final void clear ()
 
final boolean containsMultiElement ( @Nonnull final String p_key)
 
final boolean containsSingleElement ( @Nonnull final String p_key)
 
final boolean empty ()
 
Collection< ILiteralgetMultiElement ( @Nonnull final String p_key)
 
final M getSingleElement ( @Nonnull final String p_key)
 
final M getSingleElementOrDefault ( @Nonnull final String p_key, final M p_default)
 
final boolean putMultiElement ( @Nonnull final String p_key, final ILiteral p_value)
 
final boolean putSingleElement ( @Nonnull final String p_key, final M p_value)
 
final boolean putSingleElementIfAbsent ( @Nonnull final String p_key, final M p_value)
 
final boolean removeMultiElement ( @Nonnull final String p_key, final ILiteral p_value)
 
final boolean removeSingleElement ( @Nonnull final String p_key)
 
final int size ()
 
final Stream< ILiteralstreamMultiElements ()
 
final Stream< M > streamSingleElements ()
 
- Public Member Functions inherited from org.lightjason.agentspeak.beliefbase.storage.IBaseStorage< ILiteral, M >
IAgent<?> update (@Nonnull final IAgent<?> p_agent)
 updates all items More...
 

Private Member Functions

ILiteral literal ( @Nonnull final String p_name, @Nonnull final Field p_field)
 returns a literal definition of the a class field More...
 

Private Attributes

final Map< String, Field > m_fields
 map with functor and field reference More...
 
final Object m_instance
 object instance More...
 

Detailed Description

Note
all object attributes which are not transient will be read
Todo:

implement recursive descent of properties

implement renaming function of properties

Definition at line 52 of file CClassStorage.java.

Constructor & Destructor Documentation

◆ CClassStorage() [1/2]

Parameters
p_instanceobject

Definition at line 68 of file CClassStorage.java.

◆ CClassStorage() [2/2]

org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.CClassStorage ( @Nonnull final Object  p_instance,
@Nonnull final Function< String, String >  p_fieldnameformater 
)
Parameters
p_instanceobject
p_fieldnameformaterfunction to reformat field names

Definition at line 79 of file CClassStorage.java.

Member Function Documentation

◆ clear()

Definition at line 184 of file CClassStorage.java.

◆ containsMultiElement()

final boolean org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.containsMultiElement ( @Nonnull final String  p_key)

Definition at line 110 of file CClassStorage.java.

◆ containsSingleElement()

final boolean org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.containsSingleElement ( @Nonnull final String  p_key)

Definition at line 116 of file CClassStorage.java.

◆ empty()

Definition at line 189 of file CClassStorage.java.

◆ getMultiElement()

Collection<ILiteral> org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.getMultiElement ( @Nonnull final String  p_key)

Definition at line 177 of file CClassStorage.java.

References org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.literal().

+ Here is the call graph for this function:

◆ getSingleElement()

final M org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.getSingleElement ( @Nonnull final String  p_key)

Definition at line 164 of file CClassStorage.java.

◆ getSingleElementOrDefault()

final M org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.getSingleElementOrDefault ( @Nonnull final String  p_key,
final M  p_default 
)

Definition at line 170 of file CClassStorage.java.

◆ literal()

ILiteral org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.literal ( @Nonnull final String  p_name,
@Nonnull final Field  p_field 
)
private
Parameters
p_nameliteral functor
p_fieldfield reference
Returns
null or literal

Definition at line 208 of file CClassStorage.java.

References org.lightjason.agentspeak.language.CRawTerm< T >.EMPTY, org.lightjason.agentspeak.language.CRawTerm< T >.from(), and org.lightjason.agentspeak.language.CLiteral.from().

Referenced by org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.getMultiElement(), and org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.streamMultiElements().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ putMultiElement()

final boolean org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.putMultiElement ( @Nonnull final String  p_key,
final ILiteral  p_value 
)

Definition at line 122 of file CClassStorage.java.

References org.lightjason.agentspeak.language.ILiteral.emptyValues(), org.lightjason.agentspeak.language.CRawTerm< T >.from(), and org.lightjason.agentspeak.language.ILiteral.values().

+ Here is the call graph for this function:

◆ putSingleElement()

final boolean org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.putSingleElement ( @Nonnull final String  p_key,
final M  p_value 
)

Definition at line 140 of file CClassStorage.java.

◆ putSingleElementIfAbsent()

final boolean org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.putSingleElementIfAbsent ( @Nonnull final String  p_key,
final M  p_value 
)

Definition at line 146 of file CClassStorage.java.

◆ removeMultiElement()

final boolean org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.removeMultiElement ( @Nonnull final String  p_key,
final ILiteral  p_value 
)

Definition at line 152 of file CClassStorage.java.

◆ removeSingleElement()

final boolean org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.removeSingleElement ( @Nonnull final String  p_key)

Definition at line 158 of file CClassStorage.java.

◆ size()

Definition at line 195 of file CClassStorage.java.

◆ streamMultiElements()

final Stream<ILiteral> org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.streamMultiElements ( )

Definition at line 95 of file CClassStorage.java.

References org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.literal().

+ Here is the call graph for this function:

◆ streamSingleElements()

final Stream<M> org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.streamSingleElements ( )

Definition at line 104 of file CClassStorage.java.

Member Data Documentation

◆ m_fields

final Map<String, Field> org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.m_fields
private

Definition at line 61 of file CClassStorage.java.

◆ m_instance

final Object org.lightjason.agentspeak.beliefbase.storage.CClassStorage< M >.m_instance
private

Definition at line 57 of file CClassStorage.java.