00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
#ifndef MODEL_CONSTRAINT_HPP
00026
#define MODEL_CONSTRAINT_HPP
00027
00028
00029
#include <Model/ModelPackage.hpp>
00030
#include <Model/ModelElement.hpp>
00031
#include <Model/EvaluationKind.hpp>
00032
00033
namespace Model
00034 {
00035
00036
struct ConstraintImpl;
00037
00041 class Constraint :
virtual public ModelElement
00042 {
00043
public:
00044 typedef OMF::BasicClass<ConstraintImpl> Proxy;
00045
00046
Constraint();
00047
virtual ~Constraint();
00048
00049
const OMF::String &
expression() const;
00050
void setExpression(const OMF::String &expression);
00051
void clearExpression();
00052
00053 const OMF::String &language() const;
00054
void setLanguage(const OMF::String &language);
00055
void clearLanguage();
00056
00057 const
EvaluationKind &evaluationPolicy() const;
00058
void setEvaluationPolicy(const
EvaluationKind &policy);
00059
void clearEvaluationPolicy();
00060
00061 const OMF::Set &constrainedElements() const;
00062
void addConstrainedElements(
ModelElement *element);
00063
void removeConstrainedElements(
ModelElement *element);
00064
void clearConstrainedElements();
00065
00066 private:
00067 OMF::String _expression;
00068 OMF::String _language;
00069
EvaluationKind _evaluationPolicy;
00070 OMF::Set _constrainedElements;
00071 };
00072
00073 struct
ConstraintImpl : virtual public
Constraint
00074 {
00075 ConstraintImpl() :
00076 OMF::ModelObject(
"Model.Constraint",
00077 &Constraint::Proxy::instance(),
00078 &
ModelPackage::instance()),
00079
ModelElement(),
00080 Constraint()
00081 {}
00082
00083 virtual ~
ConstraintImpl()
00084 {}
00085 };
00086 }
00087
00088
#endif