Package com.salas.bb.search

Source Code of com.salas.bb.search.ResultItem

// BlogBridge -- RSS feed reader, manager, and web based service
// Copyright (C) 2002-2006 by R. Pito Salas
//
// This program is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free Software Foundation;
// either version 2 of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with this program;
// if not, write to the Free Software Foundation, Inc., 59 Temple Place,
// Suite 330, Boston, MA 02111-1307 USA
//
// Contact: R. Pito Salas
// mailto:pitosalas@users.sourceforge.net
// More information: about BlogBridge
// http://www.blogbridge.com
// http://sourceforge.net/projects/blogbridge
//
// $Id: ResultItem.java,v 1.1 2007/06/07 09:37:39 spyromus Exp $
//

package com.salas.bb.search;

import com.salas.bb.domain.FeedType;
import com.salas.bb.domain.IArticle;
import com.salas.bb.domain.IFeed;
import com.salas.bb.domain.IGuide;

import java.util.Date;

/**
* Single search result item.
*/
public class ResultItem
{
    private final Object object;
    private final ResultItemType type;
    private final Date date;
    private final boolean priority;

    /**
     * Creates result item with an object.
     *
     * @param aObject object.
     */
    public ResultItem(Object aObject)
    {
        object = aObject;

        if (object instanceof IGuide)
        {
            type = ResultItemType.GUIDE;
            date = null;
            priority = false;
        } else if (object instanceof IFeed)
        {
            type = ResultItemType.FEED;
            long lastUpdateTime = ((IFeed)object).getLastUpdateTime();
            date = lastUpdateTime == -1L ? null : new Date(lastUpdateTime);
            priority = false;
        } else
        {
            IArticle article = (IArticle)object;
            date = article.getPublicationDate();
            priority = article.isPinned();

            IFeed feed = article.getFeed();
            if (feed.getType() == FeedType.IMAGE)
            {
                type = ResultItemType.PICTURE;
            } else
            {
                type = ResultItemType.ARTICLE;
            }
        }
    }

    /**
     * Returns result item object.
     *
     * @return object.
     */
    public Object getObject()
    {
        return object;
    }

    /**
     * Returns <code>TRUE</code> if this item has priority.
     *
     * @return <code>TRUE</code> if this item has priority.
     */
    public boolean isPriority()
    {
        return priority;
    }

    /**
     * Returns string representation of the object.
     *
     * @return string representation.
     */
    public String toString()
    {
        return getTitle();
    }

    /**
     * Returns a hash code value for the object.
     *
     * @return a hash code value for this object.
     */
    public int hashCode()
    {
        return object.hashCode();
    }

    /**
     * Indicates whether some other object is "equal to" this one.
     *
     * @param obj the reference object with which to compare.
     *
     * @return <code>true</code> if this object is the same as the obj argument; <code>false</code>
     *         otherwise.
     */
    public boolean equals(Object obj)
    {
        ResultItem sri = (ResultItem)obj;
        return object == sri.object;
    }

    /**
     * Returns the type.
     *
     * @return type.
     */
    public ResultItemType getType()
    {
        return type;
    }

    /**
     * Get title.
     *
     * @return title.
     */
    private String getTitle()
    {
        String str;

        if (object instanceof IGuide)
        {
            str = ((IGuide)object).getTitle();
        } else if (object instanceof IFeed)
        {
            str = ((IFeed)object).getTitle();
        } else
        {
            str = ((IArticle)object).getTitle();
        }

        return str;
    }

    /**
     * Returns associated date.
     *
     * @return date.
     */
    public Date getDate()
    {
        return date;
    }
}
TOP

Related Classes of com.salas.bb.search.ResultItem

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.