bool ValueNodeList::add(ValueNode::Handle value_node) { if(!value_node) return false; if(value_node->get_id().empty()) return false; try { ValueNode::RHandle other_value_node=find(value_node->get_id()); if(PlaceholderValueNode::Handle::cast_dynamic(other_value_node)) { other_value_node->replace(value_node); placeholder_count_--; return true; } return false; } catch(Exception::IDNotFound) { push_back(value_node); return true; } return false; }