110 {
111
112 if (!is_a($newNode, 'Structures_Graph_Node')) {
113 return Pear::raiseError(
114 'Structures_Graph::addNode received an object that is not'
115 . ' a Structures_Graph_Node',
117 );
118 }
119
120
121
122 foreach ($this->_nodes as $key => $node) {
123
124
125
126
127
128
129
130 $savedData = $this->_nodes[$key];
131 $referenceIsEqualFlag = false;
132 $this->_nodes[$key] = true;
133 if ($node === true) {
134 $this->_nodes[$key] = false;
135 if ($node === false) {
136 $referenceIsEqualFlag = true;
137 }
138 }
139 $this->_nodes[$key] = $savedData;
140 if ($referenceIsEqualFlag) {
141 return Pear::raiseError(
142 'Structures_Graph::addNode received an object that is'
143 . ' a duplicate for this dataset',
145 );
146 }
147 }
148 $this->_nodes[] =& $newNode;
149 $newNode->setGraph($this);
150 }
const STRUCTURES_GRAPH_ERROR_GENERIC