1
//------------------------------------------------------------------------------
3
// This file is part of Toolkit for Conceptual Modeling (TCM).
4
// (c) copyright 1996, Vrije Universiteit Amsterdam.
5
// Author: Frank Dehne (frank@cs.vu.nl).
7
// TCM is free software; you can redistribute it and/or modify
8
// it under the terms of the GNU General Public License as published by
9
// the Free Software Foundation; either version 2 of the License, or
10
// (at your option) any later version.
12
// TCM is distributed in the hope that it will be useful,
13
// but WITHOUT ANY WARRANTY; without even the implied warranty of
14
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
// GNU General Public License for more details.
17
// You should have received a copy of the GNU General Public License
18
// along with TCM; if not, write to the Free Software
19
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
21
//-----------------------------------------------------------------------------
22
#ifndef _SCDTRANSITIONEDGE_H
23
#define _SCDTRANSITIONEDGE_H
27
#include "adsclockconstraint.h"
37
/// transition (STD) edge class.
38
class SCDTransitionEdge: public Edge {
39
/*@Doc: {\large {\bf scope:} TSTD} */
42
SCDTransitionEdge(SCGraph *g, Subject *s1, Subject *s2);
44
int GetClassType() const {return Code::SCD_TRANSITION_EDGE;}
46
Subject *Clone() {return new SCDTransitionEdge(*this);}
50
/// return the event part of the label
52
/// return the guard part of the label
55
void SetLabel(string);
62
bool AddProp(Prop *p);
64
void GetPropList(List <Prop *> &p);
67
void SetSendEvent(Prop *p){sendevent=p;}
69
Prop *GetSendEvent(){return sendevent;}
72
void SetClockConstraint(ClockConstraint *c);
75
ClockConstraint *GetClockConstraint();
78
bool hasClockConstraint();
80
string GetUniqueName();
83
void AddConflict(SCDTransitionEdge *ah){conflict.add(ah);}
85
void GetConflict(List <SCDTransitionEdge *> *al){*al=conflict;}
100
List <SCDTransitionEdge *> conflict;