package ecologylab.serialization.library.rss;
import java.util.ArrayList;
import ecologylab.net.ParsedURL;
import ecologylab.serialization.ElementState;
import ecologylab.serialization.SIMPLTranslationException;
import ecologylab.serialization.SimplTypesScope;
import ecologylab.serialization.annotations.Hint;
import ecologylab.serialization.annotations.simpl_collection;
import ecologylab.serialization.annotations.simpl_hints;
import ecologylab.serialization.annotations.simpl_inherit;
import ecologylab.serialization.annotations.simpl_nowrap;
import ecologylab.serialization.annotations.simpl_scalar;
import ecologylab.serialization.formatenums.StringFormat;
/**
* RSS parser <code>channel</code> element {@link ecologylab.serialization.ElementState
* ElementState} declaration. Used with most RSS versions.
*
* @author andruid
*/
public @simpl_inherit
class Channel extends ElementState
{
@simpl_scalar
@simpl_hints(Hint.XML_LEAF)
String title;
@simpl_scalar
@simpl_hints(Hint.XML_LEAF)
String description;
/**
* Could point to an HTML rendering of the feed.
*/
@simpl_scalar
@simpl_hints(Hint.XML_LEAF)
ParsedURL link;
@simpl_nowrap
@simpl_collection("item")
ArrayList<Item> items;
/**
* @return Returns the description.
*/
public String getDescription()
{
return description;
}
/**
* @param description
* The description to set.
*/
public void setDescription(String description)
{
this.description = description;
}
/**
* @return Returns the title.
*/
public String getTitle()
{
return title;
}
/**
* @param title
* The title to set.
*/
public void setTitle(String title)
{
this.title = title;
}
/**
* @return Returns the link.
*/
public ParsedURL getLink()
{
return link;
}
/**
* @param link
* The link to set.
*/
public void setLink(ParsedURL link)
{
this.link = link;
}
public ArrayList<Item> getItems()
{
return items;
}
public void add(Item item)
{
if (items == null)
items = new ArrayList<Item>();
items.add(item);
}
public Item get(int i)
{
return items == null ? null : items.get(i);
}
public int size()
{
return items == null ? 0 : items.size();
}
public static void main(String[] s)
{
testTranslateTo();
}
private static void testTranslateTo()
{
Channel c = new Channel();
Item i1 = new Item();
i1.author = "zach";
i1.title = "it is called rogue!";
i1.link = ParsedURL.getAbsolute("http://ecologylab.cs.tamu.edu/rogue/");
i1.description = "its a game";
Item i2 = new Item();
i2.author = "andruid";
i2.title = "it is called cf!";
i2.description = "its a creativity support tool";
c.items = new ArrayList<Item>();
c.items.add(i1);
c.items.add(i2);
try
{
StringBuilder buffy = new StringBuilder();
SimplTypesScope.serialize(c, buffy, StringFormat.XML);
System.out.println(buffy);
System.out.println('\n');
ElementState c2 = (ElementState) RssTranslations.get().deserialize(buffy, StringFormat.XML);
SimplTypesScope.serialize(c2, System.out, StringFormat.XML);
// println(c.translateToXML());
}
catch (SIMPLTranslationException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}