| /* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under |
| * the terms of the Common Public License v1.0 which accompanies this distribution, |
| * and is available at http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * $Id: ISimpleElement.java,v 1.1.1.1 2004/05/09 16:57:41 vlad_r Exp $ |
| */ |
| package com.vladium.emma.report.html.doc; |
| |
| import com.vladium.util.asserts.$assert; |
| |
| // ---------------------------------------------------------------------------- |
| /** |
| * @author Vlad Roubtsov, (C) 2003 |
| */ |
| public |
| interface ISimpleElement extends IContent |
| { |
| // public: ................................................................ |
| |
| Tag getTag (); |
| ISimpleElement setClass (String classID); |
| AttributeSet getAttributes (); |
| |
| abstract class Factory |
| { |
| public static ISimpleElement create (final Tag tag) |
| { |
| return new SimpleElementImpl (tag, AttributeSet.create ()); |
| } |
| |
| public static ISimpleElement create (final Tag tag, final AttributeSet attrs) |
| { |
| return new SimpleElementImpl (tag, attrs); |
| } |
| |
| static class SimpleElementImpl implements ISimpleElement |
| { |
| public String toString () |
| { |
| return "<" + m_tag.getName () + "/>"; |
| } |
| |
| public Tag getTag () |
| { |
| return m_tag; |
| } |
| |
| public ISimpleElement setClass (final String classID) |
| { |
| if ((classID != null) && (classID.length () > 0)) |
| { |
| getAttributes ().set (Attribute.CLASS, classID); |
| } |
| |
| return this; |
| } |
| |
| public AttributeSet getAttributes () |
| { |
| return m_attrs; |
| } |
| |
| public void emit (final HTMLWriter out) |
| { |
| out.write ('<'); |
| out.write (m_tag.getName ()); |
| |
| if (! m_attrs.isEmpty ()) |
| { |
| out.write (' '); |
| m_attrs.emit (out); |
| } |
| |
| out.write ("/>"); |
| } |
| |
| SimpleElementImpl (final Tag tag, final AttributeSet attrs) |
| { |
| if ($assert.ENABLED) $assert.ASSERT (tag != null, "tag = null"); |
| if ($assert.ENABLED) $assert.ASSERT (attrs != null, "attrs = null"); |
| |
| m_tag = tag; |
| m_attrs = attrs; |
| } |
| |
| |
| protected final Tag m_tag; |
| protected final AttributeSet m_attrs; |
| |
| } // end of nested class |
| |
| } // end of nested class |
| |
| |
| |
| } // end of interface |
| // ---------------------------------------------------------------------------- |