/* * RHQ Management Platform * Copyright (C) 2005-2008 Red Hat, Inc. * All rights reserved. * * 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 version 2 of the License. * * 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.rhq.enterprise.gui.legacy.portlet; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * This bean encapsulates the information that go into an RSS feed */ public class RSSFeed { private static final String PUBTIME_FORMAT = "EEE, d MMM yyyy HH:mm:ss z"; private String title = ""; private String baseUrl = ""; private Date pubDate = null; private Date buildDate = null; private List items = new ArrayList(10); public RSSFeed(String baseUrl) { setBaseUrl(baseUrl); } public String getBaseUrl() { return baseUrl; } public void setBaseUrl(String baseUrl) { // Strip out trailing slash if necessary if (baseUrl.lastIndexOf('/') == (baseUrl.length() - 1)) { baseUrl = baseUrl.substring(0, baseUrl.length() - 1); } this.baseUrl = baseUrl; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getPubDate() { if (pubDate == null) { pubDate = new Date(); } SimpleDateFormat fmt = new SimpleDateFormat(PUBTIME_FORMAT); return fmt.format(pubDate); } public void setPubDate(long pubDate) { this.pubDate = new Date(pubDate); } public String getBuildDate() { if (buildDate == null) { buildDate = new Date(); } SimpleDateFormat fmt = new SimpleDateFormat(PUBTIME_FORMAT); return fmt.format(buildDate); } public void setBuildDate(long buildDate) { this.buildDate = new Date(buildDate); } public List getItems() { return items; } public void setItems(List items) { this.items = items; } public void addItem(String title, String link, String desc, long pubDate) { items.add(new RSSItem(title, link, desc, pubDate)); } public class RSSItem { private String title; private String link; private String description; private String guid; private Date pubDate; public RSSItem(String title, String link, String desc, long pubDate) { this.title = title; this.link = link; this.description = desc; this.guid = link + '#' + System.currentTimeMillis(); this.setPubDate(pubDate); } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getGuid() { return guid; } public void setGuid(String guid) { this.guid = guid; } public String getLink() { return link; } public void setLink(String link) { this.link = link; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getPubDate() { if (pubDate == null) { pubDate = new Date(); } SimpleDateFormat fmt = new SimpleDateFormat(PUBTIME_FORMAT); return fmt.format(pubDate); } public void setPubDate(long pubDate) { this.pubDate = new Date(pubDate); } } }