54 lines
2.2 KiB
54 lines
2.2 KiB
#include "Property.h"
|
|
namespace storm {
|
|
namespace jani {
|
|
|
|
|
|
|
|
std::ostream& operator<<(std::ostream& os, FilterExpression const& fe) {
|
|
return os << "Obtain " << toString(fe.getFilterType()) << " of the '" << fe.getStatesFormula() << "'-states with values described by '" << *fe.getFormula() << "'";
|
|
}
|
|
|
|
Property::Property(std::string const& name, std::shared_ptr<storm::logic::Formula const> const& formula, std::string const& comment)
|
|
: name(name), comment(comment), filterExpression(FilterExpression(formula)) {
|
|
// Intentionally left empty.
|
|
}
|
|
|
|
Property::Property(std::string const& name, FilterExpression const& fe, std::string const& comment)
|
|
: name(name), comment(comment), filterExpression(fe) {
|
|
// Intentionally left empty.
|
|
}
|
|
|
|
std::string const& Property::getName() const {
|
|
return this->name;
|
|
}
|
|
|
|
std::string const& Property::getComment() const {
|
|
return this->comment;
|
|
}
|
|
|
|
Property Property::substitute(std::map<storm::expressions::Variable, storm::expressions::Expression> const& substitution) const {
|
|
return Property(name, filterExpression.substitute(substitution), comment);
|
|
}
|
|
|
|
Property Property::substitute(std::function<storm::expressions::Expression(storm::expressions::Expression const&)> const& substitutionFunction) const {
|
|
return Property(name, filterExpression.substitute(substitutionFunction), comment);
|
|
}
|
|
|
|
Property Property::substituteLabels(std::map<std::string, std::string> const& substitution) const {
|
|
return Property(name, filterExpression.substituteLabels(substitution), comment);
|
|
}
|
|
|
|
FilterExpression const& Property::getFilter() const {
|
|
return this->filterExpression;
|
|
}
|
|
|
|
std::shared_ptr<storm::logic::Formula const> Property::getRawFormula() const {
|
|
return this->filterExpression.getFormula();
|
|
}
|
|
|
|
std::ostream& operator<<(std::ostream& os, Property const& p) {
|
|
return os << "(" << p.getName() << ") : " << p.getFilter();
|
|
}
|
|
|
|
}
|
|
}
|