![]() |
aGrUM 3.0.0
a C++ library for (probabilistic) graphical models
|
A PRMClass is an object of a PRM representing a fragment of a Bayesian network which can be instantiated in PRMInstance. More...
#include <agrum/PRM/elements/PRMClass.h>
Public Member Functions | |
Constructors & destructor. | |
| PRMClass (std::string_view name) | |
| Default constructor. | |
| PRMClass (std::string_view name, PRMClass< GUM_SCALAR > &super, bool delayInheritance=false) | |
| Constructor for building a subclass of super. | |
| PRMClass (std::string_view name, const Set< PRMInterface< GUM_SCALAR > * > &set, bool delayInheritance=false) | |
| Constructor for building a Class<GUM_SCALAR> implementing several each interface in set. | |
| PRMClass (std::string_view name, PRMClass< GUM_SCALAR > &super, const Set< PRMInterface< GUM_SCALAR > * > &set, bool delayInheritance=false) | |
| Constructor for building a subclass of super and implementing each interface in set. | |
| PRMClass (const PRMClass< GUM_SCALAR > &source)=delete | |
| Copy constructor. | |
| PRMClass (const PRMClass< GUM_SCALAR > &&source)=delete | |
| Move constructor. | |
| PRMClass< GUM_SCALAR > & | operator= (const PRMClass< GUM_SCALAR > &source)=delete |
| Copy operator. Don't use it. | |
| PRMClass< GUM_SCALAR > & | operator= (const PRMClass< GUM_SCALAR > &&source)=delete |
| Move operator. Don't use it. | |
| ~PRMClass () override | |
| Destructor. | |
| PRMObject::prm_type | obj_type () const override |
| Implementation of pure virtual method of PRMObject. | |
Graphical operator | |
| PRMClassElement< GUM_SCALAR > & | get (NodeId id) override |
| See gum::prm::PRMClassElementContainer<GUM_SCALAR>::get(NodeId). | |
| const PRMClassElement< GUM_SCALAR > & | get (NodeId id) const override |
| See gum::prm::PRMClassElementContainer<GUM_SCALAR>::get(NodeId). | |
PRMClassElement<GUM_SCALAR> getters and setters | |
| bool | isOutputNode (const PRMClassElement< GUM_SCALAR > &elt) const override |
| Returns true if elt is an output node. | |
| bool | isCastDescendant (std::string_view safe_name) const |
| Return true if the attribute named safe_name is a cast descendant. | |
| PRMClassElement< GUM_SCALAR > & | get (std::string_view name) override |
| See gum::prm::PRMClassElementContainer<GUM_SCALAR>::get(const
std::string&). | |
| const PRMClassElement< GUM_SCALAR > & | get (std::string_view name) const override |
| See gum::prm::PRMClassElementContainer<GUM_SCALAR>::get(const
std::string&). | |
| NodeId | add (PRMClassElement< GUM_SCALAR > *elt) override |
| See gum::prm::add(PRMClassElement<GUM_SCALAR>*). | |
| NodeId | overload (PRMClassElement< GUM_SCALAR > *elt) override |
| See gum::prm::overload(PRMClassElement<GUM_SCALAR>*). | |
| void | addArc (std::string_view tail, std::string_view head) override |
| See gum::prm::PRMClassElementContainer<GUM_SCALAR>::addArc(). | |
| const Set< PRMAttribute< GUM_SCALAR > * > & | attributes () const |
| Returns the set of PRMAttribute<GUM_SCALAR> of this Class<GUM_SCALAR>. | |
| const Set< PRMParameter< GUM_SCALAR > * > & | parameters () const |
| Returns the set of parameters of this Class<GUM_SCALAR>. | |
| HashTable< std::string, const PRMParameter< GUM_SCALAR > * > | scope () const |
| Returns all the parameters in the scope of this class. | |
| const Set< PRMAggregate< GUM_SCALAR > * > & | aggregates () const |
| Returns the set of PRMAggregate<GUM_SCALAR> of this Class<GUM_SCALAR>. | |
| const Set< PRMReferenceSlot< GUM_SCALAR > * > & | referenceSlots () const |
| Returns the set of PRMReferenceSlot<GUM_SCALAR> of this Class<GUM_SCALAR>. | |
| const Set< PRMSlotChain< GUM_SCALAR > * > & | slotChains () const |
| Returns the set of PRMSlotChain<GUM_SCALAR> of this Class<GUM_SCALAR>. | |
Inheritance methods | |
| bool | isSubTypeOf (const PRMClassElementContainer< GUM_SCALAR > &cec) const override |
| Test if this Class<GUM_SCALAR> is a subclass of cec. | |
| const PRMClass< GUM_SCALAR > & | super () const |
| Returns the super Class<GUM_SCALAR> of this Class<GUM_SCALAR>. | |
| const Set< PRMInterface< GUM_SCALAR > * > & | implements () const |
| Returns the Set of PRMInterface<GUM_SCALAR> implemented by this Class<GUM_SCALAR>. | |
| const Set< PRMClass< GUM_SCALAR > * > & | extensions () const |
| Returns the set of Class<GUM_SCALAR> which are direct sub-Class<GUM_SCALAR> of this Class<GUM_SCALAR>. | |
Getters & setters operators | |
| PRMClassElement< GUM_SCALAR > & | operator[] (NodeId id) override |
| See gum::prm::PRMClassElementContainer<GUM_SCALAR>::operator[](NodeId). | |
| const PRMClassElement< GUM_SCALAR > & | operator[] (NodeId id) const override |
| See gum::prm::PRMClassElementContainer<GUM_SCALAR>::operator[](NodeId). | |
| PRMClassElement< GUM_SCALAR > & | operator[] (std::string_view name) override |
| See gum::prm::PRMClassElementContainer<GUM_SCALAR>::operator[](const
std::string&). | |
| const PRMClassElement< GUM_SCALAR > & | operator[] (std::string_view name) const override |
| See gum::prm::PRMClassElementContainer<GUM_SCALAR>::operator[](const
std::string&). | |
For custom inheritance | |
| void | inheritReferenceSlots () |
| void | inheritParameters () |
| void | inheritAttributes () |
| void | inheritAggregates () |
| void | inheritSlotChains () |
| void | initializeInheritance () |
| void | completeInheritance (std::string_view attr) |
Getters on the gum::PRMClassElement<GUM_SCALAR>. | |
| virtual bool | belongsTo (const PRMClassElement< GUM_SCALAR > &elt) const |
| Returns true if elt belongs to this PRMClassElementContainer. | |
| virtual bool | exists (std::string_view name) const |
| Returns true if a member with the given name exists in this PRMClassElementContainer or in the PRMClassElementContainer hierarchy. | |
| virtual bool | isInputNode (const PRMClassElement< GUM_SCALAR > &elt) const |
| Returns true if the node is an input node. | |
| virtual void | setInputNode (const PRMClassElement< GUM_SCALAR > &elt, bool b) |
| Set the input flag value of id at b. | |
| virtual void | setOutputNode (const PRMClassElement< GUM_SCALAR > &elt, bool b) |
| Set the output flag value of id at b. | |
| virtual bool | isInnerNode (const PRMClassElement< GUM_SCALAR > &elt) const |
| Returns true if the node is an inner node. | |
Graphical operator | |
| virtual bool | exists (NodeId id) const |
| Returns true if a member with the given id exists in this PRMClassElementContainer or in the PRMClassElementContainer hierarchy. | |
| virtual const DAG & | containerDag () const |
| Returns the gum::DAG of this PRMClassElementContainer. | |
Inheritance getters and setters | |
| virtual bool | isSuperTypeOf (const PRMClassElementContainer< GUM_SCALAR > &cec) const |
| Test if this PRMClassElementContainer is a super type of cec. | |
Getters & setters. | |
| const std::string & | name () const |
| Returns the name of this object. | |
| void | name (std::string_view name) |
| Change the name of the PRM Object. | |
Operators | |
| bool | operator== (const PRMObject &obj) const |
| To PRMObject are equal if they have the same name (which is unique). | |
| bool | operator!= (const PRMObject &obj) const |
| To PRMObject are equal if they have the same name (which is unique). | |
Protected Member Functions | |
| const DAG & | dag_ () const override |
| returns a constant reference over this interface's dag. | |
| DAG & | dag_ () override |
| Returns a non constant reference over this PRMInterface<GUM_SCALAR>'s DAG. | |
| void | findAllSubtypes_ (Set< PRMClassElementContainer< GUM_SCALAR > * > &set) override |
| Fills set with all the subtypes of this Class<GUM_SCALAR>. | |
| void | updateDescendants_ (const PRMClassElement< GUM_SCALAR > &elt) override |
| See gum::prm::PRMClassElementContainer<GUM_SCALAR>(const
PRMClassElement<GUM_SCALAR>&). | |
| virtual std::pair< bool, bool > & | getIOFlag_ (const PRMClassElement< GUM_SCALAR > &elt) |
| Returns the IO flags of a PRMClassElement<GUM_SCALAR>. | |
| virtual const std::pair< bool, bool > & | getIOFlag_ (const PRMClassElement< GUM_SCALAR > &elt) const |
| Returns the IO flags of a PRMClassElement<GUM_SCALAR>. | |
| virtual void | setIOFlag_ (const PRMClassElement< GUM_SCALAR > &elt, const std::pair< bool, bool > &flags) |
| Defines the IO flags of a PRMClassElement<GUM_SCALAR>. | |
| virtual void | copyIOFlags_ (const PRMClassElementContainer< GUM_SCALAR > &c) |
| Copy the IO Flags of c in this PRMClassElementContainer. | |
Private Attributes | |
| HashTable< std::string, std::pair< bool, bool > > | _IOFlags_ |
| input / output flags, useful when inheriting or copying. | |
Graphical model members | |
Proceed with the copy of c in this. | |
| DAG | _dag_ |
| The dag representing dependencies between formal attributes and slots. | |
| NodeProperty< PRMClassElement< GUM_SCALAR > * > | _nodeIdMap_ |
| Mapping between node's id and their name (being an attribute or a slot). Used for fast access to a member given it's node id. | |
Private members. | |
| std::string | _name_ |
Friends | |
| class | PRMInterface< GUM_SCALAR > |
PRMClassElement<GUM_SCALAR> members | |
| HashTable< std::string, PRMClassElement< GUM_SCALAR > * > | _nameMap_ |
| Mapping between a member's name and itself. Used for fast access to a member given it's name. | |
| Set< PRMAttribute< GUM_SCALAR > * > | _attributes_ |
| The sequence of PRMAttribute<GUM_SCALAR>s. | |
| Set< PRMReferenceSlot< GUM_SCALAR > * > | _referenceSlots_ |
| The sequence of PRMReferenceSlot<GUM_SCALAR>. | |
| Set< PRMAggregate< GUM_SCALAR > * > | _aggregates_ |
| The sequence of aggregate. | |
| Set< PRMSlotChain< GUM_SCALAR > * > | _slotChains_ |
| The set of gum::PRMSlotChain<GUM_SCALAR>s. | |
| Set< PRMParameter< GUM_SCALAR > * > | _parameters_ |
| The Set of parameters in this Class<GUM_SCALAR>. | |
| void | _addCastDescendants_ (PRMClassElement< GUM_SCALAR > *attr) |
| Recursively adds cast descendant of attr in this Class<GUM_SCALAR>. | |
| void | _addCastDescendants_ (PRMAttribute< GUM_SCALAR > *start, PRMAttribute< GUM_SCALAR > *end) |
| Recursively adds cast descendant from start to end in this Class<GUM_SCALAR>. | |
Inheritance members | |
| PRMClass< GUM_SCALAR > * | _superClass_ |
| The alternate PRMClassElementContainer<GUM_SCALAR> searched for elements defined in this. Note that this is first searched for gum::PRMClassElement<GUM_SCALAR>. | |
| Set< PRMInterface< GUM_SCALAR > * > * | _implements_ |
| The Set of implemented interface of this. | |
| Set< PRMClass< GUM_SCALAR > * > | _extensions_ |
| The set of Class<GUM_SCALAR> which are extension of this Class<GUM_SCALAR> (i.e. direct subtypes). | |
| Bijection< const DiscreteVariable *, const DiscreteVariable * > * | _bijection_ |
| The bijection between variables in super and variables in this The bijection's firsts are attributes in this and its seconds are attributes in c. | |
| HashFunc< PRMClassElementContainer< GUM_SCALAR > * > | _dummy_hashfunc_ |
| a dummy member used to fix a compilation issue in clang4 | |
| void | _inheritClass_ (const PRMClass< GUM_SCALAR > &c) |
| Proceed with the copy when this inherits c. | |
| void | _implementInterfaces_ (bool delayInheritance) |
| Proceed with the implementation of interfaces. | |
| void | _checkInterfaces_ (PRMClassElement< GUM_SCALAR > *elt) |
| Check that a given element respects all the class interfaces. | |
| void | _checkInterface_ (PRMClassElement< GUM_SCALAR > *elt, PRMInterface< GUM_SCALAR > *i) |
| Check that a given element respects a specific interface. | |
| void | _checkRefInterfaces_ (PRMReferenceSlot< GUM_SCALAR > *elt) |
| Check that a given element respects all the class interfaces. | |
| void | _checkRefInterface_ (PRMReferenceSlot< GUM_SCALAR > *elt, PRMInterface< GUM_SCALAR > *i) |
| Check that a given element respects a specific interface. | |
| void | _addIOInterfaceFlags_ (PRMClassElement< GUM_SCALAR > *elt) |
| Check if elt is present in an implementation. If it is, its IO flags are updated. | |
| void | _addExtension_ (PRMClass< GUM_SCALAR > *c) |
| This method is called when a sub-Class<GUM_SCALAR> of this Class<GUM_SCALAR> is created. | |
| bool | _checkOverloadLegality_ (const PRMClassElement< GUM_SCALAR > *overloaded, const PRMClassElement< GUM_SCALAR > *overloader) |
| Return true of overloaded can be overload by overloader. | |
| void | _overloadAttribute_ (PRMAttribute< GUM_SCALAR > *overloader, PRMAttribute< GUM_SCALAR > *overloaded) |
| Overloads an attribute. | |
| void | _overloadAggregate_ (PRMAggregate< GUM_SCALAR > *overloader, PRMClassElement< GUM_SCALAR > *overloaded) |
| Overloads an aggregate. | |
| void | _overloadReference_ (PRMReferenceSlot< GUM_SCALAR > *overloader, PRMReferenceSlot< GUM_SCALAR > *overloaded) |
| Overloads a reference slot. | |
| void | _overloadParameter_ (PRMParameter< GUM_SCALAR > *overloader, PRMParameter< GUM_SCALAR > *overloaded) |
| Overloads a parameter. | |
Built-in types. | |
| enum class | prm_type : char { ALL , CLASS , PRM_INTERFACE , CLASS_ELT , TYPE , SYSTEM , INSTANCE } |
| Enumeration of the different types of objects handled by a PRM. More... | |
| static std::string | LEFT_CAST () |
| Enumeration of the different types of objects handled by a PRM. | |
| static std::string | RIGHT_CAST () |
| Enumeration of the different types of objects handled by a PRM. | |
| static std::string | enum2str (prm_type type) |
| Returns the string representation of a PRMObject. | |
| static INLINE bool | isClass (const PRMObject &obj) |
| Returns true if obj_ptr is of type Class. | |
| static INLINE bool | isInterface (const PRMObject &obj) |
| Returns true if obj_ptr is of type PRMInterface. | |
| static INLINE bool | isInstance (const PRMObject &obj) |
| Returns true if obj_ptr is of type PRMInstance. | |
A PRMClass is an object of a PRM representing a fragment of a Bayesian network which can be instantiated in PRMInstance.
Definition at line 77 of file PRMClass.h.
|
stronginherited |
Enumeration of the different types of objects handled by a PRM.
The "all" type is used to tell that we want any kind of PRMType (useful with iterators for example). No PRMObject will ever have "all" as type.
| Enumerator | |
|---|---|
| ALL | |
| CLASS | |
| PRM_INTERFACE | |
| CLASS_ELT | |
| TYPE | |
| SYSTEM | |
| INSTANCE | |
Definition at line 90 of file PRMObject.h.
|
explicit |
Default constructor.
| name | The class name. |
Definition at line 60 of file PRMClass_tpl.h.
References PRMClass(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::PRMClassElementContainer(), _bijection_, _implements_, _superClass_, and gum::prm::PRMObject::name().
Referenced by PRMClass(), PRMClass(), PRMClass(), PRMClass(), PRMClass(), PRMClass(), ~PRMClass(), _addExtension_(), _inheritClass_(), isSubTypeOf(), operator=(), operator=(), PRMInterface< GUM_SCALAR >, and super().
| gum::prm::PRMClass< GUM_SCALAR >::PRMClass | ( | std::string_view | name, |
| PRMClass< GUM_SCALAR > & | super, | ||
| bool | delayInheritance = false ) |
Constructor for building a subclass of super.
| name | The subclass name. |
| super | The super Class<GUM_SCALAR> of this. |
| delayInheritance | If true, inheritance will be delayed. |
Definition at line 67 of file PRMClass_tpl.h.
References PRMClass(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::PRMClassElementContainer(), _bijection_, _dag_, _implements_, _inheritClass_(), _superClass_, gum::prm::PRMObject::name(), and super().
| gum::prm::PRMClass< GUM_SCALAR >::PRMClass | ( | std::string_view | name, |
| const Set< PRMInterface< GUM_SCALAR > * > & | set, | ||
| bool | delayInheritance = false ) |
Constructor for building a Class<GUM_SCALAR> implementing several each interface in set.
| name | The sub class name. |
| set | The Set of implemented interfaces. |
| delayInheritance | If true, inheritance will be delayed. |
Definition at line 80 of file PRMClass_tpl.h.
References PRMClass(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::PRMClassElementContainer(), _bijection_, _implementInterfaces_(), _implements_, _superClass_, gum::prm::PRMObject::name(), and PRMInterface< GUM_SCALAR >.
| gum::prm::PRMClass< GUM_SCALAR >::PRMClass | ( | std::string_view | name, |
| PRMClass< GUM_SCALAR > & | super, | ||
| const Set< PRMInterface< GUM_SCALAR > * > & | set, | ||
| bool | delayInheritance = false ) |
Constructor for building a subclass of super and implementing each interface in set.
| name | The sub class name. |
| super | The super Class<GUM_SCALAR> of this. |
| set | The Set of implemented interfaces. |
| delayInheritance | If true, inheritance will be delayed. |
Definition at line 91 of file PRMClass_tpl.h.
References PRMClass(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::PRMClassElementContainer(), _bijection_, _dag_, _implementInterfaces_(), _implements_, _inheritClass_(), _superClass_, gum::prm::PRMObject::name(), PRMInterface< GUM_SCALAR >, and super().
|
delete |
|
delete |
|
override |
Destructor.
Definition at line 133 of file PRMClass_tpl.h.
References PRMClass(), _bijection_, _implements_, and _nodeIdMap_.
|
private |
Recursively adds cast descendant from start to end in this Class<GUM_SCALAR>.
Definition at line 907 of file PRMClass_tpl.h.
References _addIOInterfaceFlags_(), _attributes_, _dag_, _nameMap_, _nodeIdMap_, gum::prm::PRMAttribute< GUM_SCALAR >::getCastDescendant(), gum::prm::PRMClassElement< GUM_SCALAR >::id(), gum::prm::nextNodeId(), gum::prm::PRMClassElement< GUM_SCALAR >::safeName(), gum::prm::PRMAttribute< GUM_SCALAR >::setAsCastDescendant(), gum::prm::PRMClassElement< GUM_SCALAR >::setId(), gum::prm::PRMType::superType(), and gum::prm::PRMAttribute< GUM_SCALAR >::type().
|
private |
Recursively adds cast descendant of attr in this Class<GUM_SCALAR>.
Definition at line 678 of file PRMClass_tpl.h.
References _attributes_, _dag_, _implements_, _nameMap_, _nodeIdMap_, gum::prm::PRMAttribute< GUM_SCALAR >::getCastDescendant(), gum::prm::PRMClassElement< GUM_SCALAR >::id(), implements(), gum::prm::nextNodeId(), gum::prm::PRMClassElement< GUM_SCALAR >::safeName(), and gum::prm::PRMClassElement< GUM_SCALAR >::setId().
Referenced by _overloadAttribute_(), and add().
|
private |
This method is called when a sub-Class<GUM_SCALAR> of this Class<GUM_SCALAR> is created.
| c | The Class<GUM_SCALAR> added as a direct sub-Class<GUM_SCALAR> of this. |
| DuplicateElement | Raised if c is already a sub-Class<GUM_SCALAR> of this. |
Definition at line 1186 of file PRMClass_tpl.h.
References PRMClass(), and _extensions_.
|
private |
Check if elt is present in an implementation. If it is, its IO flags are updated.
Definition at line 941 of file PRMClass_tpl.h.
References _implements_, gum::prm::PRMClassElementContainer< GUM_SCALAR >::getIOFlag_(), gum::prm::PRMObject::name(), PRMInterface< GUM_SCALAR >, gum::prm::PRMClassElementContainer< GUM_SCALAR >::setIOFlag_(), and super().
Referenced by _addCastDescendants_(), add(), and overload().
|
private |
Check that a given element respects a specific interface.
Definition at line 532 of file PRMClass_tpl.h.
References _dag_, _nodeIdMap_, gum::prm::PRMClassElementContainer< GUM_SCALAR >::exists(), get(), gum::prm::PRMInterface< GUM_SCALAR >::get(), GUM_ERROR, gum::prm::PRMClassElement< GUM_SCALAR >::id(), gum::prm::PRMClassElement< GUM_SCALAR >::isAggregate(), gum::prm::PRMClassElement< GUM_SCALAR >::isAttribute(), gum::prm::PRMType::isSubTypeOf(), gum::prm::PRMObject::name(), PRMInterface< GUM_SCALAR >, gum::prm::PRMClassElement< GUM_SCALAR >::setId(), and gum::prm::PRMClassElement< GUM_SCALAR >::type().
Referenced by _checkInterfaces_().
|
private |
Check that a given element respects all the class interfaces.
Definition at line 523 of file PRMClass_tpl.h.
References _checkInterface_(), _implements_, implements(), and gum::prm::PRMObject::name().
Referenced by add().
|
private |
Return true of overloaded can be overload by overloader.
Definition at line 1143 of file PRMClass_tpl.h.
References gum::prm::PRMClassElement< GUM_SCALAR >::elt_type(), gum::prm::PRMType::isSubTypeOf(), gum::prm::PRMClassElement< GUM_SCALAR >::prm_attribute, gum::prm::PRMClassElement< GUM_SCALAR >::prm_parameter, gum::prm::PRMClassElement< GUM_SCALAR >::prm_refslot, gum::prm::PRMClassElement< GUM_SCALAR >::type(), and gum::prm::PRMParameter< GUM_SCALAR >::valueType().
Referenced by overload().
|
private |
Check that a given element respects a specific interface.
Definition at line 581 of file PRMClass_tpl.h.
References _dag_, _nodeIdMap_, gum::prm::PRMReferenceSlot< GUM_SCALAR >::elt_type(), gum::prm::PRMInterface< GUM_SCALAR >::get(), GUM_ERROR, gum::prm::PRMClassElement< GUM_SCALAR >::id(), gum::prm::PRMObject::name(), PRMInterface< GUM_SCALAR >, gum::prm::PRMClassElement< GUM_SCALAR >::setId(), and gum::prm::PRMReferenceSlot< GUM_SCALAR >::slotType().
Referenced by _checkRefInterfaces_().
|
private |
Check that a given element respects all the class interfaces.
Definition at line 572 of file PRMClass_tpl.h.
References _checkRefInterface_(), _implements_, implements(), and gum::prm::PRMObject::name().
Referenced by add().
|
private |
Proceed with the implementation of interfaces.
Definition at line 116 of file PRMClass_tpl.h.
References _dag_, _implements_, _superClass_, isSubTypeOf(), and super().
Referenced by PRMClass(), PRMClass(), and initializeInheritance().
|
private |
Proceed with the copy when this inherits c.
Definition at line 317 of file PRMClass_tpl.h.
References PRMClass(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::PRMClassElementContainer(), _aggregates_, _attributes_, _implements_, _nameMap_, _nodeIdMap_, _parameters_, _referenceSlots_, _slotChains_, _superClass_, gum::ArcGraphPart::arcs(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::containerDag(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::copyIOFlags_(), gum::prm::PRMClassElement< GUM_SCALAR >::id(), gum::BijectionImplementation< T1, T2, Gen >::insert(), gum::prm::PRMObject::name(), gum::prm::PRMClassElement< GUM_SCALAR >::safeName(), gum::SequenceImplementation< Key, Gen >::setAtPos(), gum::prm::PRMClassElement< GUM_SCALAR >::setId(), gum::prm::PRMAggregate< GUM_SCALAR >::type(), gum::prm::PRMSlotChain< GUM_SCALAR >::type(), and gum::prm::PRMType::variable().
Referenced by PRMClass(), and PRMClass().
|
private |
Overloads an aggregate.
Definition at line 1136 of file PRMClass_tpl.h.
References _aggregates_, _nameMap_, and gum::prm::PRMClassElement< GUM_SCALAR >::safeName().
Referenced by overload().
|
private |
Overloads an attribute.
Definition at line 774 of file PRMClass_tpl.h.
References _addCastDescendants_(), _attributes_, _dag_, _nameMap_, _nodeIdMap_, gum::prm::PRMClassElement< GUM_SCALAR >::id(), gum::prm::PRMObject::name(), gum::prm::nextNodeId(), gum::prm::PRMAttribute< GUM_SCALAR >::overload(), gum::prm::PRMClassElement< GUM_SCALAR >::safeName(), gum::prm::PRMClassElement< GUM_SCALAR >::setId(), and gum::prm::PRMAttribute< GUM_SCALAR >::type().
Referenced by overload().
|
private |
Overloads a parameter.
Definition at line 895 of file PRMClass_tpl.h.
References _nameMap_, _nodeIdMap_, _parameters_, gum::prm::PRMClassElement< GUM_SCALAR >::id(), gum::prm::PRMObject::name(), gum::prm::PRMClassElement< GUM_SCALAR >::safeName(), and gum::prm::PRMClassElement< GUM_SCALAR >::setId().
Referenced by overload().
|
private |
Overloads a reference slot.
Definition at line 800 of file PRMClass_tpl.h.
References _nameMap_, _nodeIdMap_, _referenceSlots_, _slotChains_, gum::SequenceImplementation< Key, Gen >::atPos(), gum::SequenceImplementation< Key, Gen >::back(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::containerDag(), gum::SequenceImplementation< Key, Gen >::erase(), get(), GUM_ERROR, gum::prm::PRMClassElement< GUM_SCALAR >::id(), gum::SequenceImplementation< Key, Gen >::insert(), gum::prm::PRMClassElement< GUM_SCALAR >::isAttribute(), gum::prm::PRMSlotChain< GUM_SCALAR >::lastElt(), gum::prm::PRMObject::name(), gum::prm::PRMClassElement< GUM_SCALAR >::safeName(), gum::prm::PRMClassElement< GUM_SCALAR >::setId(), gum::SequenceImplementation< Key, Gen >::size(), gum::prm::PRMReferenceSlot< GUM_SCALAR >::slotType(), and gum::prm::PRMAttribute< GUM_SCALAR >::type().
Referenced by overload().
|
overridevirtual |
See gum::prm::add(PRMClassElement<GUM_SCALAR>*).
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 605 of file PRMClass_tpl.h.
References _addCastDescendants_(), _addIOInterfaceFlags_(), _aggregates_, _attributes_, _checkInterfaces_(), _checkRefInterfaces_(), _dag_, _nameMap_, _nodeIdMap_, _parameters_, _referenceSlots_, _slotChains_, gum::prm::PRMClassElement< GUM_SCALAR >::elt_type(), GUM_ERROR, gum::prm::PRMClassElement< GUM_SCALAR >::id(), gum::prm::PRMClassElement< GUM_SCALAR >::isParameter(), gum::prm::PRMClassElement< GUM_SCALAR >::isSlotChain(), gum::prm::PRMObject::name(), gum::prm::nextNodeId(), gum::prm::PRMClassElement< GUM_SCALAR >::prm_aggregate, gum::prm::PRMClassElement< GUM_SCALAR >::prm_attribute, gum::prm::PRMClassElement< GUM_SCALAR >::prm_parameter, gum::prm::PRMClassElement< GUM_SCALAR >::prm_refslot, gum::prm::PRMClassElement< GUM_SCALAR >::prm_slotchain, gum::prm::PRMClassElement< GUM_SCALAR >::safeName(), and gum::prm::PRMClassElement< GUM_SCALAR >::setId().
Referenced by gum::prm::PRMFactory< GUM_SCALAR >::_retrieveInputs_(), gum::prm::PRMFactory< GUM_SCALAR >::addAggregator(), gum::prm::PRMFactory< GUM_SCALAR >::addAttribute(), gum::prm::PRMFactory< GUM_SCALAR >::addNoisyOrCompound(), and gum::prm::PRMFactory< GUM_SCALAR >::startAggregator().
|
overridevirtual |
See gum::prm::PRMClassElementContainer<GUM_SCALAR>::addArc().
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 482 of file PRMClass_tpl.h.
References _dag_, _nameMap_, gum::prm::PRMClassElement< GUM_SCALAR >::elt_type(), gum::prm::PRMSlotChain< GUM_SCALAR >::end(), get(), GUM_ERROR, gum::prm::PRMClassElement< GUM_SCALAR >::id(), gum::prm::PRMSlotChain< GUM_SCALAR >::lastElt(), gum::prm::PRMClassElement< GUM_SCALAR >::prm_refslot, gum::prm::PRMClassElement< GUM_SCALAR >::prm_slotchain, and gum::prm::PRMClassElementContainer< GUM_SCALAR >::setInputNode().
Referenced by gum::prm::PRMFactory< GUM_SCALAR >::_addParent_(), gum::prm::PRMFactory< GUM_SCALAR >::addAggregator(), gum::prm::PRMFactory< GUM_SCALAR >::addAttribute(), and completeInheritance().
| const Set< PRMAggregate< GUM_SCALAR > * > & gum::prm::PRMClass< GUM_SCALAR >::aggregates | ( | ) | const |
Returns the set of PRMAggregate<GUM_SCALAR> of this Class<GUM_SCALAR>.
Definition at line 1082 of file PRMClass_tpl.h.
References _aggregates_.
| const Set< PRMAttribute< GUM_SCALAR > * > & gum::prm::PRMClass< GUM_SCALAR >::attributes | ( | ) | const |
Returns the set of PRMAttribute<GUM_SCALAR> of this Class<GUM_SCALAR>.
Definition at line 1020 of file PRMClass_tpl.h.
References _attributes_.
|
virtualinherited |
Returns true if elt belongs to this PRMClassElementContainer.
| elt | A PRMClassElement<GUM_SCALAR>. |
Definition at line 191 of file PRMClassElementContainer_tpl.h.
References get(), and gum::prm::PRMClassElement< GUM_SCALAR >::safeName().
| void gum::prm::PRMClass< GUM_SCALAR >::completeInheritance | ( | std::string_view | attr | ) |
Definition at line 296 of file PRMClass_tpl.h.
References _bijection_, _superClass_, addArc(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::containerDag(), gum::prm::PRMAttribute< GUM_SCALAR >::copyCpf(), get(), GUM_ERROR, gum::prm::PRMClassElement< GUM_SCALAR >::isAggregate(), gum::prm::PRMClassElement< GUM_SCALAR >::isAttribute(), gum::prm::PRMObject::name(), and super().
|
virtualinherited |
Returns the gum::DAG of this PRMClassElementContainer.
Be very careful when using NodeId with PRMClassElement<GUM_SCALAR>: there is no guarantee that an inherited PRMClassElement<GUM_SCALAR> will have the same NodeId than its superclass counterpart.
When dealing with different classes and interfaces ALWAYS use safe-name as identifier.
Definition at line 199 of file PRMClassElementContainer_tpl.h.
References dag_().
Referenced by gum::prm::ClassDependencyGraph< GUM_SCALAR >::_addArcs_(), gum::prm::PRMClass< GUM_SCALAR >::_inheritClass_(), gum::prm::ClassBayesNet< GUM_SCALAR >::_init_(), gum::prm::SVE< GUM_SCALAR >::_initLiftedNodes_(), gum::prm::SVED< GUM_SCALAR >::_initLiftedNodes_(), gum::prm::PRMClass< GUM_SCALAR >::_overloadReference_(), gum::prm::PRMFactory< GUM_SCALAR >::addAttribute(), gum::prm::PRMClass< GUM_SCALAR >::completeInheritance(), exists(), and operator<<().
|
protectedvirtualinherited |
Copy the IO Flags of c in this PRMClassElementContainer.
| c | A PRMClassElementContainer. |
Definition at line 58 of file PRMClassElementContainer_tpl.h.
References PRMClassElementContainer(), _IOFlags_, get(), and setIOFlag_().
Referenced by gum::prm::PRMClass< GUM_SCALAR >::_inheritClass_().
|
overrideprotectedvirtual |
returns a constant reference over this interface's dag.
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 976 of file PRMClass_tpl.h.
References _dag_.
|
overrideprotectedvirtual |
Returns a non constant reference over this PRMInterface<GUM_SCALAR>'s DAG.
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 981 of file PRMClass_tpl.h.
References _dag_.
|
staticinherited |
Returns the string representation of a PRMObject.
Definition at line 75 of file PRMObject_inl.h.
References CLASS, CLASS_ELT, INSTANCE, PRM_INTERFACE, SYSTEM, and TYPE.
Referenced by gum::prm::operator<<().
|
virtualinherited |
Returns true if a member with the given id exists in this PRMClassElementContainer or in the PRMClassElementContainer hierarchy.
| id | A NodeId. |
Definition at line 178 of file PRMClassElementContainer_tpl.h.
References containerDag().
|
virtualinherited |
Returns true if a member with the given name exists in this PRMClassElementContainer or in the PRMClassElementContainer hierarchy.
Definition at line 183 of file PRMClassElementContainer_tpl.h.
References get(), and gum::prm::PRMObject::name().
Referenced by gum::prm::PRMFactory< GUM_SCALAR >::_addParent_(), gum::prm::PRMFactory< GUM_SCALAR >::_buildSlotChain_(), gum::prm::PRMClass< GUM_SCALAR >::_checkInterface_(), gum::prm::PRMFactory< GUM_SCALAR >::_checkInterfaceImplementation_(), gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::_checkLocalParent_(), gum::prm::o3prm::O3SystemFactory< GUM_SCALAR >::_checkParameters_(), gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::_checkRawCPT_(), gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::_checkSlotChainLink_(), gum::prm::ClassBayesNet< GUM_SCALAR >::_init_(), gum::prm::PRMFactory< GUM_SCALAR >::_retrieveInputs_(), gum::prm::PRMFactory< GUM_SCALAR >::addNoisyOrCompound(), gum::prm::PRMFactory< GUM_SCALAR >::continueAggregator(), gum::prm::PRMFactory< GUM_SCALAR >::continueAttribute(), gum::prm::PRMClass< GUM_SCALAR >::overload(), gum::prm::PRMInterface< GUM_SCALAR >::overload(), setInputNode(), setOutputNode(), and gum::prm::PRMFactory< GUM_SCALAR >::startAttribute().
| const Set< PRMClass< GUM_SCALAR > * > & gum::prm::PRMClass< GUM_SCALAR >::extensions | ( | ) | const |
Returns the set of Class<GUM_SCALAR> which are direct sub-Class<GUM_SCALAR> of this Class<GUM_SCALAR>.
Definition at line 1181 of file PRMClass_tpl.h.
References _extensions_.
|
overrideprotectedvirtual |
Fills set with all the subtypes of this Class<GUM_SCALAR>.
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 932 of file PRMClass_tpl.h.
References gum::prm::PRMClassElementContainer< GUM_SCALAR >::PRMClassElementContainer(), and _extensions_.
|
overridevirtual |
See gum::prm::PRMClassElementContainer<GUM_SCALAR>::get(NodeId).
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 993 of file PRMClass_tpl.h.
References _nodeIdMap_, and GUM_ERROR.
|
overridevirtual |
See gum::prm::PRMClassElementContainer<GUM_SCALAR>::get(NodeId).
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 986 of file PRMClass_tpl.h.
References _nodeIdMap_, and GUM_ERROR.
Referenced by _checkInterface_(), gum::prm::PRMFactory< GUM_SCALAR >::_checkInterfaceImplementation_(), gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::_checkLocalParent_(), gum::prm::o3prm::O3SystemFactory< GUM_SCALAR >::_checkParameters_(), gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::_checkRawCPT_(), gum::prm::ClassBayesNet< GUM_SCALAR >::_init_(), gum::prm::SVE< GUM_SCALAR >::_initLiftedNodes_(), gum::prm::SVED< GUM_SCALAR >::_initLiftedNodes_(), _overloadReference_(), gum::prm::PRMFactory< GUM_SCALAR >::_retrieveInputs_(), addArc(), gum::prm::PRMFactory< GUM_SCALAR >::addAttribute(), gum::prm::PRMFactory< GUM_SCALAR >::addNoisyOrCompound(), completeInheritance(), isCastDescendant(), operator[](), operator[](), operator[](), and operator[]().
|
overridevirtual |
See gum::prm::PRMClassElementContainer<GUM_SCALAR>::get(const std::string&).
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 1011 of file PRMClass_tpl.h.
References _nameMap_, GUM_ERROR, and gum::prm::PRMObject::name().
|
overridevirtual |
See gum::prm::PRMClassElementContainer<GUM_SCALAR>::get(const std::string&).
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 1002 of file PRMClass_tpl.h.
References _nameMap_, GUM_ERROR, and gum::prm::PRMObject::name().
|
protectedvirtualinherited |
Returns the IO flags of a PRMClassElement<GUM_SCALAR>.
| elt | The PRMClassElement<GUM_SCALAR>. |
| NotFound | Raised if elt does not have any IO flags. |
Definition at line 151 of file PRMClassElementContainer_tpl.h.
References _IOFlags_, GUM_ERROR, and gum::prm::PRMClassElement< GUM_SCALAR >::safeName().
Referenced by gum::prm::PRMClass< GUM_SCALAR >::_addIOInterfaceFlags_(), gum::prm::PRMClass< GUM_SCALAR >::isOutputNode(), and gum::prm::PRMInterface< GUM_SCALAR >::isOutputNode().
|
protectedvirtualinherited |
Returns the IO flags of a PRMClassElement<GUM_SCALAR>.
| elt | The PRMClassElement<GUM_SCALAR>. |
| NotFound | Raised if elt does not have any IO flags. |
Definition at line 159 of file PRMClassElementContainer_tpl.h.
References _IOFlags_, GUM_ERROR, and gum::prm::PRMClassElement< GUM_SCALAR >::safeName().
| const Set< PRMInterface< GUM_SCALAR > * > & gum::prm::PRMClass< GUM_SCALAR >::implements | ( | ) | const |
Returns the Set of PRMInterface<GUM_SCALAR> implemented by this Class<GUM_SCALAR>.
| NotFound | Raised if this Class<GUM_SCALAR> doesn't implement any PRMInterface<GUM_SCALAR>. |
Definition at line 1106 of file PRMClass_tpl.h.
References _implements_, and GUM_ERROR.
Referenced by _addCastDescendants_(), gum::prm::PRMFactory< GUM_SCALAR >::_checkInterfaceImplementation_(), _checkInterfaces_(), and _checkRefInterfaces_().
| void gum::prm::PRMClass< GUM_SCALAR >::inheritAggregates | ( | ) |
Definition at line 237 of file PRMClass_tpl.h.
References _aggregates_, _bijection_, _dag_, _nameMap_, _nodeIdMap_, _superClass_, gum::prm::PRMClassElement< GUM_SCALAR >::id(), gum::prm::PRMObject::name(), gum::prm::PRMClassElement< GUM_SCALAR >::safeName(), gum::prm::PRMClassElement< GUM_SCALAR >::setId(), gum::prm::PRMAggregate< GUM_SCALAR >::setLabel(), gum::prm::PRMAggregate< GUM_SCALAR >::sharedLabel(), gum::prm::PRMAggregate< GUM_SCALAR >::type(), and gum::prm::PRMType::variable().
| void gum::prm::PRMClass< GUM_SCALAR >::inheritAttributes | ( | ) |
Definition at line 209 of file PRMClass_tpl.h.
References _attributes_, _bijection_, _dag_, _nameMap_, _nodeIdMap_, and _superClass_.
| void gum::prm::PRMClass< GUM_SCALAR >::inheritParameters | ( | ) |
Definition at line 190 of file PRMClass_tpl.h.
References _dag_, _nameMap_, _nodeIdMap_, _parameters_, and _superClass_.
| void gum::prm::PRMClass< GUM_SCALAR >::inheritReferenceSlots | ( | ) |
Definition at line 164 of file PRMClass_tpl.h.
References gum::prm::PRMClassElementContainer< GUM_SCALAR >::PRMClassElementContainer(), _dag_, _nameMap_, _nodeIdMap_, _referenceSlots_, and _superClass_.
| void gum::prm::PRMClass< GUM_SCALAR >::inheritSlotChains | ( | ) |
Definition at line 268 of file PRMClass_tpl.h.
References _bijection_, _dag_, _nameMap_, _nodeIdMap_, _slotChains_, and _superClass_.
| void gum::prm::PRMClass< GUM_SCALAR >::initializeInheritance | ( | ) |
Definition at line 146 of file PRMClass_tpl.h.
References _implementInterfaces_(), _implements_, and _superClass_.
| bool gum::prm::PRMClass< GUM_SCALAR >::isCastDescendant | ( | std::string_view | safe_name | ) | const |
Return true if the attribute named safe_name is a cast descendant.
Cast descendant are automatically added PRMAttribute<GUM_SCALAR> for type casting.
| safe_name | The safe name of an PRMAttribute<GUM_SCALAR> of this class. |
| NotFound | Raised if safe_name does not name an PRMAttribute<GUM_SCALAR> in this Class<GUM_SCALAR>. |
Definition at line 1191 of file PRMClass_tpl.h.
References get(), GUM_ERROR, gum::prm::PRMObject::name(), gum::prm::PRMType::name(), and gum::prm::PRMClassElement< GUM_SCALAR >::type().
Returns true if obj_ptr is of type Class.
Definition at line 93 of file PRMObject_inl.h.
References PRMObject().
Referenced by gum::prm::PRMClass< GUM_SCALAR >::scope(), and gum::prm::PRMFactory< GUM_SCALAR >::startAttribute().
|
virtualinherited |
Returns true if the node is an inner node.
PRMAttribute or PRMAggregate can either be input, output, both or internal nodes.
By defaut, attributes and aggregates are inner nodes.
| elt | A PRMClassElement<GUM_SCALAR>. |
| NotFound | Raised if NodeId does'nt match any PRMClassElement<GUM_SCALAR> in this. |
| WrongClassElement | Raised if NodeId is neither an PRMAttribute nor an PRMAggregate. |
Definition at line 137 of file PRMClassElementContainer_tpl.h.
References _IOFlags_, and gum::prm::PRMClassElement< GUM_SCALAR >::safeName().
Referenced by gum::prm::SVE< GUM_SCALAR >::_initLiftedNodes_().
|
virtualinherited |
Returns true if the node is an input node.
PRMAttribute or PRMAggregate can either be input, output, both or internal nodes.
By defaut, attributes and aggregates are inner nodes.
| elt | A PRMClassElement<GUM_SCALAR>. |
Definition at line 89 of file PRMClassElementContainer_tpl.h.
References _IOFlags_, and gum::prm::PRMClassElement< GUM_SCALAR >::safeName().
Returns true if obj_ptr is of type PRMInstance.
Definition at line 101 of file PRMObject_inl.h.
References PRMObject(), INSTANCE, and obj_type().
Returns true if obj_ptr is of type PRMInterface.
Definition at line 97 of file PRMObject_inl.h.
|
overridevirtual |
Returns true if elt is an output node.
| elt | A node of this class. |
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 1202 of file PRMClass_tpl.h.
References _implements_, _superClass_, and gum::prm::PRMClassElementContainer< GUM_SCALAR >::getIOFlag_().
Referenced by gum::prm::SVE< GUM_SCALAR >::_initLiftedNodes_(), and gum::prm::SVED< GUM_SCALAR >::_initLiftedNodes_().
|
overridevirtual |
Test if this Class<GUM_SCALAR> is a subclass of cec.
If cec is a Class<GUM_SCALAR> then this Class<GUM_SCALAR> is a subclass of cec if they are equal or there exists a superclass of this Class<GUM_SCALAR> which is equal to cec.
If cec is an PRMInterface<GUM_SCALAR> then this Class<GUM_SCALAR> is a subclass of cec if it implements cec or if there exists a superclass of this Class<GUM_SCALAR> which implements cec.
| cec | The PRMClassElementContainer<GUM_SCALAR> for which we determine if this Class<GUM_SCALAR> is a subclass of it. |
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 446 of file PRMClass_tpl.h.
References PRMClass(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::PRMClassElementContainer(), _implements_, _superClass_, gum::prm::PRMObject::CLASS, GUM_ERROR, gum::prm::PRMObject::obj_type(), gum::prm::PRMObject::PRM_INTERFACE, and PRMInterface< GUM_SCALAR >.
Referenced by _implementInterfaces_().
|
virtualinherited |
Test if this PRMClassElementContainer is a super type of cec.
This returns cec.isSubTypeOf(*this).
| cec |
Definition at line 145 of file PRMClassElementContainer_tpl.h.
References PRMClassElementContainer(), and isSubTypeOf().
|
staticinherited |
Enumeration of the different types of objects handled by a PRM.
The "all" type is used to tell that we want any kind of PRMType (useful with iterators for example). No PRMObject will ever have "all" as type.
Definition at line 71 of file PRMObject_inl.h.
Referenced by gum::prm::PRMAggregate< GUM_SCALAR >::PRMAggregate(), gum::prm::PRMAggregate< GUM_SCALAR >::PRMAggregate(), gum::prm::PRMFormAttribute< GUM_SCALAR >::PRMFormAttribute(), gum::prm::PRMReferenceSlot< GUM_SCALAR >::PRMReferenceSlot(), gum::prm::PRMScalarAttribute< GUM_SCALAR >::PRMScalarAttribute(), gum::prm::PRMSlotChain< GUM_SCALAR >::PRMSlotChain(), gum::prm::PRMClassElement< GUM_SCALAR >::cast(), and gum::prm::decomposePath().
|
inherited |
Returns the name of this object.
Definition at line 57 of file PRMObject_inl.h.
References _name_.
Referenced by gum::prm::PRMAggregate< GUM_SCALAR >::PRMAggregate(), gum::prm::PRMAggregate< GUM_SCALAR >::PRMAggregate(), gum::prm::PRMAttribute< GUM_SCALAR >::PRMAttribute(), gum::prm::PRMClass< GUM_SCALAR >::PRMClass(), gum::prm::PRMClass< GUM_SCALAR >::PRMClass(), gum::prm::PRMClass< GUM_SCALAR >::PRMClass(), gum::prm::PRMClass< GUM_SCALAR >::PRMClass(), gum::prm::PRMClassElement< GUM_SCALAR >::PRMClassElement(), gum::prm::PRMClassElement< GUM_SCALAR >::PRMClassElement(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::PRMClassElementContainer(), gum::prm::PRMFormAttribute< GUM_SCALAR >::PRMFormAttribute(), gum::prm::PRMFormAttribute< GUM_SCALAR >::PRMFormAttribute(), gum::prm::PRMFuncAttribute< GUM_SCALAR >::PRMFuncAttribute(), gum::prm::PRMInstance< GUM_SCALAR >::PRMInstance(), gum::prm::PRMInterface< GUM_SCALAR >::PRMInterface(), gum::prm::PRMInterface< GUM_SCALAR >::PRMInterface(), gum::prm::PRMInterface< GUM_SCALAR >::PRMInterface(), PRMObject(), gum::prm::PRMParameter< GUM_SCALAR >::PRMParameter(), gum::prm::PRMParameter< GUM_SCALAR >::PRMParameter(), gum::prm::PRMReferenceSlot< GUM_SCALAR >::PRMReferenceSlot(), gum::prm::PRMScalarAttribute< GUM_SCALAR >::PRMScalarAttribute(), gum::prm::PRMSlotChain< GUM_SCALAR >::PRMSlotChain(), gum::prm::PRMSlotChain< GUM_SCALAR >::PRMSlotChain(), gum::prm::PRMSlotChain< GUM_SCALAR >::PRMSlotChain(), gum::prm::PRMSystem< GUM_SCALAR >::PRMSystem(), gum::prm::__print_attribute__(), gum::prm::__print_instance__(), gum::prm::SVE< GUM_SCALAR >::_addDelayedVariable_(), gum::prm::PRMClass< GUM_SCALAR >::_addIOInterfaceFlags_(), gum::prm::PRMFactory< GUM_SCALAR >::_addParent_(), gum::prm::PRMInstance< GUM_SCALAR >::_addReferingInstance_(), gum::prm::PRMClass< GUM_SCALAR >::_checkInterface_(), gum::prm::PRMFactory< GUM_SCALAR >::_checkInterfaceImplementation_(), gum::prm::PRMClass< GUM_SCALAR >::_checkInterfaces_(), gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::_checkRawCPT_(), gum::prm::PRMClass< GUM_SCALAR >::_checkRefInterface_(), gum::prm::PRMClass< GUM_SCALAR >::_checkRefInterfaces_(), gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::_checkRuleCPTSumsTo1_(), gum::prm::PRMInstance< GUM_SCALAR >::_copyAggregates_(), gum::prm::PRMInstance< GUM_SCALAR >::_copyAttribute_(), gum::prm::PRMSlotChain< GUM_SCALAR >::_copyLastElt_(), gum::prm::PRMSystem< GUM_SCALAR >::_groundAgg_(), gum::prm::PRMSystem< GUM_SCALAR >::_groundRef_(), gum::prm::PRMSystem< GUM_SCALAR >::_groundTensor_(), gum::prm::PRMSystem< double >::_groundTensor_(), gum::prm::PRMClass< GUM_SCALAR >::_inheritClass_(), gum::prm::PRMClass< GUM_SCALAR >::_overloadAttribute_(), gum::prm::PRMInterface< GUM_SCALAR >::_overloadAttribute_(), gum::prm::PRMClass< GUM_SCALAR >::_overloadParameter_(), gum::prm::PRMClass< GUM_SCALAR >::_overloadReference_(), gum::prm::PRMInterface< GUM_SCALAR >::_overloadReferenceSlot_(), gum::prm::gspan::StrictSearch< GUM_SCALAR >::_str_(), gum::prm::gspan::StrictSearch< GUM_SCALAR >::_str_(), gum::prm::gspan::StrictSearch< GUM_SCALAR >::_str_(), gum::prm::StructuredInference< GUM_SCALAR >::_str_(), gum::prm::StructuredInference< GUM_SCALAR >::_str_(), gum::prm::StructuredInference< GUM_SCALAR >::_str_(), gum::prm::PRMClass< GUM_SCALAR >::add(), gum::prm::PRMInterface< GUM_SCALAR >::add(), gum::prm::PRMSystem< GUM_SCALAR >::add(), gum::prm::PRMFactory< GUM_SCALAR >::addAggregator(), gum::prm::PRMFormAttribute< GUM_SCALAR >::addParent(), gum::prm::PRMScalarAttribute< GUM_SCALAR >::addParent(), gum::prm::PRMClassElement< GUM_SCALAR >::cast(), gum::prm::PRMClass< GUM_SCALAR >::completeInheritance(), gum::prm::PRMFormAttribute< GUM_SCALAR >::copy(), gum::prm::PRMScalarAttribute< GUM_SCALAR >::copy(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::exists(), gum::prm::PRMInstance< GUM_SCALAR >::exists(), gum::prm::PRMSystem< GUM_SCALAR >::exists(), gum::prm::o3prmr::O3prmrInterpreter::findAttributeName(), gum::prm::o3prmr::O3prmrInterpreter::findInstanceName(), gum::prm::PRMClass< GUM_SCALAR >::get(), gum::prm::PRMClass< GUM_SCALAR >::get(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::get(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::get(), gum::prm::PRMInstance< GUM_SCALAR >::get(), gum::prm::PRMInstance< GUM_SCALAR >::get(), gum::prm::PRMInterface< GUM_SCALAR >::get(), gum::prm::PRMInterface< GUM_SCALAR >::get(), gum::prm::PRMSystem< GUM_SCALAR >::get(), gum::prm::PRMSystem< GUM_SCALAR >::get(), gum::prm::PRMSystem< GUM_SCALAR >::getArray(), gum::prm::PRMSystem< GUM_SCALAR >::getArrayType(), gum::prm::PRMSystem< GUM_SCALAR >::getArrayType(), gum::prm::PRMAggregate< GUM_SCALAR >::getCastDescendant(), gum::prm::PRMFormAttribute< GUM_SCALAR >::getCastDescendant(), gum::prm::PRMScalarAttribute< GUM_SCALAR >::getCastDescendant(), gum::prm::PRMSystem< GUM_SCALAR >::groundedBN(), gum::prm::PRMClass< GUM_SCALAR >::inheritAggregates(), gum::prm::PRMSystem< GUM_SCALAR >::isArray(), gum::prm::PRMClass< GUM_SCALAR >::isCastDescendant(), gum::prm::PRMSystem< GUM_SCALAR >::isInstance(), name(), gum::prm::PRMType::name(), gum::prm::PRMFormAttribute< GUM_SCALAR >::newFactory(), gum::prm::PRMScalarAttribute< GUM_SCALAR >::newFactory(), operator!=(), operator<<(), gum::prm::PRMClass< GUM_SCALAR >::operator=(), operator==(), gum::prm::PRMType::operator==(), gum::prm::PRMClass< GUM_SCALAR >::operator[](), gum::prm::PRMClass< GUM_SCALAR >::operator[](), gum::prm::PRMClassElementContainer< GUM_SCALAR >::operator[](), gum::prm::PRMClassElementContainer< GUM_SCALAR >::operator[](), gum::prm::PRMInterface< GUM_SCALAR >::operator[](), gum::prm::PRMInterface< GUM_SCALAR >::operator[](), gum::prm::PRMClass< GUM_SCALAR >::overload(), gum::prm::PRMInterface< GUM_SCALAR >::overload(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::PRMClassElementContainterConstIterator, gum::prm::PRMFormAttribute< GUM_SCALAR >::setAsCastDescendant(), gum::prm::PRMScalarAttribute< GUM_SCALAR >::setAsCastDescendant(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::setInputNode(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::setOutputNode(), gum::prm::PRMFactory< GUM_SCALAR >::startClass(), gum::prm::PRMFactory< GUM_SCALAR >::startInterface(), and gum::prm::PRMFactory< GUM_SCALAR >::startSystem().
|
inherited |
|
overridevirtual |
Implementation of pure virtual method of PRMObject.
Implements gum::prm::PRMObject.
Definition at line 971 of file PRMClass_tpl.h.
References gum::prm::PRMObject::CLASS.
To PRMObject are equal if they have the same name (which is unique).
Definition at line 69 of file PRMObject_inl.h.
References PRMObject(), _name_, and name().
|
delete |
Move operator. Don't use it.
References PRMClass(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::PRMClassElementContainer(), and gum::prm::PRMObject::name().
|
delete |
To PRMObject are equal if they have the same name (which is unique).
Definition at line 65 of file PRMObject_inl.h.
References PRMObject(), _name_, and name().
|
overridevirtual |
See gum::prm::PRMClassElementContainer<GUM_SCALAR>::operator[](NodeId).
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 1120 of file PRMClass_tpl.h.
References get().
|
overridevirtual |
See gum::prm::PRMClassElementContainer<GUM_SCALAR>::operator[](NodeId).
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 1115 of file PRMClass_tpl.h.
References get().
|
overridevirtual |
See gum::prm::PRMClassElementContainer<GUM_SCALAR>::operator[](const std::string&).
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 1131 of file PRMClass_tpl.h.
References get(), and gum::prm::PRMObject::name().
|
overridevirtual |
See gum::prm::PRMClassElementContainer<GUM_SCALAR>::operator[](const std::string&).
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 1125 of file PRMClass_tpl.h.
References get(), and gum::prm::PRMObject::name().
|
overridevirtual |
See gum::prm::overload(PRMClassElement<GUM_SCALAR>*).
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 713 of file PRMClass_tpl.h.
References _addIOInterfaceFlags_(), _checkOverloadLegality_(), _nameMap_, _overloadAggregate_(), _overloadAttribute_(), _overloadParameter_(), _overloadReference_(), _superClass_, gum::prm::PRMClassElement< GUM_SCALAR >::elt_type(), gum::prm::PRMClassElementContainer< GUM_SCALAR >::exists(), GUM_ERROR, gum::prm::PRMClassElement< GUM_SCALAR >::id(), gum::prm::PRMObject::name(), gum::prm::PRMClassElement< GUM_SCALAR >::prm_aggregate, gum::prm::PRMClassElement< GUM_SCALAR >::prm_attribute, gum::prm::PRMClassElement< GUM_SCALAR >::prm_parameter, gum::prm::PRMClassElement< GUM_SCALAR >::prm_refslot, gum::prm::PRMClassElement< GUM_SCALAR >::prm_slotchain, and super().
Referenced by gum::prm::PRMFactory< GUM_SCALAR >::addAggregator(), and gum::prm::PRMFactory< GUM_SCALAR >::startAggregator().
| const Set< PRMParameter< GUM_SCALAR > * > & gum::prm::PRMClass< GUM_SCALAR >::parameters | ( | ) | const |
Returns the set of parameters of this Class<GUM_SCALAR>.
Definition at line 1025 of file PRMClass_tpl.h.
References _parameters_.
Referenced by scope().
| const Set< PRMReferenceSlot< GUM_SCALAR > * > & gum::prm::PRMClass< GUM_SCALAR >::referenceSlots | ( | ) | const |
Returns the set of PRMReferenceSlot<GUM_SCALAR> of this Class<GUM_SCALAR>.
Definition at line 1087 of file PRMClass_tpl.h.
References _referenceSlots_.
Referenced by scope().
|
staticinherited |
Enumeration of the different types of objects handled by a PRM.
The "all" type is used to tell that we want any kind of PRMType (useful with iterators for example). No PRMObject will ever have "all" as type.
Definition at line 73 of file PRMObject_inl.h.
Referenced by gum::prm::PRMAggregate< GUM_SCALAR >::PRMAggregate(), gum::prm::PRMAggregate< GUM_SCALAR >::PRMAggregate(), gum::prm::PRMFormAttribute< GUM_SCALAR >::PRMFormAttribute(), gum::prm::PRMReferenceSlot< GUM_SCALAR >::PRMReferenceSlot(), gum::prm::PRMScalarAttribute< GUM_SCALAR >::PRMScalarAttribute(), gum::prm::PRMSlotChain< GUM_SCALAR >::PRMSlotChain(), gum::prm::PRMClassElement< GUM_SCALAR >::cast(), and gum::prm::decomposePath().
| HashTable< std::string, const PRMParameter< GUM_SCALAR > * > gum::prm::PRMClass< GUM_SCALAR >::scope | ( | ) | const |
Returns all the parameters in the scope of this class.
&return all the parameters in the scope of this class.
Definition at line 1043 of file PRMClass_tpl.h.
References GUM_ERROR, gum::HashTable< Key, Val >::insert(), gum::prm::PRMObject::isClass(), parameters(), and referenceSlots().
Referenced by gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::_checkRawCPT_(), and gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::_checkRuleCPT_().
|
virtualinherited |
Set the input flag value of id at b.
PRMAttribute or PRMAggregate can either be input, output, both or internal nodes.
By defaut, attributes and aggregates are inner nodes.
| elt | A PRMClassElement<GUM_SCALAR>. |
| b | The flag value. |
| NotFound | Raised if id does'nt match any PRMClassElement<GUM_SCALAR> in this. |
| WrongClassElement | Raised if NodeId is neither an PRMAttribute nor an PRMAggregate. |
Definition at line 97 of file PRMClassElementContainer_tpl.h.
References _IOFlags_, exists(), GUM_ERROR, gum::prm::PRMClassElement< GUM_SCALAR >::isAggregate(), gum::prm::PRMClassElement< GUM_SCALAR >::isAttribute(), gum::prm::PRMObject::name(), gum::prm::PRMClassElement< GUM_SCALAR >::safeName(), and setIOFlag_().
Referenced by gum::prm::PRMClass< GUM_SCALAR >::addArc().
|
protectedvirtualinherited |
Defines the IO flags of a PRMClassElement<GUM_SCALAR>.
| elt | The PRMClassElement<GUM_SCALAR>. |
| flags | The IO flags of elt. Overwrite any existing flags. |
| NotFound | Raised if elt does not have any IO flags. |
Definition at line 168 of file PRMClassElementContainer_tpl.h.
References _IOFlags_, and gum::prm::PRMClassElement< GUM_SCALAR >::safeName().
Referenced by gum::prm::PRMClass< GUM_SCALAR >::_addIOInterfaceFlags_(), copyIOFlags_(), setInputNode(), and setOutputNode().
|
virtualinherited |
Set the output flag value of id at b.
PRMAttribute or PRMAggregate can either be input, output, both or internal nodes.
By defaut, attributes and aggregates are inner nodes.
| elt | A PRMClassElement<GUM_SCALAR>. |
| b | The flag value. |
| NotFound | Raised if id does'nt match any PRMClassElement<GUM_SCALAR> in this. |
| WrongClassElement | Raised if NodeId is neither an PRMAttribute nor an PRMAggregate. |
Definition at line 115 of file PRMClassElementContainer_tpl.h.
References _IOFlags_, exists(), GUM_ERROR, gum::prm::PRMClassElement< GUM_SCALAR >::isAggregate(), gum::prm::PRMClassElement< GUM_SCALAR >::isAttribute(), gum::prm::PRMObject::name(), gum::prm::PRMClassElement< GUM_SCALAR >::safeName(), setIOFlag_(), and updateDescendants_().
Referenced by gum::prm::PRMFactory< GUM_SCALAR >::_buildSlotChain_().
| const Set< PRMSlotChain< GUM_SCALAR > * > & gum::prm::PRMClass< GUM_SCALAR >::slotChains | ( | ) | const |
Returns the set of PRMSlotChain<GUM_SCALAR> of this Class<GUM_SCALAR>.
Definition at line 1092 of file PRMClass_tpl.h.
References _slotChains_.
| const PRMClass< GUM_SCALAR > & gum::prm::PRMClass< GUM_SCALAR >::super | ( | ) | const |
Returns the super Class<GUM_SCALAR> of this Class<GUM_SCALAR>.
| NotFound | Raised if this has no super Class<GUM_SCALAR>. |
Definition at line 1097 of file PRMClass_tpl.h.
References PRMClass(), _superClass_, and GUM_ERROR.
Referenced by PRMClass(), PRMClass(), _addIOInterfaceFlags_(), _implementInterfaces_(), completeInheritance(), and overload().
|
overrideprotectedvirtual |
See gum::prm::PRMClassElementContainer<GUM_SCALAR>(const PRMClassElement<GUM_SCALAR>&).
Implements gum::prm::PRMClassElementContainer< GUM_SCALAR >.
Definition at line 961 of file PRMClass_tpl.h.
|
friend |
Definition at line 470 of file PRMClass.h.
References PRMClass().
Referenced by PRMClass(), PRMClass(), _addIOInterfaceFlags_(), _checkInterface_(), _checkRefInterface_(), and isSubTypeOf().
|
private |
The sequence of aggregate.
Definition at line 370 of file PRMClass.h.
Referenced by _inheritClass_(), _overloadAggregate_(), add(), aggregates(), and inheritAggregates().
|
private |
The sequence of PRMAttribute<GUM_SCALAR>s.
Definition at line 364 of file PRMClass.h.
Referenced by _addCastDescendants_(), _addCastDescendants_(), _inheritClass_(), _overloadAttribute_(), add(), attributes(), and inheritAttributes().
|
private |
The bijection between variables in super and variables in this The bijection's firsts are attributes in this and its seconds are attributes in c.
Definition at line 407 of file PRMClass.h.
Referenced by PRMClass(), PRMClass(), PRMClass(), PRMClass(), ~PRMClass(), completeInheritance(), inheritAggregates(), inheritAttributes(), and inheritSlotChains().
|
private |
The dag representing dependencies between formal attributes and slots.
Definition at line 347 of file PRMClass.h.
Referenced by PRMClass(), PRMClass(), _addCastDescendants_(), _addCastDescendants_(), _checkInterface_(), _checkRefInterface_(), _implementInterfaces_(), _overloadAttribute_(), add(), addArc(), dag_(), dag_(), inheritAggregates(), inheritAttributes(), inheritParameters(), inheritReferenceSlots(), and inheritSlotChains().
|
private |
a dummy member used to fix a compilation issue in clang4
Definition at line 410 of file PRMClass.h.
|
private |
The set of Class<GUM_SCALAR> which are extension of this Class<GUM_SCALAR> (i.e. direct subtypes).
Definition at line 402 of file PRMClass.h.
Referenced by _addExtension_(), extensions(), and findAllSubtypes_().
|
private |
The Set of implemented interface of this.
Definition at line 398 of file PRMClass.h.
Referenced by PRMClass(), PRMClass(), PRMClass(), PRMClass(), ~PRMClass(), _addCastDescendants_(), _addIOInterfaceFlags_(), _checkInterfaces_(), _checkRefInterfaces_(), _implementInterfaces_(), _inheritClass_(), implements(), initializeInheritance(), isOutputNode(), and isSubTypeOf().
|
privateinherited |
input / output flags, useful when inheriting or copying.
Definition at line 451 of file PRMClassElementContainer.h.
Referenced by copyIOFlags_(), getIOFlag_(), getIOFlag_(), isInnerNode(), isInputNode(), setInputNode(), setIOFlag_(), and setOutputNode().
|
privateinherited |
Definition at line 193 of file PRMObject.h.
Referenced by PRMObject(), PRMObject(), PRMObject(), name(), name(), operator!=(), operator=(), and operator==().
|
private |
Mapping between a member's name and itself. Used for fast access to a member given it's name.
Definition at line 361 of file PRMClass.h.
Referenced by _addCastDescendants_(), _addCastDescendants_(), _inheritClass_(), _overloadAggregate_(), _overloadAttribute_(), _overloadParameter_(), _overloadReference_(), add(), addArc(), get(), get(), inheritAggregates(), inheritAttributes(), inheritParameters(), inheritReferenceSlots(), inheritSlotChains(), and overload().
|
private |
Mapping between node's id and their name (being an attribute or a slot). Used for fast access to a member given it's node id.
Definition at line 351 of file PRMClass.h.
Referenced by ~PRMClass(), _addCastDescendants_(), _addCastDescendants_(), _checkInterface_(), _checkRefInterface_(), _inheritClass_(), _overloadAttribute_(), _overloadParameter_(), _overloadReference_(), add(), get(), get(), inheritAggregates(), inheritAttributes(), inheritParameters(), inheritReferenceSlots(), and inheritSlotChains().
|
private |
The Set of parameters in this Class<GUM_SCALAR>.
Definition at line 376 of file PRMClass.h.
Referenced by _inheritClass_(), _overloadParameter_(), add(), inheritParameters(), and parameters().
|
private |
The sequence of PRMReferenceSlot<GUM_SCALAR>.
Definition at line 367 of file PRMClass.h.
Referenced by _inheritClass_(), _overloadReference_(), add(), inheritReferenceSlots(), and referenceSlots().
|
private |
The set of gum::PRMSlotChain<GUM_SCALAR>s.
Definition at line 373 of file PRMClass.h.
Referenced by _inheritClass_(), _overloadReference_(), add(), inheritSlotChains(), and slotChains().
|
private |
The alternate PRMClassElementContainer<GUM_SCALAR> searched for elements defined in this. Note that this is first searched for gum::PRMClassElement<GUM_SCALAR>.
Definition at line 395 of file PRMClass.h.
Referenced by PRMClass(), PRMClass(), PRMClass(), PRMClass(), _implementInterfaces_(), _inheritClass_(), completeInheritance(), inheritAggregates(), inheritAttributes(), inheritParameters(), inheritReferenceSlots(), inheritSlotChains(), initializeInheritance(), isOutputNode(), isSubTypeOf(), overload(), and super().