00001 /*MT* 00002 00003 MediaTomb - http://www.mediatomb.cc/ 00004 00005 document.cc - this file is part of MediaTomb. 00006 00007 Copyright (C) 2005 Gena Batyan <bgeradz@mediatomb.cc>, 00008 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc> 00009 00010 Copyright (C) 2006-2010 Gena Batyan <bgeradz@mediatomb.cc>, 00011 Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc>, 00012 Leonhard Wimmer <leo@mediatomb.cc> 00013 00014 MediaTomb is free software; you can redistribute it and/or modify 00015 it under the terms of the GNU General Public License version 2 00016 as published by the Free Software Foundation. 00017 00018 MediaTomb is distributed in the hope that it will be useful, 00019 but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 GNU General Public License for more details. 00022 00023 You should have received a copy of the GNU General Public License 00024 version 2 along with MediaTomb; if not, write to the Free Software 00025 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 00026 00027 $Id: document.cc 2081 2010-03-23 20:18:00Z lww $ 00028 */ 00029 00031 00032 #ifdef HAVE_CONFIG_H 00033 #include "autoconfig.h" 00034 #endif 00035 00036 #include "mxml.h" 00037 #include "document.h" 00038 00039 using namespace zmm; 00040 using namespace mxml; 00041 00042 Document::Document() : Node() 00043 { 00044 type = mxml_node_document; 00045 root = nil; 00046 } 00047 00048 void Document::setRoot(Ref<Element> root) 00049 { 00050 this->root = root; 00051 appendChild(RefCast(root, Node)); 00052 } 00053 00054 Ref<Element> Document::getRoot() 00055 { 00056 return root; 00057 } 00058 00059 void Document::appendChild(Ref<Node> child) 00060 { 00061 if(children == nil) 00062 children = Ref<Array<Node> >(new Array<Node>()); 00063 children->append(child); 00064 } 00065 00066 void Document::print_internal(Ref<StringBuffer> buf, int indent) 00067 { 00068 if (children != nil && children->size()) 00069 { 00070 for(int i = 0; i < children->size(); i++) 00071 { 00072 children->get(i)->print_internal(buf, indent + 1); 00073 } 00074 } 00075 }
1.6.1