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/EpGroupFromIntraContractRTgt.hpp"
36 #include "modelgbp/gbp/L3ExternalNetworkFromProvContractRTgt.hpp"
40 #include "modelgbp/gbp/L3ExternalNetworkFromConsContractRTgt.hpp"
46 :
public opflex::modb::mointernal::MO
53 static const opflex::modb::class_id_t
CLASS_ID = 143;
61 return getObjectInstance().isSet(4685825ul, opflex::modb::PropertyInfo::STRING);
68 boost::optional<const std::string&>
getName()
71 return getObjectInstance().getString(4685825ul);
80 const std::string&
getName(
const std::string& defaultValue)
82 return getName().get_value_or(defaultValue);
95 getTLMutator().modify(getClassId(), getURI())->setString(4685825ul, newValue);
107 getTLMutator().modify(getClassId(), getURI())->unset(4685825ul, opflex::modb::PropertyInfo::STRING, opflex::modb::PropertyInfo::SCALAR);
122 static boost::optional<OF_SHARED_PTR<modelgbp::gbp::Contract> >
resolve(
123 opflex::ofcore::OFFramework& framework,
124 const opflex::modb::URI& uri)
126 return opflex::modb::mointernal::MO::resolve<modelgbp::gbp::Contract>(framework,
CLASS_ID, uri);
140 static boost::optional<OF_SHARED_PTR<modelgbp::gbp::Contract> >
resolve(
141 const opflex::modb::URI& uri)
143 return opflex::modb::mointernal::MO::resolve<modelgbp::gbp::Contract>(opflex::ofcore::OFFramework::defaultInstance(),
CLASS_ID, uri);
164 static boost::optional<OF_SHARED_PTR<modelgbp::gbp::Contract> >
resolve(
165 opflex::ofcore::OFFramework& framework,
166 const std::string& policySpaceName,
167 const std::string& gbpContractName)
169 return resolve(framework,opflex::modb::URIBuilder().addElement(
"PolicyUniverse").addElement(
"PolicySpace").addElement(policySpaceName).addElement(
"GbpContract").addElement(gbpContractName).build());
189 static boost::optional<OF_SHARED_PTR<modelgbp::gbp::Contract> >
resolve(
190 const std::string& policySpaceName,
191 const std::string& gbpContractName)
193 return resolve(opflex::ofcore::OFFramework::defaultInstance(),policySpaceName,gbpContractName);
208 const std::string& gbpSubjectName)
210 return modelgbp::gbp::Subject::resolve(getFramework(), opflex::modb::URIBuilder(getURI()).addElement(
"GbpSubject").addElement(gbpSubjectName).build());
226 const std::string& gbpSubjectName)
228 OF_SHARED_PTR<modelgbp::gbp::Subject> result = addChild<modelgbp::gbp::Subject>(
229 CLASS_ID, getURI(), 2152169616ul, 144,
230 opflex::modb::URIBuilder(getURI()).addElement(
"GbpSubject").addElement(gbpSubjectName).build()
232 result->setName(gbpSubjectName);
252 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::Subject>(
253 getFramework(),
CLASS_ID, getURI(), 2152169616ul, 144, out);
268 const std::string& gbpEpGroupFromProvContractRTgtSource)
286 const std::string& gbpEpGroupFromProvContractRTgtSource)
288 OF_SHARED_PTR<modelgbp::gbp::EpGroupFromProvContractRTgt> result = addChild<modelgbp::gbp::EpGroupFromProvContractRTgt>(
289 CLASS_ID, getURI(), 2152169629ul, 157,
290 opflex::modb::URIBuilder(getURI()).addElement(
"GbpEpGroupFromProvContractRTgt").addElement(gbpEpGroupFromProvContractRTgtSource).build()
292 result->setSource(gbpEpGroupFromProvContractRTgtSource);
312 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::EpGroupFromProvContractRTgt>(
313 getFramework(),
CLASS_ID, getURI(), 2152169629ul, 157, out);
328 const std::string& gbpEpGroupFromConsContractRTgtSource)
346 const std::string& gbpEpGroupFromConsContractRTgtSource)
348 OF_SHARED_PTR<modelgbp::gbp::EpGroupFromConsContractRTgt> result = addChild<modelgbp::gbp::EpGroupFromConsContractRTgt>(
349 CLASS_ID, getURI(), 2152169632ul, 160,
350 opflex::modb::URIBuilder(getURI()).addElement(
"GbpEpGroupFromConsContractRTgt").addElement(gbpEpGroupFromConsContractRTgtSource).build()
352 result->setSource(gbpEpGroupFromConsContractRTgtSource);
372 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::EpGroupFromConsContractRTgt>(
373 getFramework(),
CLASS_ID, getURI(), 2152169632ul, 160, out);
388 const std::string& gbpEpGroupFromIntraContractRTgtSource)
406 const std::string& gbpEpGroupFromIntraContractRTgtSource)
408 OF_SHARED_PTR<modelgbp::gbp::EpGroupFromIntraContractRTgt> result = addChild<modelgbp::gbp::EpGroupFromIntraContractRTgt>(
409 CLASS_ID, getURI(), 2152169635ul, 163,
410 opflex::modb::URIBuilder(getURI()).addElement(
"GbpEpGroupFromIntraContractRTgt").addElement(gbpEpGroupFromIntraContractRTgtSource).build()
412 result->setSource(gbpEpGroupFromIntraContractRTgtSource);
432 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::EpGroupFromIntraContractRTgt>(
433 getFramework(),
CLASS_ID, getURI(), 2152169635ul, 163, out);
448 const std::string& gbpL3ExternalNetworkFromProvContractRTgtSource)
466 const std::string& gbpL3ExternalNetworkFromProvContractRTgtSource)
468 OF_SHARED_PTR<modelgbp::gbp::L3ExternalNetworkFromProvContractRTgt> result = addChild<modelgbp::gbp::L3ExternalNetworkFromProvContractRTgt>(
469 CLASS_ID, getURI(), 2152169643ul, 171,
470 opflex::modb::URIBuilder(getURI()).addElement(
"GbpL3ExternalNetworkFromProvContractRTgt").addElement(gbpL3ExternalNetworkFromProvContractRTgtSource).build()
472 result->setSource(gbpL3ExternalNetworkFromProvContractRTgtSource);
492 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::L3ExternalNetworkFromProvContractRTgt>(
493 getFramework(),
CLASS_ID, getURI(), 2152169643ul, 171, out);
508 const std::string& gbpL3ExternalNetworkFromConsContractRTgtSource)
526 const std::string& gbpL3ExternalNetworkFromConsContractRTgtSource)
528 OF_SHARED_PTR<modelgbp::gbp::L3ExternalNetworkFromConsContractRTgt> result = addChild<modelgbp::gbp::L3ExternalNetworkFromConsContractRTgt>(
529 CLASS_ID, getURI(), 2152169646ul, 174,
530 opflex::modb::URIBuilder(getURI()).addElement(
"GbpL3ExternalNetworkFromConsContractRTgt").addElement(gbpL3ExternalNetworkFromConsContractRTgtSource).build()
532 result->setSource(gbpL3ExternalNetworkFromConsContractRTgtSource);
552 opflex::modb::mointernal::MO::resolveChildren<modelgbp::gbp::L3ExternalNetworkFromConsContractRTgt>(
553 getFramework(),
CLASS_ID, getURI(), 2152169646ul, 174, out);
566 getTLMutator().remove(
CLASS_ID, getURI());
579 static void remove(opflex::ofcore::OFFramework& framework,
580 const opflex::modb::URI& uri)
582 MO::remove(framework,
CLASS_ID, uri);
595 static void remove(
const opflex::modb::URI& uri)
597 remove(opflex::ofcore::OFFramework::defaultInstance(), uri);
617 opflex::ofcore::OFFramework& framework,
618 const std::string& policySpaceName,
619 const std::string& gbpContractName)
621 MO::remove(framework,
CLASS_ID, opflex::modb::URIBuilder().addElement(
"PolicyUniverse").addElement(
"PolicySpace").addElement(policySpaceName).addElement(
"GbpContract").addElement(gbpContractName).build());
641 const std::string& policySpaceName,
642 const std::string& gbpContractName)
644 remove(opflex::ofcore::OFFramework::defaultInstance(),policySpaceName,gbpContractName);
659 opflex::ofcore::OFFramework& framework,
660 opflex::modb::ObjectListener* listener)
662 opflex::modb::mointernal
663 ::MO::registerListener(framework, listener,
CLASS_ID);
678 opflex::modb::ObjectListener* listener)
690 opflex::ofcore::OFFramework& framework,
691 opflex::modb::ObjectListener* listener)
693 opflex::modb::mointernal
694 ::MO::unregisterListener(framework, listener,
CLASS_ID);
704 opflex::modb::ObjectListener* listener)
714 opflex::ofcore::OFFramework& framework,
715 const opflex::modb::URI& uri,
716 const OF_SHARED_PTR<const opflex::modb::mointernal::ObjectInstance>& oi)
717 : MO(framework,
CLASS_ID, uri, oi) { }
722 #endif // GI_GBP_CONTRACT_HPP
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:677
boost::optional< OF_SHARED_PTR< modelgbp::gbp::EpGroupFromProvContractRTgt > > resolveGbpEpGroupFromProvContractRTgt(const std::string &gbpEpGroupFromProvContractRTgtSource)
Retrieve the child object with the specified naming properties.
Definition: Contract.hpp:267
static boost::optional< OF_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:189
void resolveGbpEpGroupFromConsContractRTgt(std::vector< OF_SHARED_PTR< modelgbp::gbp::EpGroupFromConsContractRTgt > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::EpGroupFromConsContractRTgt...
Definition: Contract.hpp:370
OF_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:525
static boost::optional< OF_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
OF_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:465
OF_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:285
static boost::optional< OF_SHARED_PTR< modelgbp::gbp::EpGroupFromIntraContractRTgt > > resolve(opflex::ofcore::OFFramework &framework, const opflex::modb::URI &uri)
Retrieve an instance of EpGroupFromIntraContractRTgt from the managed object store.
Definition: EpGroupFromIntraContractRTgt.hpp:210
boost::optional< OF_SHARED_PTR< modelgbp::gbp::EpGroupFromIntraContractRTgt > > resolveGbpEpGroupFromIntraContractRTgt(const std::string &gbpEpGroupFromIntraContractRTgtSource)
Retrieve the child object with the specified naming properties.
Definition: Contract.hpp:387
static void unregisterListener(opflex::ofcore::OFFramework &framework, opflex::modb::ObjectListener *listener)
Unregister a listener from updates to this class.
Definition: Contract.hpp:689
Definition: Contract.hpp:45
void resolveGbpL3ExternalNetworkFromProvContractRTgt(std::vector< OF_SHARED_PTR< modelgbp::gbp::L3ExternalNetworkFromProvContractRTgt > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::L3ExternalNetworkFromProvCo...
Definition: Contract.hpp:490
OF_SHARED_PTR< modelgbp::gbp::EpGroupFromIntraContractRTgt > addGbpEpGroupFromIntraContractRTgt(const std::string &gbpEpGroupFromIntraContractRTgtSource)
Create a new child object with the specified naming properties and make it a child of this object in ...
Definition: Contract.hpp:405
static boost::optional< OF_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
static boost::optional< OF_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:164
static boost::optional< OF_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::modb::ObjectListener *listener)
Unregister a listener from updates to this class from the default framework instance.
Definition: Contract.hpp:703
bool isNameSet()
Check whether name has been set.
Definition: Contract.hpp:59
static boost::optional< OF_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:122
void resolveGbpSubject(std::vector< OF_SHARED_PTR< modelgbp::gbp::Subject > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::Subject.
Definition: Contract.hpp:250
static boost::optional< OF_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:140
boost::optional< const std::string & > getName()
Get the value of name if it has been set.
Definition: Contract.hpp:68
boost::optional< OF_SHARED_PTR< modelgbp::gbp::EpGroupFromConsContractRTgt > > resolveGbpEpGroupFromConsContractRTgt(const std::string &gbpEpGroupFromConsContractRTgtSource)
Retrieve the child object with the specified naming properties.
Definition: Contract.hpp:327
boost::optional< OF_SHARED_PTR< modelgbp::gbp::L3ExternalNetworkFromConsContractRTgt > > resolveGbpL3ExternalNetworkFromConsContractRTgt(const std::string &gbpL3ExternalNetworkFromConsContractRTgtSource)
Retrieve the child object with the specified naming properties.
Definition: Contract.hpp:507
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:658
static boost::optional< OF_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 OF_SHARED_PTR< const opflex::modb::mointernal::ObjectInstance > &oi)
Construct an instance of Contract.
Definition: Contract.hpp:713
void resolveGbpL3ExternalNetworkFromConsContractRTgt(std::vector< OF_SHARED_PTR< modelgbp::gbp::L3ExternalNetworkFromConsContractRTgt > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::L3ExternalNetworkFromConsCo...
Definition: Contract.hpp:550
boost::optional< OF_SHARED_PTR< modelgbp::gbp::Subject > > resolveGbpSubject(const std::string &gbpSubjectName)
Retrieve the child object with the specified naming properties.
Definition: Contract.hpp:207
static boost::optional< OF_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
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:80
modelgbp::gbp::Contract & unsetName()
Unset name in the currently-active mutator.
Definition: Contract.hpp:105
OF_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:225
modelgbp::gbp::Contract & setName(const std::string &newValue)
Set name to the specified value in the currently-active mutator.
Definition: Contract.hpp:93
OF_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:345
void resolveGbpEpGroupFromProvContractRTgt(std::vector< OF_SHARED_PTR< modelgbp::gbp::EpGroupFromProvContractRTgt > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::EpGroupFromProvContractRTgt...
Definition: Contract.hpp:310
static const opflex::modb::class_id_t CLASS_ID
The unique class ID for Contract.
Definition: Contract.hpp:53
void resolveGbpEpGroupFromIntraContractRTgt(std::vector< OF_SHARED_PTR< modelgbp::gbp::EpGroupFromIntraContractRTgt > > &out)
Resolve and retrieve all of the immediate children of type modelgbp::gbp::EpGroupFromIntraContractRTg...
Definition: Contract.hpp:430
boost::optional< OF_SHARED_PTR< modelgbp::gbp::L3ExternalNetworkFromProvContractRTgt > > resolveGbpL3ExternalNetworkFromProvContractRTgt(const std::string &gbpL3ExternalNetworkFromProvContractRTgtSource)
Retrieve the child object with the specified naming properties.
Definition: Contract.hpp:447