update dev300-m58
[ooovba.git] / unoxml / source / dom / childlist.cxx
blob96b5496c14f8e3d1042748c06d8c3ca9ba838abf
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: childlist.cxx,v $
10 * $Revision: 1.5 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #include "childlist.hxx"
32 namespace DOM
34 CChildList::CChildList(const CNode* base)
35 : m_pNode(base->m_aNodePtr)
39 /**
40 The number of nodes in the list.
42 sal_Int32 SAL_CALL CChildList::getLength() throw (RuntimeException)
44 sal_Int32 length = 0;
45 if (m_pNode != NULL)
47 xmlNodePtr cur = m_pNode->children;
48 while (cur != NULL)
50 length++;
51 cur = cur->next;
54 return length;
57 /**
58 Returns the indexth item in the collection.
60 Reference< XNode > SAL_CALL CChildList::item(sal_Int32 index) throw (RuntimeException)
62 Reference< XNode >aNode;
63 if (m_pNode != NULL)
65 xmlNodePtr cur = m_pNode->children;
66 while (cur != NULL)
68 if (index-- == 0)
69 aNode = Reference< XNode >(CNode::get(cur));
70 cur = cur->next;
73 return aNode;