1/* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved.
2 *
3 * This program and the accompanying materials are made available under
4 * the terms of the Common Public License v1.0 which accompanies this distribution,
5 * and is available at http://www.eclipse.org/legal/cpl-v10.html
6 *
7 * $Id: ElementList.java,v 1.1.1.1 2004/05/09 16:57:41 vlad_r Exp $
8 */
9package com.vladium.emma.report.html.doc;
10
11import java.util.ArrayList;
12import java.util.Iterator;
13import java.util.List;
14
15// ----------------------------------------------------------------------------
16/**
17 * element list that is not necessarily an element itself
18 *
19 * @author Vlad Roubtsov, (C) 2003
20 */
21public
22final class ElementList implements IElementList
23{
24    // public: ................................................................
25
26
27    public ElementList ()
28    {
29        m_contents = new ArrayList ();
30    }
31
32
33    public void emit (final HTMLWriter out)
34    {
35        for (Iterator c = m_contents.iterator (); c.hasNext (); )
36        {
37            final IContent content = (IContent) c.next ();
38            content.emit (out);
39        }
40    }
41
42    public IElementList add (final IContent content)
43    {
44        if (content != null)
45        {
46            m_contents.add (content);
47        }
48
49        return this;
50    }
51
52    public IElementList add (final int index, final IContent content)
53    {
54        if (content != null)
55        {
56            m_contents.add (index, content);
57        }
58
59        return this;
60    }
61
62    public int size ()
63    {
64        return m_contents.size ();
65    }
66
67    // protected: .............................................................
68
69    // package: ...............................................................
70
71    // private: ...............................................................
72
73
74    private final List /* Content */ m_contents;
75
76} // end of class
77// ----------------------------------------------------------------------------