00001 /**************************************************************************** 00002 * VCGLib o o * 00003 * Visual and Computer Graphics Library o o * 00004 * _ O _ * 00005 * Copyright(C) 2004-2008 \/)\/ * 00006 * Visual Computing Lab /\/| * 00007 * ISTI - Italian National Research Council | * 00008 * \ * 00009 * All rights reserved. * 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 * This program is distributed in the hope that it will be useful, * 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00019 * GNU General Public License (http://www.gnu.org/licenses/gpl.txt) * 00020 * for more details. * 00021 * * 00022 ****************************************************************************/ 00023 #include <wrap/dae/xmldocumentmanaging.h> 00024 #include <cassert> 00025 00026 XMLNode::XMLNode(XMLTag* tag) 00027 :_tag(tag) 00028 { 00029 } 00030 00031 XMLNode::~XMLNode() 00032 { 00033 delete _tag; 00034 } 00035 00036 XMLLeafNode::XMLLeafNode(XMLLeafTag* leaftag) 00037 :XMLNode(leaftag) 00038 { 00039 } 00040 00041 XMLLeafNode::~XMLLeafNode() 00042 { 00043 00044 } 00045 00046 00047 void XMLLeafNode::applyProcedure(XMLVisitor& v) 00048 { 00049 v(*this); 00050 } 00051 00052 XMLInteriorNode::XMLInteriorNode(XMLTag* tag) 00053 :XMLNode(tag) 00054 { 00055 } 00056 00057 XMLNode* XMLInteriorNode::son(int ii) 00058 { 00059 assert((ii > 0) && (ii < _sons.size())); 00060 return _sons[ii]; 00061 } 00062 00063 QVector< XMLNode* > XMLInteriorNode::sons() 00064 { 00065 return _sons; 00066 } 00067 00068 XMLInteriorNode::~XMLInteriorNode() 00069 { 00070 for(QVector< XMLNode* >::iterator it = _sons.begin();it != _sons.end();++it) 00071 delete (*it); 00072 } 00073 00074 void XMLInteriorNode::applyProcedure(XMLVisitor& v) 00075 { 00076 v(*this); 00077 }