11 #ifndef GI_GBP_CONTRACT_HPP
12 #define GI_GBP_CONTRACT_HPP
14 #include <boost/optional.hpp>
15 #include "opflex/modb/URIBuilder.h"
16 #include "opflex/modb/mo-internal/MO.h"
20 #include "modelgbp/gbp/Subject.hpp"
24 #include "modelgbp/gbp/EpGroupFromProvContractRTgt.hpp"
28 #include "modelgbp/gbp/EpGroupFromConsContractRTgt.hpp"
32 #include "modelgbp/gbp/L3ExternalNetworkFromProvContractRTgt.hpp"
36 #include "modelgbp/gbp/L3ExternalNetworkFromConsContractRTgt.hpp"
42 :
public opflex::modb::mointernal::MO
49 static const opflex::modb::class_id_t
CLASS_ID = 102;
57 return getObjectInstance().isSet(3342337ul, opflex::modb::PropertyInfo::STRING);
64 boost::optional<const std::string&>
getName()
67 return getObjectInstance().getString(3342337ul);
76 const std::string&
getName(
const std::string& defaultValue)
78 return getName().get_value_or(defaultValue);
91 getTLMutator().modify(getClassId(), getURI())->setString(3342337ul, newValue);
103 getTLMutator().modify(getClassId(), getURI())->unset(3342337ul, opflex::modb::PropertyInfo::STRING, opflex::modb::PropertyInfo::SCALAR);
118 static boost::optional<boost::shared_ptr<modelgbp::gbp::Contract> >
resolve(
119 opflex::ofcore::OFFramework& framework,
120 const opflex::modb::URI& uri)
122 return opflex::modb::mointernal::MO::resolve<modelgbp::gbp::Contract>(framework,
CLASS_ID, uri);
136 static boost::optional<boost::shared_ptr<modelgbp::gbp::Contract> >
resolve(
137 const opflex::modb::URI& uri)
139 return opflex::modb::mointernal::MO::resolve<modelgbp::gbp::Contract>(opflex::ofcore::OFFramework::defaultInstance(),
CLASS_ID, uri);
160 static boost::optional<boost::shared_ptr<modelgbp::gbp::Contract> >
resolve(
161 opflex::ofcore::OFFramework& framework,
162 const std::string& policySpaceName,
163 const std::string& gbpContractName)
165 return resolve(framework,opflex::modb::URIBuilder().addElement(
"PolicyUniverse").addElement(
"PolicySpace").addElement(policySpaceName).addElement(
"GbpContract").addElement(gbpContractName).build());
185 static boost::optional<boost::shared_ptr<modelgbp::gbp::Contract> >
resolve(
186 const std::string& policySpaceName,
187 const std::string& gbpContractName)
189 return resolve(opflex::ofcore::OFFramework::defaultInstance(),policySpaceName,gbpContractName);
204 const std::string& gbpSubjectName)
206 return modelgbp::gbp::Subject::resolve(getFramework(), opflex::modb::URIBuilder(getURI()).addElement(
"GbpSubject").addElement(gbpSubjectName).build());
222 const std::string& gbpSubjectName)
224 boost::shared_ptr<modelgbp::gbp::Subject> result = addChild<modelgbp::gbp::Subject>(
225 CLASS_ID, getURI(), 2150826087ul, 103,
226 opflex::modb::URIBuilder(getURI()).addElement(
"GbpSubject").addElement(gbpSubjectName).build()
228 result->setName(gbpSubjectName);
248 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::Subject>(
249 getFramework(),
CLASS_ID, getURI(), 2150826087ul, 103, out);
264 const std::string& gbpEpGroupFromProvContractRTgtSource)
282 const std::string& gbpEpGroupFromProvContractRTgtSource)
284 boost::shared_ptr<modelgbp::gbp::EpGroupFromProvContractRTgt> result = addChild<modelgbp::gbp::EpGroupFromProvContractRTgt>(
285 CLASS_ID, getURI(), 2150826100ul, 116,
286 opflex::modb::URIBuilder(getURI()).addElement(
"GbpEpGroupFromProvContractRTgt").addElement(gbpEpGroupFromProvContractRTgtSource).build()
288 result->setSource(gbpEpGroupFromProvContractRTgtSource);
308 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::EpGroupFromProvContractRTgt>(
309 getFramework(),
CLASS_ID, getURI(), 2150826100ul, 116, out);
324 const std::string& gbpEpGroupFromConsContractRTgtSource)
342 const std::string& gbpEpGroupFromConsContractRTgtSource)
344 boost::shared_ptr<modelgbp::gbp::EpGroupFromConsContractRTgt> result = addChild<modelgbp::gbp::EpGroupFromConsContractRTgt>(
345 CLASS_ID, getURI(), 2150826103ul, 119,
346 opflex::modb::URIBuilder(getURI()).addElement(
"GbpEpGroupFromConsContractRTgt").addElement(gbpEpGroupFromConsContractRTgtSource).build()
348 result->setSource(gbpEpGroupFromConsContractRTgtSource);
368 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::EpGroupFromConsContractRTgt>(
369 getFramework(),
CLASS_ID, getURI(), 2150826103ul, 119, out);
384 const std::string& gbpL3ExternalNetworkFromProvContractRTgtSource)
402 const std::string& gbpL3ExternalNetworkFromProvContractRTgtSource)
404 boost::shared_ptr<modelgbp::gbp::L3ExternalNetworkFromProvContractRTgt> result = addChild<modelgbp::gbp::L3ExternalNetworkFromProvContractRTgt>(
405 CLASS_ID, getURI(), 2150826111ul, 127,
406 opflex::modb::URIBuilder(getURI()).addElement(
"GbpL3ExternalNetworkFromProvContractRTgt").addElement(gbpL3ExternalNetworkFromProvContractRTgtSource).build()
408 result->setSource(gbpL3ExternalNetworkFromProvContractRTgtSource);
428 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::L3ExternalNetworkFromProvContractRTgt>(
429 getFramework(),
CLASS_ID, getURI(), 2150826111ul, 127, out);
444 const std::string& gbpL3ExternalNetworkFromConsContractRTgtSource)
462 const std::string& gbpL3ExternalNetworkFromConsContractRTgtSource)
464 boost::shared_ptr<modelgbp::gbp::L3ExternalNetworkFromConsContractRTgt> result = addChild<modelgbp::gbp::L3ExternalNetworkFromConsContractRTgt>(
465 CLASS_ID, getURI(), 2150826114ul, 130,
466 opflex::modb::URIBuilder(getURI()).addElement(
"GbpL3ExternalNetworkFromConsContractRTgt").addElement(gbpL3ExternalNetworkFromConsContractRTgtSource).build()
468 result->setSource(gbpL3ExternalNetworkFromConsContractRTgtSource);
488 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::L3ExternalNetworkFromConsContractRTgt>(
489 getFramework(),
CLASS_ID, getURI(), 2150826114ul, 130, out);
502 getTLMutator().remove(
CLASS_ID, getURI());
515 static void remove(opflex::ofcore::OFFramework& framework,
516 const opflex::modb::URI& uri)
518 MO::remove(framework,
CLASS_ID, uri);
531 static void remove(
const opflex::modb::URI& uri)
533 remove(opflex::ofcore::OFFramework::defaultInstance(), uri);
553 opflex::ofcore::OFFramework& framework,
554 const std::string& policySpaceName,
555 const std::string& gbpContractName)
557 MO::remove(framework,
CLASS_ID, opflex::modb::URIBuilder().addElement(
"PolicyUniverse").addElement(
"PolicySpace").addElement(policySpaceName).addElement(
"GbpContract").addElement(gbpContractName).build());
577 const std::string& policySpaceName,
578 const std::string& gbpContractName)
580 remove(opflex::ofcore::OFFramework::defaultInstance(),policySpaceName,gbpContractName);
595 opflex::ofcore::OFFramework& framework,
596 opflex::modb::ObjectListener* listener)
598 opflex::modb::mointernal
599 ::MO::registerListener(framework, listener,
CLASS_ID);
614 opflex::modb::ObjectListener* listener)
626 opflex::ofcore::OFFramework& framework,
627 opflex::modb::ObjectListener* listener)
629 opflex::modb::mointernal
630 ::MO::unregisterListener(framework, listener,
CLASS_ID);
640 opflex::modb::ObjectListener* listener)
650 opflex::ofcore::OFFramework& framework,
651 const opflex::modb::URI& uri,
652 const boost::shared_ptr<const opflex::modb::mointernal::ObjectInstance>& oi)
653 : MO(framework,
CLASS_ID, uri, oi) { }
658 #endif // GI_GBP_CONTRACT_HPP
void resolveGbpL3ExternalNetworkFromProvContractRTgt(std::vector< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkFromProvContractRTgt > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::L3ExternalNetworkFromProvCo...
Definition: Contract.hpp:426
boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkFromConsContractRTgt > > resolveGbpL3ExternalNetworkFromConsContractRTgt(const std::string &gbpL3ExternalNetworkFromConsContractRTgtSource)
Retrieve the child object with the specified naming properties.
Definition: Contract.hpp:443
static boost::optional< boost::shared_ptr< modelgbp::gbp::Contract > > resolve(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri)
Retrieve an instance of Contract from the managed object store.
Definition: Contract.hpp:118
static void registerListener(opflex::modb::ObjectListener *listener)
Register a listener that will get called for changes related to this class with the default framework...
Definition: Contract.hpp:613
boost::optional< boost::shared_ptr< modelgbp::gbp::EpGroupFromProvContractRTgt > > resolveGbpEpGroupFromProvContractRTgt(const std::string &gbpEpGroupFromProvContractRTgtSource)
Retrieve the child object with the specified naming properties.
Definition: Contract.hpp:263
boost::shared_ptr< modelgbp::gbp::EpGroupFromConsContractRTgt > addGbpEpGroupFromConsContractRTgt(const std::string &gbpEpGroupFromConsContractRTgtSource)
Create a new child object with the specified naming properties and make it a child of this object in ...
Definition: Contract.hpp:341
static boost::optional< boost::shared_ptr< modelgbp::gbp::Contract > > resolve(opflex::ofcore::OFFramework &framework, const std::string &policySpaceName, const std::string &gbpContractName)
Retrieve an instance of Contract from the managed object store by constructing its URI from the path ...
Definition: Contract.hpp:160
boost::optional< boost::shared_ptr< modelgbp::gbp::Subject > > resolveGbpSubject(const std::string &gbpSubjectName)
Retrieve the child object with the specified naming properties.
Definition: Contract.hpp:203
static boost::optional< boost::shared_ptr< modelgbp::gbp::EpGroupFromConsContractRTgt > > resolve(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri)
Retrieve an instance of EpGroupFromConsContractRTgt from the managed object store.
Definition: EpGroupFromConsContractRTgt.hpp:210
boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkFromProvContractRTgt > > resolveGbpL3ExternalNetworkFromProvContractRTgt(const std::string &gbpL3ExternalNetworkFromProvContractRTgtSource)
Retrieve the child object with the specified naming properties.
Definition: Contract.hpp:383
void resolveGbpEpGroupFromConsContractRTgt(std::vector< boost::shared_ptr< modelgbp::gbp::EpGroupFromConsContractRTgt > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::EpGroupFromConsContractRTgt...
Definition: Contract.hpp:366
boost::shared_ptr< modelgbp::gbp::EpGroupFromProvContractRTgt > addGbpEpGroupFromProvContractRTgt(const std::string &gbpEpGroupFromProvContractRTgtSource)
Create a new child object with the specified naming properties and make it a child of this object in ...
Definition: Contract.hpp:281
static boost::optional< boost::shared_ptr< modelgbp::gbp::Contract > > resolve(const std::string &policySpaceName, const std::string &gbpContractName)
Retrieve an instance of Contract from the default managed object store by constructing its URI from t...
Definition: Contract.hpp:185
void resolveGbpL3ExternalNetworkFromConsContractRTgt(std::vector< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkFromConsContractRTgt > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::L3ExternalNetworkFromConsCo...
Definition: Contract.hpp:486
static boost::optional< boost::shared_ptr< modelgbp::gbp::EpGroupFromProvContractRTgt > > resolve(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri)
Retrieve an instance of EpGroupFromProvContractRTgt from the managed object store.
Definition: EpGroupFromProvContractRTgt.hpp:210
static void unregisterListener(opflex::ofcore::OFFramework &framework, opflex::modb::ObjectListener *listener)
Unregister a listener from updates to this class.
Definition: Contract.hpp:625
boost::optional< boost::shared_ptr< modelgbp::gbp::EpGroupFromConsContractRTgt > > resolveGbpEpGroupFromConsContractRTgt(const std::string &gbpEpGroupFromConsContractRTgtSource)
Retrieve the child object with the specified naming properties.
Definition: Contract.hpp:323
Definition: Contract.hpp:41
boost::shared_ptr< modelgbp::gbp::Subject > addGbpSubject(const std::string &gbpSubjectName)
Create a new child object with the specified naming properties and make it a child of this object in ...
Definition: Contract.hpp:221
void resolveGbpEpGroupFromProvContractRTgt(std::vector< boost::shared_ptr< modelgbp::gbp::EpGroupFromProvContractRTgt > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::EpGroupFromProvContractRTgt...
Definition: Contract.hpp:306
void resolveGbpSubject(std::vector< boost::shared_ptr< modelgbp::gbp::Subject > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::Subject.
Definition: Contract.hpp:246
boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkFromProvContractRTgt > addGbpL3ExternalNetworkFromProvContractRTgt(const std::string &gbpL3ExternalNetworkFromProvContractRTgtSource)
Create a new child object with the specified naming properties and make it a child of this object in ...
Definition: Contract.hpp:401
static void unregisterListener(opflex::modb::ObjectListener *listener)
Unregister a listener from updates to this class from the default framework instance.
Definition: Contract.hpp:639
bool isNameSet()
Check whether name has been set.
Definition: Contract.hpp:55
static boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkFromProvContractRTgt > > resolve(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri)
Retrieve an instance of L3ExternalNetworkFromProvContractRTgt from the managed object store...
Definition: L3ExternalNetworkFromProvContractRTgt.hpp:210
Contract(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri, const boost::shared_ptr< const opflex::modb::mointernal::ObjectInstance > &oi)
Construct an instance of Contract.
Definition: Contract.hpp:649
boost::optional< const std::string & > getName()
Get the value of name if it has been set.
Definition: Contract.hpp:64
static boost::optional< boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkFromConsContractRTgt > > resolve(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri)
Retrieve an instance of L3ExternalNetworkFromConsContractRTgt from the managed object store...
Definition: L3ExternalNetworkFromConsContractRTgt.hpp:210
static void registerListener(opflex::ofcore::OFFramework &framework, opflex::modb::ObjectListener *listener)
Register a listener that will get called for changes related to this class.
Definition: Contract.hpp:594
const std::string & getName(const std::string &defaultValue)
Get the value of name if set, otherwise the value of default passed in.
Definition: Contract.hpp:76
modelgbp::gbp::Contract & unsetName()
Unset name in the currently-active mutator.
Definition: Contract.hpp:101
boost::shared_ptr< modelgbp::gbp::L3ExternalNetworkFromConsContractRTgt > addGbpL3ExternalNetworkFromConsContractRTgt(const std::string &gbpL3ExternalNetworkFromConsContractRTgtSource)
Create a new child object with the specified naming properties and make it a child of this object in ...
Definition: Contract.hpp:461
modelgbp::gbp::Contract & setName(const std::string &newValue)
Set name to the specified value in the currently-active mutator.
Definition: Contract.hpp:89
static const opflex::modb::class_id_t CLASS_ID
The unique class ID for Contract.
Definition: Contract.hpp:49
static boost::optional< boost::shared_ptr< modelgbp::gbp::Subject > > resolve(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri)
Retrieve an instance of Subject from the managed object store.
Definition: Subject.hpp:102
static boost::optional< boost::shared_ptr< modelgbp::gbp::Contract > > resolve(const opflex::modb::URI &uri)
Retrieve an instance of Contract from the managed object store using the default framework instance...
Definition: Contract.hpp:136