ROME – Fonctionnement (2/8)
July 16, 2007
Voici ce qu’il se passe durant la lecture d’un flux de nouvelles :
La classe permettant de parser un flux est SyndFeedInput, on crée alors une instance de cette classe : URL feedUrl = new URL ("http://wiki.mkhelif.fr/fr/feed.php");
SyndFeedInput input = new SyndFeedInput ();
SyndFeed feed = input.build (new InputStreamReader (feedUrl.openStream ()));
L’objet SyndFeedInput délègue alors le parsing du flux à la classe WireFeedInput.
WireFeedInput utilise un PluginManager de FeedParsers pour sélectionner le parser à utiliser selon le type de flux.
Le parser effectue alors le parsing du flux de nouvelles en utilisant l’API JDom et stoque le résultat dans un objet WireFeed héritant de WireFeedInput.
Si le flux est de type RSS, l’objet WireFeed est de type Channel qui contient des Items, Clouds, ainsi que les autres types de données RSS contenues dans le package : com.sun.syndication.feed.rss.
Si le flux est au format Atom, alors l’objet WireFeed est de type Feed du packaquage : com.sun.syndication.atom.
L’objet que nous avions instancié SyndFeedInput utilise alors cet objet WireFeedInput pour créer un objet SyndFeedImpl qui fait abstraction du format du flux parsé. Cet classe implémente l’interface SyndFeed qui représente la racine de tous les formats de nouvelles.
SyndFeedInput renvoie alors un objet SyndFeed utilisable qui représente le flux de nouvelles.