org.clapper.curn.plugins
Class CommonXMLFixupsPlugIn

java.lang.Object
  extended by org.clapper.curn.plugins.AbstractXMLEditPlugIn
      extended by org.clapper.curn.plugins.CommonXMLFixupsPlugIn
All Implemented Interfaces:
FeedConfigItemPlugIn, MainConfigItemPlugIn, PlugIn, PostFeedDownloadPlugIn

public class CommonXMLFixupsPlugIn
extends AbstractXMLEditPlugIn
implements MainConfigItemPlugIn, FeedConfigItemPlugIn, PostFeedDownloadPlugIn

The CommonXMLFixupsPlugIn attempts to fix some common errors in the downloaded, pre-parsed XML in any feed for which it is enabled. There is some XML badness that is surprisingly common across feeds, including (but not limited to):

This plug-in attempts to fix those problems.

This plug-in intercepts the following configuration parameters:

Section Parameter Legal Values Meaning
[curn] CommonXMLFixups true, false The global setting, which can be used to enable or disable this plug-in for all feeds (though the plug-in can still be disabled or enabled on a per-feed basis). If not specified, this parameter defaults to false.
[Feedxxx] CommonXMLFixups true, false Enables or disables this plug-in for a specific feed. If not specified, this parameter defaults to the global setting.

Version:
$Revision: 6491 $

Constructor Summary
CommonXMLFixupsPlugIn()
          Default constructor (required).
 
Method Summary
protected  org.clapper.util.logging.Logger getLogger()
          Get the Logger object created for this object.
 java.lang.String getPlugInName()
          Get a displayable name for the plug-in.
 java.lang.String getPlugInSortKey()
          Get the sort key for this plug-in.
 void initPlugIn()
          Initialize the plug-in.
 boolean runFeedConfigItemPlugIn(java.lang.String sectionName, java.lang.String paramName, CurnConfig config, FeedInfo feedInfo)
          Called immediately after curn has read and processed a configuration item in a "feed" configuration section.
 void runMainConfigItemPlugIn(java.lang.String sectionName, java.lang.String paramName, CurnConfig config)
          Called immediately after curn has read and processed a configuration item in the main [curn] configuration section.
 boolean runPostFeedDownloadPlugIn(FeedInfo feedInfo, java.io.File feedDataFile, java.lang.String encoding)
          Called immediately after a feed is downloaded.
 
Methods inherited from class org.clapper.curn.plugins.AbstractXMLEditPlugIn
editXML
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CommonXMLFixupsPlugIn

public CommonXMLFixupsPlugIn()
Default constructor (required).

Method Detail

getPlugInName

public java.lang.String getPlugInName()
Get a displayable name for the plug-in.

Specified by:
getPlugInName in interface PlugIn
Returns:
the name

getPlugInSortKey

public java.lang.String getPlugInSortKey()
Get the sort key for this plug-in.

Specified by:
getPlugInSortKey in interface PlugIn
Returns:
the sort key string.

initPlugIn

public void initPlugIn()
                throws CurnException
Initialize the plug-in. This method is called before any of the plug-in methods are called.

Specified by:
initPlugIn in interface PlugIn
Throws:
CurnException - on error

runMainConfigItemPlugIn

public void runMainConfigItemPlugIn(java.lang.String sectionName,
                                    java.lang.String paramName,
                                    CurnConfig config)
                             throws CurnException
Called immediately after curn has read and processed a configuration item in the main [curn] configuration section. All configuration items are passed, one by one, to each loaded plug-in. If a plug-in class is not interested in a particular configuration item, this method should simply return without doing anything. Note that some configuration items may simply be variable assignment; there's no real way to distinguish a variable assignment from a blessed configuration item.

Specified by:
runMainConfigItemPlugIn in interface MainConfigItemPlugIn
Parameters:
sectionName - the name of the configuration section where the item was found
paramName - the name of the parameter
config - the CurnConfig object
Throws:
CurnException - on error
See Also:
CurnConfig

runFeedConfigItemPlugIn

public boolean runFeedConfigItemPlugIn(java.lang.String sectionName,
                                       java.lang.String paramName,
                                       CurnConfig config,
                                       FeedInfo feedInfo)
                                throws CurnException
Called immediately after curn has read and processed a configuration item in a "feed" configuration section. All configuration items are passed, one by one, to each loaded plug-in. If a plug-in class is not interested in a particular configuration item, this method should simply return without doing anything. Note that some configuration items may simply be variable assignment; there's no real way to distinguish a variable assignment from a blessed configuration item.

Specified by:
runFeedConfigItemPlugIn in interface FeedConfigItemPlugIn
Parameters:
sectionName - the name of the configuration section where the item was found
paramName - the name of the parameter
config - the active configuration
feedInfo - partially complete FeedInfo object for the feed. The URL is guaranteed to be present, but no other fields are.
Returns:
true to continue processing the feed, false to skip it
Throws:
CurnException - on error
See Also:
CurnConfig, FeedInfo, FeedInfo.getURL()

runPostFeedDownloadPlugIn

public boolean runPostFeedDownloadPlugIn(FeedInfo feedInfo,
                                         java.io.File feedDataFile,
                                         java.lang.String encoding)
                                  throws CurnException
Called immediately after a feed is downloaded. This method can return false to signal curn that the feed should be skipped. For instance, a plug-in that filters on the unparsed XML feed content could use this method to weed out non-matching feeds before they are downloaded.

Specified by:
runPostFeedDownloadPlugIn in interface PostFeedDownloadPlugIn
Parameters:
feedInfo - the FeedInfo object for the feed that has been downloaded
feedDataFile - the file containing the downloaded, unparsed feed XML. curn may delete this file after all plug-ins are notified!
encoding - the encoding used to store the data in the file, or null for the default
Returns:
true if curn should continue to process the feed, false to skip the feed. A return value of false aborts all further processing on the feed. In particular, curn will not pass the feed along to other plug-ins that have yet to be notified of this event.
Throws:
CurnException - on error
See Also:
FeedInfo

getLogger

protected org.clapper.util.logging.Logger getLogger()
Description copied from class: AbstractXMLEditPlugIn
Get the Logger object created for this object.

Specified by:
getLogger in class AbstractXMLEditPlugIn
Returns:
the Logger


Copyright © 2004-2006 Brian M. Clapper. All Rights Reserved.