49#ifndef GUM_IPRM_FACTORY_H
50#define GUM_IPRM_FACTORY_H
86 virtual void addImport(
const std::string& name) = 0;
88 virtual void addLabel(
const std::string& l, std::string extends =
"") = 0;
93 virtual void addRangeType(
const std::string& name,
long minVal,
long maxVal) = 0;
95 const std::string& extends =
"",
97 bool delayInheritance =
false)
100 virtual void endClass(
bool checkImplementations =
true) = 0;
102 const std::string& extends =
"",
103 bool delayInheritance =
false)
106 virtual void addAttribute(
const std::string& type,
const std::string& name) = 0;
110 startAttribute(
const std::string& type,
const std::string& name,
bool scalar_attr =
false)
117 const std::vector< float >& values)
120 const std::vector< std::string >& values)
125 virtual void addParameter(
const std::string& type,
const std::string& name,
double value) = 0;
127 const std::string& agg_type,
128 const std::vector< std::string >& chains,
129 const std::vector< std::string >& params,
130 std::string type =
"")
133 const std::vector< std::string >& chains,
134 const std::vector< float >& numbers,
136 const std::vector< std::string >& label)
138 virtual void addReferenceSlot(
const std::string& type,
const std::string& name,
bool isArray)
142 virtual void addInstance(
const std::string& type,
const std::string& name) = 0;
144 const std::string& name,
147 virtual void addArray(
const std::string& type,
const std::string& name,
Size size) = 0;
148 virtual void incArray(
const std::string& l_i,
const std::string& r_i) = 0;
150 const std::string& left_reference,
151 const std::string& right_instance)
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 addImport(const std::string &name)=0
virtual void continueAttribute(const std::string &name)=0
virtual void continueClass(const std::string &c)=0
virtual void setRawCPFByFloatColumns(const std::vector< float > &array)=0
virtual bool isClassOrInterface(const std::string &type) const =0
virtual void setCPFByFloatRule(const std::vector< std::string > &labels, const std::vector< float > &values)=0
virtual void setReferenceSlot(const std::string &l_i, const std::string &r_i)=0
virtual void endAttribute()=0
virtual void addRangeType(const std::string &name, long minVal, long maxVal)=0
virtual void startAttribute(const std::string &type, const std::string &name, bool scalar_attr=false)=0
virtual void addTick(double tick)=0
virtual void startClass(const std::string &c, const std::string &extends="", const Set< std::string > *implements=nullptr, bool delayInheritance=false)=0
virtual void addParameter(const std::string &type, const std::string &name, double value)=0
virtual void startInterface(const std::string &i, const std::string &extends="", bool delayInheritance=false)=0
virtual void endDiscretizedType()=0
virtual void setRawCPFByColumns(const std::vector< std::string > &array)=0
virtual const PRMObject * getCurrent() const =0
virtual void addInstance(const std::string &type, const std::string &name)=0
virtual void setRawCPFByFloatLines(const std::vector< float > &array)=0
virtual void continueInterface(const std::string &name)=0
virtual std::string currentPackage() const =0
virtual void setCPFByRule(const std::vector< std::string > &labels, const std::vector< std::string > &values)=0
virtual void addArray(const std::string &type, const std::string &name, Size size)=0
virtual void endInterface()=0
virtual void addInstance(const std::string &type, const std::string &name, const HashTable< std::string, double > ¶ms)=0
virtual void startSystem(const std::string &name)=0
virtual void incArray(const std::string &l_i, const std::string &r_i)=0
virtual PRMObject * getCurrent()=0
virtual void addReferenceSlot(const std::string &type, const std::string &name, bool isArray)=0
virtual void endClass(bool checkImplementations=true)=0
virtual std::string popPackage()=0
virtual PRMObject * closeCurrent()=0
virtual void startDiscretizedType(const std::string &name)=0
virtual void addParent(const std::string &name)=0
virtual void addAggregator(const std::string &name, const std::string &agg_type, const std::vector< std::string > &chains, const std::vector< std::string > ¶ms, std::string type="")=0
virtual void addAttribute(const std::string &type, const std::string &name)=0
virtual void addLabel(const std::string &l, std::string extends="")=0
virtual bool isArrayInCurrentSystem(const std::string &name) const =0
virtual void addNoisyOrCompound(const std::string &name, const std::vector< std::string > &chains, const std::vector< float > &numbers, float leak, const std::vector< std::string > &label)=0
virtual void endDiscreteType()=0
virtual void startDiscreteType(const std::string &name, std::string super="")=0
virtual void setRawCPFByLines(const std::vector< std::string > &array)=0
virtual void endSystem()=0
virtual void setReferenceSlot(const std::string &left_instance, const std::string &left_reference, const std::string &right_instance)=0
virtual PRMObject::prm_type currentType() const =0
virtual void pushPackage(const std::string &name)=0