本文整理汇总了C++中CompModelPlugin::getPort方法的典型用法代码示例。如果您正苦于以下问题:C++ CompModelPlugin::getPort方法的具体用法?C++ CompModelPlugin::getPort怎么用?C++ CompModelPlugin::getPort使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CompModelPlugin
的用法示例。
在下文中一共展示了CompModelPlugin::getPort方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
SBase*
SBaseRef::getReferencedElementFrom(Model* model)
{
SBMLDocument* doc = getSBMLDocument();
if (!hasRequiredAttributes()) {
if (doc) {
string error = "In SBaseRef::getReferencedElementFrom, unable to find referenced element from <" + getElementName() + "> ";
if (isSetId()) {
error += "with ID '" + getId() + "' ";
}
error += "as it does not have the required attributes.";
int en = CompSBaseRefMustReferenceObject;
switch(getTypeCode()) {
case SBML_COMP_REPLACEDBY:
en = CompReplacedByAllowedAttributes;
break;
case SBML_COMP_REPLACEDELEMENT:
en = CompReplacedElementAllowedAttributes;
break;
case SBML_COMP_PORT:
en = CompPortAllowedAttributes;
break;
case SBML_COMP_DELETION:
en = CompDeletionAllowedAttributes;
}
doc->getErrorLog()->logPackageError("comp", en, getPackageVersion(), getLevel(), getVersion(), error, getLine(), getColumn());
}
return NULL;
}
SBase* referent = NULL;
if (isSetPortRef()) {
CompModelPlugin* mplugin = static_cast<CompModelPlugin*>(model->getPlugin(getPrefix()));
Port* port = mplugin->getPort(getPortRef());
if (port==NULL) {
if (doc) {
string error = "In SBaseRef::getReferencedElementFrom, unable to find referenced element from SBase reference ";
if (isSetId()) {
error += "'" + getId() + "' ";
}
error += "as the port it references ('" + getPortRef() +"') could not be found.";
doc->getErrorLog()->logPackageError("comp", CompPortRefMustReferencePort, getPackageVersion(), getLevel(), getVersion(), error, getLine(), getColumn());
}
return NULL;
}
mDirectReference = port;
referent = port->getReferencedElementFrom(model);
}
else if (isSetIdRef()) {
referent = model->getElementBySId(getIdRef());
if (referent == NULL && doc) {
string error = "In SBaseRef::getReferencedElementFrom, unable to find referenced element: no such SId in the model: '" + getIdRef() + "'.";
if (doc->getErrorLog()->contains(UnrequiredPackagePresent)
|| doc->getErrorLog()->contains(RequiredPackagePresent))
{
doc->getErrorLog()->logPackageError("comp",
CompIdRefMayReferenceUnknownPackage, getPackageVersion(),
getLevel(), getVersion(), error, getLine(), getColumn());
}
else
{
doc->getErrorLog()->logPackageError("comp",
CompIdRefMustReferenceObject, getPackageVersion(),
getLevel(), getVersion(), error, getLine(), getColumn());
}
}
}
else if (isSetUnitRef()) {
referent = model->getUnitDefinition(getUnitRef());
if (referent == NULL && doc) {
string error = "In SBaseRef::getReferencedElementFrom, unable to find referenced element: no such Unit in the model: '" + getUnitRef() + "'.";
doc->getErrorLog()->logPackageError("comp", CompUnitRefMustReferenceUnitDef, getPackageVersion(), getLevel(), getVersion(), error, getLine(), getColumn());
}
}
else if (isSetMetaIdRef()) {
referent = model->getElementByMetaId(getMetaIdRef());
if (referent == NULL && doc) {
string error = "In SBaseRef::getReferencedElementFrom, unable to find referenced element: no such metaid in the model: '" + getMetaIdRef() + "'.";
if (doc->getErrorLog()->contains(UnrequiredPackagePresent)
|| doc->getErrorLog()->contains(RequiredPackagePresent))
{
doc->getErrorLog()->logPackageError("comp",
CompIdRefMayReferenceUnknownPackage, getPackageVersion(),
getLevel(), getVersion(), error, getLine(), getColumn());
}
else
{
doc->getErrorLog()->logPackageError("comp",
CompMetaIdRefMustReferenceObject, getPackageVersion(),
getLevel(), getVersion(), error, getLine(), getColumn());
}
}
}
else {
//This is actually possible if the subclass overrides getNumReferents() (which some do). In that case, we just return NULL and let the overriding function find the referent instead.
return NULL;
}
if (referent == NULL) {
//No need to set an error message--one was already set above.
return NULL;
}
//.........这里部分代码省略.........