/*
 * ====================================================================== The
 * Bodington System Software License, Version 1.0 Copyright (c) 2001 The
 * University of Leeds. All rights reserved. Redistribution and use in source
 * and binary forms, with or without modification, are permitted provided that
 * the following conditions are met: 1. Redistributions of source code must
 * retain the above copyright notice, this list of conditions and the following
 * disclaimer. 2. Redistributions in binary form must reproduce the above
 * copyright notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution. 3. The
 * end-user documentation included with the redistribution, if any, must include
 * the following acknowledgement: "This product includes software developed by
 * the University of Leeds (http://www.bodington.org/)." Alternately, this
 * acknowledgement may appear in the software itself, if and wherever such
 * third-party acknowledgements normally appear. 4. The names "Bodington",
 * "Nathan Bodington", "Bodington System", "Bodington Open Source Project", and
 * "The University of Leeds" must not be used to endorse or promote products
 * derived from this software without prior written permission. For written
 * permission, please contact d.gardner@leeds.ac.uk. 5. The name "Bodington" may
 * not appear in the name of products derived from this software without prior
 * written permission of the University of Leeds. THIS SOFTWARE IS PROVIDED ``AS
 * IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * TITLE, THE IMPLIED WARRANTIES OF QUALITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF LEEDS OR ITS CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 * ========================================================= This software was
 * originally created by the University of Leeds and may contain voluntary
 * contributions from others. For more information on the Bodington Open Source
 * Project, please see http://bodington.org/
 * ======================================================================
 */

package org.bodington.server.resources;

import java.util.Hashtable;

import org.bodington.database.PrimaryKey;

/**
 * Class for storing Blogs in the database. Most of the work is done in the superclass.
 * We need to have our own version  of the getters and setters as refactoring them
 * means changing the database (fields table) which is more hassel than it worth.
 * By default blogs are not displayed inline.
 * @author colin
 * @author buckett
 */
public class BlogResource extends FeedResource
{
    private final static int DEFAULT_FLAG_SETTINGS = DISPLAY_TITLE ^  DISPLAY_ITEM_TITLES ^ DISPLAY_ITEM_CONTENT ^
    ALLOW_TITLE_LINKS ^ DISPLAY_ITEM_DATE ^ DISPLAY_AUTHOR ^
    DISPLAY_ITEM_AUTHORS;

    public BlogResource()
    {
        paramMap = new Hashtable();
        setDisplayFlags(DEFAULT_FLAG_SETTINGS);
    }
    
    public PrimaryKey getBlogId()
    {
        return getResourceId();
    }

    public void setBlogId(PrimaryKey key)
    {
        setResourceId(key);
    }
    
    public String getBlogURL()
    {
        return getURL();
    }

    public void setBlogURL(String feedURL)
    {
        setURL(feedURL);
    }
    
    public int getResourceType()
    {
        return RESOURCE_BLOG;
    }
    
    /**
     * Shouldn't be used directly. This is needed for the database work.
     * @return The complete blog flags packed into an int.
     */
    public int getBlogFlags()
    {
        return getDisplayFlags();
    }

    /**
     * Shouldn't be used directly. This is needed for the database work.
     * @param f The blog flags packed into an int.
     */
    public void setBlogFlags(int f)
    {
        setDisplayFlags(f);
    }
}