Remove wrongly exposed SetParent method.

This commit is contained in:
Jonathan Beck
2009-11-10 18:30:43 +01:00
parent 84596548e5
commit 0f92ed12ff
6 changed files with 23 additions and 20 deletions
+4 -2
View File
@@ -33,9 +33,8 @@ public :
virtual ~Node();
virtual Node* Clone() = 0;
Node * GetParent();
void SetParent(Node* parent);
Node * GetParent();
plist_type GetType();
plist_t GetPlist();
@@ -44,7 +43,10 @@ protected:
Node(plist_t node, Node* parent = NULL);
Node(plist_type type, Node* parent = NULL);
plist_t _node;
private:
Node* _parent;
friend class Structure;
};
};
+1
View File
@@ -44,6 +44,7 @@ public :
protected:
Structure(Node* parent = NULL);
Structure(plist_type type, Node* parent = NULL);
void UpdateNodeParent(Node* node);
private:
Structure(Structure& s);
+2 -2
View File
@@ -101,7 +101,7 @@ void Array::Append(Node* node)
if (node)
{
Node* clone = node->Clone();
clone->SetParent(this);
UpdateNodeParent(clone);
plist_array_append_item(_node, clone->GetPlist());
_array.push_back(clone);
}
@@ -112,7 +112,7 @@ void Array::Insert(Node* node, unsigned int pos)
if (node)
{
Node* clone = node->Clone();
clone->SetParent(this);
UpdateNodeParent(clone);
plist_array_insert_item(_node, clone->GetPlist(), pos);
std::vector<Node*>::iterator it = _array.begin();
it += pos;
+1 -1
View File
@@ -147,7 +147,7 @@ Dictionary::iterator Dictionary::Insert(const std::string& key, Node* node)
if (node)
{
Node* clone = node->Clone();
clone->SetParent(this);
UpdateNodeParent(clone);
plist_dict_insert_item(_node, key.c_str(), clone->GetPlist());
delete _map[key];
_map[key] = clone;
-15
View File
@@ -96,19 +96,4 @@ Node* Node::GetParent()
return _parent;
}
void Node::SetParent(Node* parent)
{
//Unlink node first
if ( NULL != _parent )
{
plist_type type = plist_get_node_type(_parent);
if (PLIST_ARRAY ==type || PLIST_DICT == type )
{
Structure* s = static_cast<Structure*>(_parent);
s->Remove(this);
}
}
_parent = parent;
}
};
+15
View File
@@ -70,5 +70,20 @@ std::vector<char> Structure::ToBin()
return ret;
}
void Structure::UpdateNodeParent(Node* node)
{
//Unlink node first
if ( NULL != node->_parent )
{
plist_type type = plist_get_node_type(node->_parent);
if (PLIST_ARRAY ==type || PLIST_DICT == type )
{
Structure* s = static_cast<Structure*>(node->_parent);
s->Remove(node);
}
}
node->_parent = this;
}
};