/* * Encog(tm) Core v3.4 - Java Version * http://www.heatonresearch.com/encog/ * https://github.com/encog/encog-java-core * Copyright 2008-2016 Heaton Research, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * For more information on Heaton Research copyrights, licenses * and trademarks visit: * http://www.heatonresearch.com/copyright */ package org.encog.bot.rss; import java.util.Date; import org.w3c.dom.Node; import org.w3c.dom.NodeList; /** * This is the class that holds individual RSS items, or stories, for the RSS * class. */ public class RSSItem { /** * The title of this item. */ private String title; /** * The hyperlink to this item. */ private String link; /** * The description of this item. */ private String description; /** * The date this item was published. */ private Date date; /** * Get the publication date. * * @return The publication date. */ public final Date getDate() { return this.date; } /** * Get the description. * * @return The description. */ public final String getDescription() { return this.description; } /** * Get the hyperlink. * * @return The hyperlink. */ public final String getLink() { return this.link; } /** * Get the item title. * * @return The item title. */ public final String getTitle() { return this.title; } /** * Load an item from the specified node. * * @param node * The Node to load the item from. */ public final void load(final Node node) { final NodeList nl = node.getChildNodes(); for (int i = 0; i < nl.getLength(); i++) { final Node n = nl.item(i); final String name = n.getNodeName(); if (name.equalsIgnoreCase("title")) { this.title = RSS.getXMLText(n); } else if (name.equalsIgnoreCase("link")) { this.link = RSS.getXMLText(n); } else if (name.equalsIgnoreCase("description")) { this.description = RSS.getXMLText(n); } else if (name.equalsIgnoreCase("pubDate")) { final String str = RSS.getXMLText(n); if (str != null) { this.date = RSS.parseDate(str); } } } } /** * Set the publication date. * * @param theDate * The new publication date. */ public final void setDate(final Date theDate) { this.date = theDate; } /** * Get the description. * * @param theDescription * The new description. */ public final void setDescription(final String theDescription) { this.description = theDescription; } /** * Set the hyperlink. * * @param theLink * The new hyperlink. */ public final void setLink(final String theLink) { this.link = theLink; } /** * Set the item title. * * @param theTitle * The new item title. */ public final void setTitle(final String theTitle) { this.title = theTitle; } /** * {@inheritDoc} */ @Override public final String toString() { final StringBuilder builder = new StringBuilder(); builder.append('['); builder.append("title=\""); builder.append(this.title); builder.append("\",link=\""); builder.append(this.link); builder.append("\",date=\""); builder.append(this.date); builder.append("\"]"); return builder.toString(); } }