00001 #include "stdafx.h"
00002
00003 #include "BON.h"
00004 #include "BONImpl.h"
00005
00006 #include "RoleRep.h"
00007 #include "FCO.h"
00008
00009 #include "fstream"
00010 extern std::ofstream err;
00011
00012
00013 bool StringLex::operator()( const std::string& peer1, const std::string& peer2) const
00014 {
00015 return (peer1.compare(peer2) < 0);
00016 }
00017
00018
00019 RoleRep::RoleRep(
00020 const std::string &role_name,
00021 FCO* ptr,
00022 ModelRep * model_ptr,
00023
00024 bool is_port,
00025 const std::string &cardinality,
00026 bool inh_role,
00027 bool long_form)
00028 : m_roleName( role_name),
00029 m_ptr( ptr),
00030 m_model( model_ptr),
00031
00032 m_isPort( is_port),
00033 m_cardinality( cardinality),
00034 m_inheritedRole( inh_role),
00035 m_longForm( long_form)
00036 {
00037 }
00038
00039 RoleRep::RoleRep( const RoleRep & peer)
00040 :
00041 m_roleName( peer.m_roleName),
00042 m_ptr( peer.m_ptr),
00043 m_model( peer.m_model),
00044
00045 m_isPort( peer.m_isPort),
00046 m_cardinality( peer.m_cardinality),
00047 m_inheritedRole( peer.m_inheritedRole),
00048 m_longForm( peer.m_longForm)
00049 {
00050 }
00051
00052
00053 const RoleRep& RoleRep::operator=( const RoleRep & peer)
00054 {
00055 if (this == &peer) return *this;
00056 m_roleName = peer.m_roleName;
00057 m_ptr = peer.m_ptr;
00058 m_model = peer.m_model;
00059
00060 m_isPort = peer.m_isPort;
00061 m_cardinality = peer.m_cardinality;
00062 m_inheritedRole = peer.m_inheritedRole;
00063 m_longForm = peer.m_longForm;
00064 return *this;
00065 }
00066
00067
00068 bool RoleRep::operator==( const RoleRep& peer) const
00069 {
00070 return
00071 m_roleName == peer.m_roleName &&
00072 m_ptr == peer.m_ptr &&
00073 m_model == peer.m_model &&
00074
00075 m_isPort == peer.m_isPort &&
00076 m_cardinality == peer.m_cardinality &&
00077 m_inheritedRole == peer.m_inheritedRole &&
00078 m_longForm == peer.m_longForm;
00079 }
00080
00081
00082 bool RoleRep::operator!=( const RoleRep& peer) const
00083 {
00084 return !(*this == peer);
00085 }
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097 const std::string& RoleRep::getOnlyRoleName() const
00098 {
00099 return m_roleName;
00100 }
00101
00102
00103 std::string RoleRep::getSmartRoleName() const
00104 {
00105 if ( m_longForm) return m_ptr->getName() + m_roleName;
00106 else if (m_roleName != "") return m_roleName;
00107 else return m_ptr->getName();
00108 }
00109
00110
00111 FCO * RoleRep::getFCOPtr() const
00112 { return m_ptr; }
00113
00114
00115 ModelRep * RoleRep::getModelRepPtr() const
00116 { return m_model; }
00117
00118
00119
00120
00121
00122
00123 bool RoleRep::isPort() const
00124 {
00125 return m_isPort;
00126 }
00127
00128
00129 const std::string& RoleRep::getCardinality() const
00130 {
00131 return m_cardinality;
00132 }
00133
00134
00135 void RoleRep::setInheritedRole( bool val)
00136 {
00137 m_inheritedRole = val;
00138 }
00139
00140
00141 bool RoleRep::isInheritedRole() const
00142 {
00143 return m_inheritedRole;
00144 }
00145
00146
00147 void RoleRep::setLongForm( bool val)
00148 {
00149 m_longForm = val;
00150 }
00151
00152
00153 bool RoleRep::isLongForm() const
00154 {
00155 return m_longForm;
00156 }