#include "storm/storage/prism/RestrictedParallelComposition.h" #include <boost/algorithm/string/join.hpp> namespace storm { namespace prism { RestrictedParallelComposition::RestrictedParallelComposition(std::shared_ptr<Composition> const& left, std::set<std::string> const& synchronizingActions, std::shared_ptr<Composition> const& right) : storm::prism::ParallelComposition(left, right), synchronizingActions(synchronizingActions) { // Intentionally left empty. } boost::any RestrictedParallelComposition::accept(CompositionVisitor& visitor, boost::any const& data) const { return visitor.visit(*this, data); } std::set<std::string> const& RestrictedParallelComposition::getSynchronizingActions() const { return synchronizingActions; } void RestrictedParallelComposition::writeToStream(std::ostream& stream) const { stream << "(" << this->getLeftSubcomposition() << " |[" << boost::algorithm::join(synchronizingActions, ", ") << "]| " << this->getRightSubcomposition() << ")"; } } }