/* 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: Attribute.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 abstract class Attribute implements IContent { // public: ................................................................ public static final Attribute ID = new AttributeImpl ("ID"); public static final Attribute NAME = new AttributeImpl ("NAME"); public static final Attribute TITLE = new AttributeImpl ("TITLE"); public static final Attribute TYPE = new AttributeImpl ("TYPE"); public static final Attribute CLASS = new AttributeImpl ("CLASS"); public static final Attribute HTTP_EQUIV = new AttributeImpl ("HTTP-EQUIV"); public static final Attribute CONTENT = new AttributeImpl ("CONTENT"); public static final Attribute HREF = new AttributeImpl ("HREF"); public static final Attribute SRC = new AttributeImpl ("SRC"); public static final Attribute REL = new AttributeImpl ("REL"); public static final Attribute WIDTH = new AttributeImpl ("WIDTH"); public static final Attribute SIZE = new AttributeImpl ("SIZE"); public static final Attribute BORDER = new AttributeImpl ("BORDER"); public static final Attribute CELLPADDING = new AttributeImpl ("CELLPADDING"); public static final Attribute CELLSPACING = new AttributeImpl ("CELLSPACING"); public static final Attribute ALIGN = new AttributeImpl ("ALIGN"); public static final Attribute COLSPAN = new AttributeImpl ("COLSPAN"); public abstract String getName (); public abstract boolean equals (final Object rhs); public abstract int hashCode (); // protected: ............................................................. // package: ............................................................... Attribute () {} // private: ............................................................... private static final class AttributeImpl extends Attribute { public boolean equals (final Object rhs) { if (this == rhs) return true; if (! (rhs instanceof AttributeImpl)) return false; return m_name.equals (((AttributeImpl) rhs).m_name); } public int hashCode () { return m_name.hashCode (); } public String toString () { return m_name; } public void emit (final HTMLWriter out) { out.write (m_name); // no need to escape anything } public String getName () { return m_name; } AttributeImpl (final String name) { if ($assert.ENABLED) $assert.ASSERT (name != null, "name = null"); m_name = name; } private final String m_name; } // end of nested class } // end of class // ----------------------------------------------------------------------------