TAttrID2FunMap::const_iterator anEnd = __AttrID2FunMap__.end();
for(; anIter != anEnd; anIter++){
const TAttrID2FunMap::key_type& aKey = anIter->first;
- const TAttrID2FunMap::data_type& aValue = anIter->second;
+ const TAttrID2FunMap::mapped_type& aValue = anIter->second;
__GUID2AttrIDMap__[aValue.myGetGUID()] = aKey;
};
* Purpose :
*/
//============================================================================
+TDF_Label SALOMEDS_SObject_i::GetFatherComponentLabel()
+{
+ TDF_Label aLabel = _lab;
+ while(!SALOMEDS_SComponent_i::IsA(aLabel) && !aLabel.IsRoot())
+ aLabel = aLabel.Father();
+
+ return aLabel;
+}
+
SALOMEDS::SComponent_ptr SALOMEDS_SObject_i::GetFatherComponent()
{
- TDF_Label aSCompLabel = _lab;
- while(!SALOMEDS_SComponent_i::IsA(aSCompLabel) && !aSCompLabel.IsRoot()){
- aSCompLabel = aSCompLabel.Father();
- }
+ TDF_Label aSCompLabel = GetFatherComponentLabel();
+
return SALOMEDS_SComponent_i::NewRef(_study,aSCompLabel)._retn();
}
SALOMEDS_SObject_i::TAttrHolder
SALOMEDS_SObject_i::_FindGenAttribute(const Handle(TDF_Attribute)& theAttr)
{
- TAttrHolder anGenAttr;
-
- Standard_GUID aGUID = theAttr->ID();
-
- TGUID2AttrIDMap::const_iterator anIter = __GUID2AttrIDMap__.find(aGUID);
- if(anIter != __GUID2AttrIDMap__.end()){
- const TAttributeID& anAttributeID = anIter->second;
- anGenAttr = _FindGenAttribute(anAttributeID.c_str());
- }
-
- return anGenAttr;
+ std::string aType = GetType(theAttr);
+ return _FindGenAttribute(aType.c_str());
}
if(aGenAttr != NULL)
myAttrMap[theType] = anAttrHolder;
}else{
- myAttrMap.erase(theType);
+ //myAttrMap.erase(theType);
//if(anGenAttr != NULL)
// anGenAttr->Destroy();
return TAttrHolder();
if(!_lab.FindAttribute(aGUID,anAttr)){
_study->CheckLocked();
anAttr = TDataStd_TreeNode::Set(_lab,aGUID);
- _lab.AddAttribute(anAttr);
return anAttr;
}
}
if(!_lab.FindAttribute(aGUID,anAttr)){
_study->CheckLocked();
anAttr = TDataStd_UAttribute::Set(_lab,aGUID);
- _lab.AddAttribute(anAttr);
return anAttr;
}
}
}
TAttrMap::iterator anIter = myAttrMap.find(theType);
if(anIter != myAttrMap.end()){
- myAttrMap.erase(anIter);
+ //myAttrMap.erase(anIter);
}
_lab.ForgetAttribute(::GetGUID(theType));
}
_study->AddPostponed(TCollection_AsciiString(anAttr->Get()).ToCString());
}
- myAttrMap.clear();
+ //myAttrMap.clear();
- SALOMEDS_Study_i::TSObjectMap& anSObjectMap = _study->GetSObjectMap();
- anSObjectMap.erase(_lab);
+ //SALOMEDS_Study_i::TSObjectMap& anSObjectMap = _study->GetSObjectMap();
+ //anSObjectMap.erase(_lab);
}