001 /* 002 * Copyright 1999,2004 The Apache Software Foundation. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017 package org.apache.commons.feedparser; 018 019 020 /** 021 * Generic content module designed to be compatible with xhtml:body, Atom 022 * content, as well as RSS 1.0 mod_content module. 023 * 024 * @author <a href="mailto:burton@apache.org">Kevin A. Burton (burtonator)</a> 025 * @version $Id: ContentFeedParserListener.java 373614 2006-01-30 22:31:21Z mvdb $ 026 */ 027 public interface ContentFeedParserListener { 028 029 /** 030 * 031 * Called when new content is found. 032 * 033 * @param type (Atom) Content constructs MAY have a "type" attribute, whose 034 * value indicates the media type of the content. When present, this attribute's 035 * value MUST be a registered media type [RFC2045]. If not present, its value 036 * MUST be considered to be "text/plain". 3.1.2 "mode" Attribute 037 * 038 * @param mode (Atom) Content constructs MAY have a "mode" attribute, whose 039 * value indicates the method used to encode the content. When present, this 040 * attribute's value MUST be listed below. If not present, its value MUST be 041 * considered to be "xml". 042 * 043 * "xml": 044 * 045 * A mode attribute with the value "xml" indicates that the element's content is 046 * inline xml (for example, namespace-qualified XHTML). 047 * 048 * "escaped": 049 * 050 * A mode attribute with the value "escaped" indicates that the element's 051 * content is an escaped string. Processors MUST unescape the element's content 052 * before considering it as content of the indicated media type. 053 * 054 * "base64": 055 * 056 * A mode attribute with the value "base64" indicates that the element's content is 057 * base64-encoded [RFC2045]. Processors MUST decode the element's content before 058 * considering it as content of the the indicated media type. 059 * 060 * @param format (RSS 1.0 mod_content) Required. An empty element with an 061 * rdf:resource attribute that points to a URI representing the format of the 062 * content:item. Suggested best practice is to use the list of RDDL natures. 063 * 064 * @param encoding (RSS 1.0 mod_content) Optional. An empty element with an 065 * rdf:resource attribute that points to a URI representing the encoding of the 066 * content:item. An encoding is a reversable method of including content within 067 * the RSS file. 068 * 069 * @param value String value of the found content. if this is Base64 070 * encoded content we do NOT decode the value but return it as a string. 071 * This is done because the content might be binary and returning as a 072 * string would be invalid. 073 * 074 * @param isSummary True if this is just a summary of the content and not 075 * the full content. This is only known for Atom feeds. 076 * 077 * 078 */ 079 public void onContent( FeedParserState state, 080 String type, 081 String format, 082 String encoding, 083 String mode, 084 String value, 085 boolean isSummary ) throws FeedParserException; 086 087 public void onContentEnd() throws FeedParserException; 088 089 } 090