aGrUM  0.14.1
gum::prm::o3prm::O3Attribute Class Referenceabstract

The O3Attribute is part of the AST of the O3PRM language. More...

#include <agrum/PRM/o3prm/O3prm.h>

+ Inheritance diagram for gum::prm::o3prm::O3Attribute:
+ Collaboration diagram for gum::prm::o3prm::O3Attribute:

Public Member Functions

 O3Attribute ()
 
 O3Attribute (const O3Label &type, const O3Label &name, const O3LabelList &parents)
 
 O3Attribute (const O3Attribute &src)
 
 O3Attribute (O3Attribute &&src)
 
virtual ~O3Attribute ()
 
virtual O3Attributeoperator= (const O3Attribute &src)
 
virtual O3Attributeoperator= (O3Attribute &&src)
 
virtual O3Labeltype ()
 
virtual const O3Labeltype () const
 
virtual O3Labelname ()
 
virtual const O3Labelname () const
 
virtual O3LabelListparents ()
 
virtual const O3LabelListparents () const
 
virtual std::unique_ptr< O3Attributecopy () const =0
 

Public Types

using O3LabelList = std::vector< O3Label >
 

Detailed Description

The O3Attribute is part of the AST of the O3PRM language.

Definition at line 469 of file O3prm.h.

Member Typedef Documentation

◆ O3LabelList

Definition at line 471 of file O3prm.h.

Constructor & Destructor Documentation

◆ O3Attribute() [1/4]

gum::prm::o3prm::O3Attribute::O3Attribute ( )

Definition at line 621 of file O3prm.cpp.

621 { GUM_CONSTRUCTOR(O3Attribute); }

◆ O3Attribute() [2/4]

gum::prm::o3prm::O3Attribute::O3Attribute ( const O3Label type,
const O3Label name,
const O3LabelList parents 
)

Definition at line 623 of file O3prm.cpp.

625  :
626  __type(type),
628  GUM_CONSTRUCTOR(O3Attribute);
629  }
virtual O3LabelList & parents()
Definition: O3prm.cpp:666
virtual O3Label & type()
Definition: O3prm.cpp:660
virtual O3Label & name()
Definition: O3prm.cpp:663

◆ O3Attribute() [3/4]

gum::prm::o3prm::O3Attribute::O3Attribute ( const O3Attribute src)

Definition at line 631 of file O3prm.cpp.

631  :
632  __type(src.__type), __name(src.__name), __parents(src.__parents) {
633  GUM_CONS_CPY(O3Attribute);
634  }

◆ O3Attribute() [4/4]

gum::prm::o3prm::O3Attribute::O3Attribute ( O3Attribute &&  src)

Definition at line 636 of file O3prm.cpp.

636  :
637  __type(std::move(src.__type)), __name(std::move(src.__name)),
638  __parents(std::move(src.__parents)) {
639  GUM_CONS_MOV(O3Attribute);
640  }

◆ ~O3Attribute()

gum::prm::o3prm::O3Attribute::~O3Attribute ( )
virtual

Definition at line 642 of file O3prm.cpp.

642 { GUM_DESTRUCTOR(O3Attribute); }

Member Function Documentation

◆ copy()

virtual std::unique_ptr< O3Attribute > gum::prm::o3prm::O3Attribute::copy ( ) const
pure virtual

◆ name() [1/2]

O3Label & gum::prm::o3prm::O3Attribute::name ( )
virtual

Definition at line 663 of file O3prm.cpp.

References __name.

Referenced by gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::__checkAttributeForDeclaration(), gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::__checkRawCPT(), and gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::__checkRuleCPTSumsTo1().

663 { return __name; }
+ Here is the caller graph for this function:

◆ name() [2/2]

const O3Label & gum::prm::o3prm::O3Attribute::name ( ) const
virtual

Definition at line 664 of file O3prm.cpp.

References __name.

664 { return __name; }

◆ operator=() [1/2]

O3Attribute & gum::prm::o3prm::O3Attribute::operator= ( const O3Attribute src)
virtual

Definition at line 644 of file O3prm.cpp.

References __name, __parents, and __type.

Referenced by gum::prm::o3prm::O3RawCPT::operator=(), and gum::prm::o3prm::O3RuleCPT::operator=().

644  {
645  if (this == &src) { return *this; }
646  __type = src.__type;
647  __name = src.__name;
648  __parents = src.__parents;
649  return *this;
650  }
+ Here is the caller graph for this function:

◆ operator=() [2/2]

O3Attribute & gum::prm::o3prm::O3Attribute::operator= ( O3Attribute &&  src)
virtual

Definition at line 652 of file O3prm.cpp.

References __name, __parents, and __type.

652  {
653  if (this == &src) { return *this; }
654  __type = std::move(src.__type);
655  __name = std::move(src.__name);
656  __parents = std::move(src.__parents);
657  return *this;
658  }

◆ parents() [1/2]

O3Attribute::O3LabelList & gum::prm::o3prm::O3Attribute::parents ( )
virtual

Definition at line 666 of file O3prm.cpp.

References __parents.

Referenced by gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::__checkAttributeForCompletion(), gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::__checkLabelsNumber(), gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::__checkLabelsValues(), and gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::__checkRawCPT().

666 { return __parents; }
+ Here is the caller graph for this function:

◆ parents() [2/2]

const O3Attribute::O3LabelList & gum::prm::o3prm::O3Attribute::parents ( ) const
virtual

Definition at line 667 of file O3prm.cpp.

References __parents.

667  {
668  return __parents;
669  }

◆ type() [1/2]

O3Label & gum::prm::o3prm::O3Attribute::type ( )
virtual

Definition at line 660 of file O3prm.cpp.

References __type.

Referenced by gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::__checkAttributeForDeclaration(), and gum::prm::o3prm::O3ClassFactory< GUM_SCALAR >::__checkRawCPT().

660 { return __type; }
+ Here is the caller graph for this function:

◆ type() [2/2]

const O3Label & gum::prm::o3prm::O3Attribute::type ( ) const
virtual

Definition at line 661 of file O3prm.cpp.

References __type.

661 { return __type; }

Member Data Documentation

◆ __name

O3Label gum::prm::o3prm::O3Attribute::__name
private

Definition at line 497 of file O3prm.h.

Referenced by name(), and operator=().

◆ __parents

O3LabelList gum::prm::o3prm::O3Attribute::__parents
private

Definition at line 498 of file O3prm.h.

Referenced by operator=(), and parents().

◆ __type

O3Label gum::prm::o3prm::O3Attribute::__type
private

Definition at line 496 of file O3prm.h.

Referenced by operator=(), and type().


The documentation for this class was generated from the following files: