text: //********************************************************************
  //*    
  //* Warning: This file was generated by ecore4CPP Generator
  //*
  //********************************************************************
  
  #ifndef FUML_STRUCTUREDACTIVITYNODEACTIVATION_HPP
  #define FUML_STRUCTUREDACTIVITYNODEACTIVATION_HPP
  
  #include <list>
  #include <memory>
  #include <string>
  
  
  // forward declarations
  template<class T> class Bag;
  
  
  
  //*********************************
  // generated Includes
  
  #include <map>
  
  namespace persistence
  {
  	namespace interfaces
  	{
  		class XLoadHandler; // used for Persistence
  		class XSaveHandler; // used for Persistence
  	}
  }
  
  namespace fUML
  {
  	class FUMLFactory;
  }
  
  //Forward Declaration for used types
  namespace fUML 
  {
  	class ActionActivation;
  }
  
  namespace fUML 
  {
  	class ActivityEdgeInstance;
  }
  
  namespace uml 
  {
  	class ActivityNode;
  }
  
  namespace fUML 
  {
  	class ActivityNodeActivation;
  }
  
  namespace fUML 
  {
  	class ActivityNodeActivationGroup;
  }
  
  namespace uml 
  {
  	class ExecutableNode;
  }
  
  namespace fUML 
  {
  	class InputPinActivation;
  }
  
  namespace uml 
  {
  	class OutputPin;
  }
  
  namespace fUML 
  {
  	class OutputPinActivation;
  }
  
  namespace fUML 
  {
  	class PinActivation;
  }
  
  namespace fUML 
  {
  	class Token;
  }
  
  namespace fUML 
  {
  	class Value;
  }
  
  // base class includes
  #include "fUML/ActionActivation.hpp"
  
  // enum includes
  
  
  //*********************************
  namespace fUML 
  {
  	/*!
  	 */
  	class StructuredActivityNodeActivation:virtual public ActionActivation
  	{
  		public:
   			StructuredActivityNodeActivation(const StructuredActivityNodeActivation &) {}
  			StructuredActivityNodeActivation& operator=(StructuredActivityNodeActivation const&) = delete;
  
  		protected:
  			StructuredActivityNodeActivation(){}
  
  
  		public:
  			virtual std::shared_ptr<ecore::EObject> copy() const = 0;
  
  			//destructor
  			virtual ~StructuredActivityNodeActivation() {}
  
  			//*********************************
  			// Operations
  			//*********************************
  			/*!
  			 */ 
  			virtual std::shared_ptr<Bag<fUML::Token> > completeAction() = 0;
  			
  			/*!
  			 */ 
  			virtual void createEdgeInstances() = 0;
  			
  			/*!
  			 */ 
  			virtual void createNodeActivations() = 0;
  			
  			/*!
  			 */ 
  			virtual void doAction() = 0;
  			
  			/*!
  			 */ 
  			virtual void doStructuredActivity() = 0;
  			
  			/*!
  			 */ 
  			virtual std::shared_ptr<fUML::ActivityNodeActivation> getNodeActivation(std::shared_ptr<uml::ActivityNode>  node) = 0;
  			
  			/*!
  			 */ 
  			virtual std::shared_ptr<Bag<fUML::Value> > getPinValues(std::shared_ptr<uml::OutputPin>  pin) = 0;
  			
  			/*!
  			 */ 
  			virtual bool isSourceFor(std::shared_ptr<fUML::ActivityEdgeInstance>  edgeInstance) = 0;
  			
  			/*!
  			 */ 
  			virtual bool isSuspended() = 0;
  			
  			/*!
  			 */ 
  			virtual std::shared_ptr<Bag<uml::ActivityNode> > makeActivityNodeList(std::shared_ptr<Bag<uml::ExecutableNode> >  nodes) = 0;
  			
  			/*!
  			 */ 
  			virtual void putPinValues(std::shared_ptr<uml::OutputPin>  pin,std::shared_ptr<Bag<fUML::Value> >  values) = 0;
  			
  			/*!
  			 */ 
  			virtual void resume() = 0;
  			
  			/*!
  			 */ 
  			virtual void terminate() = 0;
  			
  			/*!
  			 */ 
  			virtual void terminateAll() = 0;
  			
  			
  			//*********************************
  			// Attributes Getter Setter
  			//*********************************
  			
  			//*********************************
  			// Reference
  			//*********************************
  			/*!
  			 */
  			virtual std::shared_ptr<fUML::ActivityNodeActivationGroup > getActivationGroup() const = 0;
  			
  			/*!
  			 */
  			virtual void setActivationGroup(std::shared_ptr<fUML::ActivityNodeActivationGroup> _activationGroup_activationGroup) = 0;
  			
  
  		protected:
  			//*********************************
  			// Attribute Members
  			//*********************************
  			
  			
  			//*********************************
  			// Reference Members
  			//*********************************
  			/*!
  			 */
  			std::shared_ptr<fUML::ActivityNodeActivationGroup > m_activationGroup;
  			
  
  		public:
  			//*********************************
  			// Union Getter
  			//*********************************
  			/*!
  			 */
  			virtual std::shared_ptr<Union<fUML::PinActivation>> getPinActivation() const = 0;
  
  			virtual std::shared_ptr<ecore::EObject> eContainer() const = 0; 
  			
  			//*********************************
  			// Persistence Functions
  			//*********************************
  			virtual void load(std::shared_ptr<persistence::interfaces::XLoadHandler> loadHandler) = 0;
  			
  			virtual void resolveReferences(const int featureID, std::list<std::shared_ptr<ecore::EObject> > references) = 0;
  			virtual void save(std::shared_ptr<persistence::interfaces::XSaveHandler> saveHandler) const = 0;
  			
  	};
  
  }
  #endif /* end of include guard: FUML_STRUCTUREDACTIVITYNODEACTIVATION_HPP */
  