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 Channel2 extends ElementState // ArrayListState<Item> { @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; // = new ArrayList<Item>(); /** * @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 setItems(ArrayList<Item> items) { this.items = items; } public int size() { return items == null ? 0 : items.size(); } public Item get(int i) { return items == null ? null : items.get(i); } // @Override // protected Collection<? extends ElementState> getCollection(Class thatClass) // { // return items; // } public static void main(String[] s) { Channel2 c = new Channel2(); 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); // c.add(i1); // c.add(i2); try { SimplTypesScope.serialize(c, System.out, StringFormat.XML); } catch (SIMPLTranslationException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }