49#ifndef GUM_IPRM_FACTORY_H
50#define GUM_IPRM_FACTORY_H
90 virtual void addLabel(std::string_view l, std::string_view extends =
"") = 0;
95 virtual void addRangeType(std::string_view name,
long minVal,
long maxVal) = 0;
97 std::string_view extends =
"",
99 bool delayInheritance =
false) = 0;
101 virtual void endClass(
bool checkImplementations =
true) = 0;
103 std::string_view extends =
"",
104 bool delayInheritance =
false) = 0;
106 virtual void addAttribute(std::string_view type, std::string_view name) = 0;
110 std::string_view name,
111 bool scalar_attr =
false) = 0;
117 const std::vector< float >& values) = 0;
119 const std::vector< std::string >& values) = 0;
123 virtual void addParameter(std::string_view type, std::string_view name,
double value) = 0;
125 std::string_view agg_type,
126 const std::vector< std::string >& chains,
127 const std::vector< std::string >& params,
128 std::string_view type =
"") = 0;
130 const std::vector< std::string >& chains,
131 const std::vector< float >& numbers,
133 const std::vector< std::string >& label) = 0;
134 virtual void addReferenceSlot(std::string_view type, std::string_view name,
bool isArray) = 0;
137 virtual void addInstance(std::string_view type, std::string_view name) = 0;
139 std::string_view name,
141 virtual void addArray(std::string_view type, std::string_view name,
Size size) = 0;
142 virtual void incArray(std::string_view l_i, std::string_view r_i) = 0;
144 std::string_view left_reference,
145 std::string_view right_instance) = 0;
Abstract base class for any element defined in a PRM.
prm_type
Enumeration of the different types of objects handled by a PRM.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
namespace for all probabilistic relational models entities
gum is the global namespace for all aGrUM entities
non-template interface-like parent for every PRM Factory
virtual void addArray(std::string_view type, std::string_view name, Size size)=0
virtual void addNoisyOrCompound(std::string_view name, const std::vector< std::string > &chains, const std::vector< float > &numbers, float leak, const std::vector< std::string > &label)=0
virtual void continueAttribute(std::string_view name)=0
virtual void addImport(std::string_view name)=0
virtual void startAttribute(std::string_view type, std::string_view name, bool scalar_attr=false)=0
virtual void addLabel(std::string_view l, std::string_view extends="")=0
virtual void setRawCPFByFloatColumns(const std::vector< float > &array)=0
virtual void setCPFByFloatRule(const std::vector< std::string > &labels, const std::vector< float > &values)=0
virtual void addReferenceSlot(std::string_view type, std::string_view name, bool isArray)=0
virtual void setReferenceSlot(std::string_view left_instance, std::string_view left_reference, std::string_view right_instance)=0
virtual void addRangeType(std::string_view name, long minVal, long maxVal)=0
virtual void endAttribute()=0
virtual void addTick(double tick)=0
virtual void startInterface(std::string_view i, std::string_view extends="", bool delayInheritance=false)=0
virtual void pushPackage(std::string_view name)=0
virtual void endDiscretizedType()=0
virtual void setRawCPFByColumns(const std::vector< std::string > &array)=0
virtual const PRMObject * getCurrent() const =0
virtual void setRawCPFByFloatLines(const std::vector< float > &array)=0
virtual void startSystem(std::string_view name)=0
virtual void continueInterface(std::string_view name)=0
virtual void startDiscreteType(std::string_view name, std::string_view super="")=0
virtual std::string currentPackage() const =0
virtual void addInstance(std::string_view type, std::string_view name, const HashTable< std::string, double > ¶ms)=0
virtual void setCPFByRule(const std::vector< std::string > &labels, const std::vector< std::string > &values)=0
virtual void setReferenceSlot(std::string_view l_i, std::string_view r_i)=0
virtual void endInterface()=0
virtual bool isClassOrInterface(std::string_view type) const =0
virtual void addParent(std::string_view name)=0
virtual PRMObject * getCurrent()=0
virtual void endClass(bool checkImplementations=true)=0
virtual std::string popPackage()=0
virtual PRMObject * closeCurrent()=0
virtual void continueClass(std::string_view c)=0
virtual void startClass(std::string_view c, std::string_view extends="", const Set< std::string > *implements=nullptr, bool delayInheritance=false)=0
virtual void startDiscretizedType(std::string_view name)=0
virtual void addAttribute(std::string_view type, std::string_view name)=0
virtual void addAggregator(std::string_view name, std::string_view agg_type, const std::vector< std::string > &chains, const std::vector< std::string > ¶ms, std::string_view type="")=0
virtual void endDiscreteType()=0
virtual ~IPRMFactory()=default
virtual void setRawCPFByLines(const std::vector< std::string > &array)=0
virtual void addParameter(std::string_view type, std::string_view name, double value)=0
virtual void endSystem()=0
virtual bool isArrayInCurrentSystem(std::string_view name) const =0
virtual void addInstance(std::string_view type, std::string_view name)=0
virtual PRMObject::prm_type currentType() const =0
virtual void incArray(std::string_view l_i, std::string_view r_i)=0