/*******************************************************************************
* Copyright (c) 2006-2008, Cloudsmith Inc.
* The code, documentation and other materials contained herein have been
* licensed under the Eclipse Public License - v 1.0 by the copyright holder
* listed above, as the Initial Contributor under such license. The text of
* such license is available at www.eclipse.org.
******************************************************************************/
package org.eclipse.buckminster.opml.model;
import java.net.URI;
import java.util.Date;
import org.eclipse.buckminster.opml.IOutline;
import org.eclipse.buckminster.opml.OutlineType;
import org.eclipse.buckminster.opml.builder.OutlineBuilder;
import org.eclipse.buckminster.sax.Utils;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
/**
* @author Thomas Hallgren
*
*/
public class Outline extends Body implements IOutline
{
@SuppressWarnings("hiding")
public static final String TAG = "outline"; //$NON-NLS-1$
public static final String ATTR_CATEGORY = "category"; //$NON-NLS-1$
public static final String ATTR_CREATED = "created"; //$NON-NLS-1$
public static final String ATTR_DESCRIPTION = "description"; //$NON-NLS-1$
public static final String ATTR_HTML_URL = "htmlUrl"; //$NON-NLS-1$
public static final String ATTR_IS_BREAKPOINT = "isBreakpoint"; //$NON-NLS-1$
public static final String ATTR_IS_COMMENT = "isComment"; //$NON-NLS-1$
public static final String ATTR_LANGUAGE = "language"; //$NON-NLS-1$
public static final String ATTR_TEXT = "text"; //$NON-NLS-1$
public static final String ATTR_TITLE = "title"; //$NON-NLS-1$
public static final String ATTR_TYPE = "type"; //$NON-NLS-1$
public static final String ATTR_URL = "url"; //$NON-NLS-1$
public static final String ATTR_VERSION = "version"; //$NON-NLS-1$
public static final String ATTR_XML_URL = "xmlUrl"; //$NON-NLS-1$
private final boolean m_breakpoint;
private final String m_category;
private final boolean m_comment;
private final Date m_created;
private final String m_description;
private final URI m_htmlUrl;
private final String m_language;
private final String m_text;
private final String m_title;
private final OutlineType m_type;
private final String m_typeString;
private final URI m_url;
private final String m_version;
private final URI m_xmlUrl;
public Outline(OutlineBuilder outline)
{
super(outline);
m_breakpoint = outline.isBreakpoint();
m_category = outline.getCategory();
m_comment = outline.isComment();
m_created = outline.getCreated();
m_description = outline.getDescription();
m_htmlUrl = outline.getHtmlUrl();
m_language = outline.getLanguage();
m_text = outline.getText();
m_title = outline.getTitle();
m_type = outline.getType();
m_typeString = outline.getTypeString();
m_url = outline.getUrl();
m_version = outline.getVersion();
m_xmlUrl = outline.getXmlUrl();
}
public String getCategory()
{
return m_category;
}
public Date getCreated()
{
return m_created;
}
@Override
public String getDefaultTag()
{
return TAG;
}
public String getDescription()
{
return m_description;
}
public URI getHtmlUrl()
{
return m_htmlUrl;
}
public String getLanguage()
{
return m_language;
}
public String getText()
{
return m_text;
}
public String getTitle()
{
return m_title;
}
public OutlineType getType()
{
return m_type;
}
public String getTypeString()
{
return m_typeString;
}
public URI getUrl()
{
return m_url;
}
public String getVersion()
{
return m_version;
}
public URI getXmlUrl()
{
return m_xmlUrl;
}
public boolean isBreakpoint()
{
return m_breakpoint;
}
public boolean isComment()
{
return m_comment;
}
@Override
protected void addAttributes(AttributesImpl attrs) throws SAXException
{
if(m_category != null)
Utils.addAttribute(attrs, ATTR_CATEGORY, m_category);
if(m_created != null)
Utils.addAttribute(attrs, ATTR_CATEGORY, Head.RFC_822_4DY_FORMAT.format(m_created));
if(m_description != null)
Utils.addAttribute(attrs, ATTR_DESCRIPTION, m_description);
if(m_htmlUrl != null)
Utils.addAttribute(attrs, ATTR_HTML_URL, m_htmlUrl.toString());
if(m_breakpoint)
Utils.addAttribute(attrs, ATTR_IS_BREAKPOINT, "true"); //$NON-NLS-1$
if(m_comment)
Utils.addAttribute(attrs, ATTR_IS_COMMENT, "true"); //$NON-NLS-1$
if(m_language != null)
Utils.addAttribute(attrs, ATTR_LANGUAGE, m_language);
if(m_text != null)
Utils.addAttribute(attrs, ATTR_TEXT, m_text);
if(m_title != null)
Utils.addAttribute(attrs, ATTR_TITLE, m_title);
if(m_typeString != null)
Utils.addAttribute(attrs, ATTR_TYPE, m_typeString);
if(m_url != null)
Utils.addAttribute(attrs, ATTR_URL, m_url.toString());
if(m_version != null)
Utils.addAttribute(attrs, ATTR_VERSION, m_version);
if(m_xmlUrl != null)
Utils.addAttribute(attrs, ATTR_XML_URL, m_xmlUrl.toString());
}
}