#pragma once #include #include "src/storage/jani/OrderedAssignments.h" namespace storm { namespace jani { /** * Jani Location: * * Whereas Jani Locations also support invariants, we do not have support for them (as we do not support any of the allowed model types) */ class Location { public: /*! * Creates a new location. */ Location(std::string const& name, std::vector const& transientAssignments = {}); /*! * Retrieves the name of the location. */ std::string const& getName() const; /*! * Retrieves the transient assignments of this location. */ OrderedAssignments const& getTransientAssignments() const; /*! * Adds the given transient assignment to this location. */ void addTransientAssignment(storm::jani::Assignment const& assignment); /*! * Checks whether the location is valid, that is, whether the assignments are indeed all transient assignments. */ void checkValid() const; private: /// The name of the location. std::string name; /// The transient assignments made in this location. OrderedAssignments transientAssignments; }; } }