public OMElement getFeedAsXml()

in modules/core/src/main/java/org/apache/savan/atom/AtomDataSource.java [140:180]


    public OMElement getFeedAsXml(String feedId) throws SavanException {

        try {
            Connection connection = getConnection();
            try {
                PreparedStatement statement = connection.prepareStatement(SQL_GET_FEED_DATA);
                statement.setString(1, feedId);
                ResultSet results = statement.executeQuery();
                if (results.next()) {
                    String title = results.getString("title");
                    Timestamp updatedTime = results.getTimestamp("updated");
                    String author = results.getString("author");

                    Feed feed = new Feed(title, feedId, author, updatedTime);

                    statement.close();

                    statement = connection.prepareStatement(SQL_GET_ENTRIES_4_FEED);
                    statement.setString(1, feedId);
                    results = statement.executeQuery();
                    while (results.next()) {
                        String entryAsStr = results.getString("content");
                        InputStream atomIn = new ByteArrayInputStream(entryAsStr.getBytes());
                        XMLStreamReader xmlreader = StAXUtils.createXMLStreamReader(atomIn,
                                                                                    MessageContext.DEFAULT_CHAR_SET_ENCODING);
                        StAXBuilder builder = new StAXOMBuilder(feed.getFactory(), xmlreader);
                        feed.addEntry(builder.getDocumentElement());
                    }
                    return feed.getFeedAsXml();
                } else {
                    throw new SavanException("No such feed " + feedId);
                }
            } finally {
                connection.close();
            }
        } catch (SQLException e) {
            throw new SavanException(e);
        } catch (XMLStreamException e) {
            throw new SavanException(e);
        }
    }