com.sun.syndication.io.impl
Class Atom10Parser

java.lang.Object
  extended by com.sun.syndication.io.impl.BaseWireFeedParser
      extended by com.sun.syndication.io.impl.Atom10Parser
All Implemented Interfaces:
WireFeedParser

public class Atom10Parser
extends BaseWireFeedParser

Parser for Atom 1.0

Author:
Dave Johnson

Field Summary
(package private) static java.util.regex.Pattern absoluteURIPattern
           
private static java.lang.String ATOM_10_URI
           
(package private)  Namespace ns
           
 
Constructor Summary
  Atom10Parser()
           
protected Atom10Parser(java.lang.String type)
           
 
Method Summary
private  java.lang.String findAtomLink(Element parent, java.lang.String rel)
          Return URL string of Atom link element under parent element.
private  java.lang.String findBaseURI(Element root)
          Find base URI of feed considering relative URIs.
private static java.lang.String formURI(java.lang.String base, java.lang.String append)
          Form URI by combining base with append portion and giving special consideration to append portions that begin with ".."
protected  Namespace getAtomNamespace()
           
private  boolean isAbsoluteURI(java.lang.String uri)
           
 boolean isMyType(Document document)
          Inspects an XML Document (JDOM) to check if it can parse it.
private  boolean isRelativeURI(java.lang.String uri)
           
 WireFeed parse(Document document, boolean validate)
          Parses an XML document (JDOM Document) into a feed bean.
private  java.util.List parseAlternateLinks(Feed feed, Entry entry, java.lang.String baseURI, java.util.List eLinks)
           
private  java.util.List parseCategories(java.lang.String baseURI, java.util.List eCategories)
           
private  Category parseCategory(java.lang.String baseURI, Element eCategory)
           
private  Content parseContent(Element e)
           
protected  java.util.List parseEntries(Feed feed, java.lang.String baseURI, java.util.List eEntries)
           
protected  Entry parseEntry(Feed feed, Element eEntry, java.lang.String baseURI)
           
protected  WireFeed parseFeed(Element eFeed)
           
private  Link parseLink(Feed feed, Entry entry, java.lang.String baseURI, Element eLink)
           
private  java.util.List parseOtherLinks(Feed feed, Entry entry, java.lang.String baseURI, java.util.List eLinks)
           
private  Person parsePerson(java.lang.String baseURI, Element ePerson)
           
private  java.util.List parsePersons(java.lang.String baseURI, java.util.List ePersons)
           
private  java.lang.String parseTextConstructToString(Element e)
           
private  java.lang.String resolveURI(java.lang.String baseURI, Parent parent, java.lang.String url)
          } Resolve URI based considering xml:base and baseURI.
private static java.lang.String stripStartingSlash(java.lang.String s)
          Strip starting slash from beginning of string.
private static java.lang.String stripTrailingSlash(java.lang.String s)
          Strip trailing slash from end of string.
protected  void validateFeed(Document document)
           
 
Methods inherited from class com.sun.syndication.io.impl.BaseWireFeedParser
extractForeignMarkup, getType, parseFeedModules, parseItemModules
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ATOM_10_URI

private static final java.lang.String ATOM_10_URI
See Also:
Constant Field Values

ns

Namespace ns

absoluteURIPattern

static java.util.regex.Pattern absoluteURIPattern
Constructor Detail

Atom10Parser

public Atom10Parser()

Atom10Parser

protected Atom10Parser(java.lang.String type)
Method Detail

getAtomNamespace

protected Namespace getAtomNamespace()

isMyType

public boolean isMyType(Document document)
Description copied from interface: WireFeedParser
Inspects an XML Document (JDOM) to check if it can parse it.

It checks if the given document if the type of feeds the parser understands.

Parameters:
document - XML Document (JDOM) to check if it can be parsed by this parser.
Returns:
true if the parser know how to parser this feed, false otherwise.

parse

public WireFeed parse(Document document,
                      boolean validate)
               throws java.lang.IllegalArgumentException,
                      FeedException
Description copied from interface: WireFeedParser
Parses an XML document (JDOM Document) into a feed bean.

Parameters:
document - XML document (JDOM) to parse.
validate - indicates if the feed should be strictly validated (NOT YET IMPLEMENTED).
Returns:
the resulting feed bean.
Throws:
java.lang.IllegalArgumentException - thrown if the parser cannot handle the given feed type.
FeedException - thrown if a feed bean cannot be created out of the XML document (JDOM).

validateFeed

protected void validateFeed(Document document)
                     throws FeedException
Throws:
FeedException

parseFeed

protected WireFeed parseFeed(Element eFeed)
                      throws FeedException
Throws:
FeedException

parseLink

private Link parseLink(Feed feed,
                       Entry entry,
                       java.lang.String baseURI,
                       Element eLink)

parseAlternateLinks

private java.util.List parseAlternateLinks(Feed feed,
                                           Entry entry,
                                           java.lang.String baseURI,
                                           java.util.List eLinks)

parseOtherLinks

private java.util.List parseOtherLinks(Feed feed,
                                       Entry entry,
                                       java.lang.String baseURI,
                                       java.util.List eLinks)

parsePerson

private Person parsePerson(java.lang.String baseURI,
                           Element ePerson)

parsePersons

private java.util.List parsePersons(java.lang.String baseURI,
                                    java.util.List ePersons)

parseContent

private Content parseContent(Element e)

parseTextConstructToString

private java.lang.String parseTextConstructToString(Element e)

parseEntries

protected java.util.List parseEntries(Feed feed,
                                      java.lang.String baseURI,
                                      java.util.List eEntries)

parseEntry

protected Entry parseEntry(Feed feed,
                           Element eEntry,
                           java.lang.String baseURI)

parseCategories

private java.util.List parseCategories(java.lang.String baseURI,
                                       java.util.List eCategories)

parseCategory

private Category parseCategory(java.lang.String baseURI,
                               Element eCategory)

isAbsoluteURI

private boolean isAbsoluteURI(java.lang.String uri)

isRelativeURI

private boolean isRelativeURI(java.lang.String uri)

resolveURI

private java.lang.String resolveURI(java.lang.String baseURI,
                                    Parent parent,
                                    java.lang.String url)
} Resolve URI based considering xml:base and baseURI.

Parameters:
baseURI - Base URI of feed
parent - Parent from which to consider xml:base
url - URL to be resolved

findBaseURI

private java.lang.String findBaseURI(Element root)
                              throws java.net.MalformedURLException
Find base URI of feed considering relative URIs.

Parameters:
root - Root element of feed.
Throws:
java.net.MalformedURLException

findAtomLink

private java.lang.String findAtomLink(Element parent,
                                      java.lang.String rel)
Return URL string of Atom link element under parent element. Link with no rel attribute is considered to be rel="alternate"

Parameters:
parent - Consider only children of this parent element
rel - Consider only links with this relationship

formURI

private static java.lang.String formURI(java.lang.String base,
                                        java.lang.String append)
Form URI by combining base with append portion and giving special consideration to append portions that begin with ".."

Parameters:
base - Base of URI, may end with trailing slash
append - String to append, may begin with slash or ".."

stripStartingSlash

private static java.lang.String stripStartingSlash(java.lang.String s)
Strip starting slash from beginning of string.


stripTrailingSlash

private static java.lang.String stripTrailingSlash(java.lang.String s)
Strip trailing slash from end of string.



Copyright © Sun Microsystems. All Rights Reserved.