Package com.substanceofcode.rssreader.businessentities

Source Code of com.substanceofcode.rssreader.businessentities.CompatibilityRssItem1

/*
* CompatibilityRssItem1.java
*
* Copyright (C) 2005-2006 Tommi Laukkanen
* http://www.substanceofcode.com
*
* 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
*
*/

package com.substanceofcode.rssreader.businessentities;

import com.substanceofcode.utils.CompatibilityBase64;
import com.substanceofcode.utils.StringUtil;
import com.substanceofcode.rssreader.businessentities.RssItem;
import java.io.UnsupportedEncodingException;
import java.util.Date;

/**
* CompatibilityRssItem1 class is a data store for a single item in RSS feed.
* One item consist of title, link, description and optional date.
*
* @author  Tommi Laukkanen
* @version 1.1
*/
public class CompatibilityRssItem1 extends RssItem {
   
    /** Creates a new instance of CompatibilityRssItem1.  Used by this class and
      RssItem and later the fields are initalized. */
    protected CompatibilityRssItem1() {
    super();
  }

    /** Creates a new instance of RssItem */
    public CompatibilityRssItem1(String title, String link, String desc) {
    super();
        m_title = title;
        m_link = link;
        m_desc = desc;
        m_date = null;
    }
   
    /** Creates a new instance of RssItem */
    public CompatibilityRssItem1(String title, String link, String desc, Date pubDate) {
    super();
        m_title = title;
        m_link = link;
        m_desc = desc;
        m_date = pubDate;
    }
   
    public CompatibilityRssItem1(RssItem item) {
    super();
        m_title = item.m_title;
        m_link = item.m_link;
        m_desc = item.m_desc;
        m_date = item.m_date;
  }

    /** Serialize the object */
    public String serialize() {
        String dateString;
        if(m_date==null){
            dateString = "";
        } else {
            dateString = String.valueOf( m_date.getTime() );
        }
        String preData = m_title + "|" + m_link + "|" + dateString + "|" + m_desc;
        CompatibilityBase64 b64 = new CompatibilityBase64();
        String encodedSerializedData = b64.encode( preData.getBytes() );
        return encodedSerializedData;
    }
   
    /** Deserialize the object */
    public static CompatibilityRssItem1 deserialize1(String data) {
       
        String title = "";
        String link = "";
        String desc = "";
        Date date = null;

        // CompatibilityBase64 decode
        CompatibilityBase64 b64 = new CompatibilityBase64();
        byte[] decodedData = b64.decode(data);
        data = new String( decodedData );
       
        String[] nodes = StringUtil.split( data, "|");
       
        /* Node count should be 4:
         * title | link | date | desc
         */
        int TITLE = 0;
        title = nodes[TITLE];
       
        int LINK = 1;
        link = nodes[LINK];
       
        int DATE = 2;
        String dateString = nodes[DATE];
        if(dateString.length()>0) {
            date = new Date(Long.parseLong(dateString));
        }       
       
        int DESC = 3;
        desc = nodes[DESC];
               
        CompatibilityRssItem1 item = new CompatibilityRssItem1(title, link, desc, date);
        return item;
    }

  /* Compare item. */
  public boolean equals(RssItem item) {
    if (!item.m_title.equals(m_title)) {
      return false;
    }
    if (!item.m_link.equals(m_link)) {
      return false;
    }
    if (!item.m_desc.equals(m_desc)) {
      return false;
    }
    if ((item.m_date == null) && (this.m_date == null)) {
    } else if ((item.m_date != null) && (this.m_date != null)) {
      if (item.m_date.equals(this.m_date)) {
      } else {
        return false;
      }
    } else {
      return false;
    }
    return true;
  }

}
TOP

Related Classes of com.substanceofcode.rssreader.businessentities.CompatibilityRssItem1

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.