org.blojsom.extension.xmlrpc.handlers
Class AbstractBlojsomAPIHandler

java.lang.Object
  extended byorg.blojsom.extension.xmlrpc.handlers.AbstractBlojsomAPIHandler
All Implemented Interfaces:
BlojsomConstants, BlojsomMetaDataConstants, BlojsomXMLRPCConstants
Direct Known Subclasses:
BloggerAPIHandler, MetaWeblogAPIHandler, MovableTypeAPIHandler, PingbackHandler

public abstract class AbstractBlojsomAPIHandler
extends java.lang.Object
implements BlojsomConstants, BlojsomMetaDataConstants, BlojsomXMLRPCConstants

Abstract blojsom API handler

Version:
$Id: AbstractBlojsomAPIHandler.java,v 1.16 2006/01/04 16:24:24 czarneckid Exp $
Author:
Mark Lussier

Field Summary
protected  AuthorizationProvider _authorizationProvider
           
protected  Blog _blog
           
protected  java.lang.String _blogEntryExtension
           
protected  BlogUser _blogUser
           
protected  BlojsomConfiguration _configuration
           
protected  BlojsomFetcher _fetcher
           
protected  javax.servlet.http.HttpServletRequest _httpServletRequest
           
protected  javax.servlet.http.HttpServletResponse _httpServletResponse
           
protected  javax.servlet.ServletConfig _servletConfig
           
static int AUTHORIZATION_EXCEPTION
           
static java.lang.String AUTHORIZATION_EXCEPTION_MSG
           
static int INVALID_POSTID
           
static java.lang.String INVALID_POSTID_MSG
           
static int NOBLOGS_EXCEPTION
           
static java.lang.String NOBLOGS_EXCEPTION_MSG
           
static int PERMISSION_EXCEPTION
           
static java.lang.String PERMISSION_EXCEPTION_MSG
           
static int UNKNOWN_EXCEPTION
           
static java.lang.String UNKNOWN_EXCEPTION_MSG
           
static int UNSUPPORTED_EXCEPTION
           
static java.lang.String UNSUPPORTED_EXCEPTION_MSG
           
 
Fields inherited from interface org.blojsom.util.BlojsomConstants
ADMINISTRATORS_IP, BLOG_ADMIN_URL_IP, BLOG_ADMINISTRATION_LOCALE_IP, BLOG_AUTHORIZATION_IP, BLOG_BASE_URL_IP, BLOG_BLACKLIST_FILE_IP, BLOG_COMMENTS_DIRECTORY_IP, BLOG_COMMENTS_ENABLED_IP, BLOG_COUNTRY_DEFAULT, BLOG_COUNTRY_IP, BLOG_DEFAULT_CATEGORY_EXCLUSION_MAPPING_IP, BLOG_DEFAULT_CATEGORY_MAPPING_IP, BLOG_DEFAULT_FETCHER, BLOG_DEFAULT_FILE_EXTENSION_IP, BLOG_DEFAULT_FLAVOR_IP, BLOG_DEFAULT_PROPERTIES, BLOG_DEPTH_IP, BLOG_DESCRIPTION_IP, BLOG_DIRECTORY_FILTER_IP, BLOG_EMAIL_ENABLED_IP, BLOG_ENTRIES_DISPLAY_DEFAULT, BLOG_ENTRIES_DISPLAY_IP, BLOG_ENTRY_META_DATA_EXTENSION_IP, BLOG_FILE_ENCODING_IP, BLOG_FILE_EXTENSIONS_IP, BLOG_HOME_IP, BLOG_LANGUAGE_DEFAULT, BLOG_LANGUAGE_IP, BLOG_NAME_IP, BLOG_OWNER, BLOG_OWNER_EMAIL, BLOG_PERMISSIONS_IP, BLOG_PINGBACKS_DIRECTORY_IP, BLOG_PINGBACKS_ENABLED_IP, BLOG_PROPERTIES_EXTENSIONS_IP, BLOG_TRACKBACK_DIRECTORY_IP, BLOG_TRACKBACKS_ENABLED_IP, BLOG_URL_IP, BLOJSOM_ALL_CATEGORIES, BLOJSOM_AUTHORIZATION_PROVIDER_IP, BLOJSOM_BLOG, BLOJSOM_BLOG_HOME_IP, BLOJSOM_BROADCASTER_IP, BLOJSOM_CATEGORIES, BLOJSOM_COMMENTS_ENABLED, BLOJSOM_CONFIGURATION_BASE_DIRECTORY_IP, BLOJSOM_CONFIGURATION_IP, BLOJSOM_DATE, BLOJSOM_DATE_ISO8601, BLOJSOM_DATE_OBJECT, BLOJSOM_DATE_UTC, BLOJSOM_DEFAULT_BROADCASTER, BLOJSOM_DEFAULT_CONFIGURATION_BASE_DIRECTORY, BLOJSOM_DEFAULT_RESOURCE_DIRECTORY, BLOJSOM_DEFAULT_RESOURCE_MANAGER, BLOJSOM_DEFAULT_TEMPLATES_DIRECTORY, BLOJSOM_DEFAULT_USER_IP, BLOJSOM_EMAIL_ENABLED, BLOJSOM_ENTRIES, BLOJSOM_FETCHER_IP, BLOJSOM_FLAVOR_CONFIGURATION_IP, BLOJSOM_INSTALLATION_DIRECTORY_IP, BLOJSOM_INSTALLED_LOCALES_IP, BLOJSOM_LAST_MODIFIED, BLOJSOM_LISTENER_CONFIGURATION_IP, BLOJSOM_PERMALINK, BLOJSOM_PERMALINK_NEXT_ENTRY, BLOJSOM_PERMALINK_PREVIOUS_ENTRY, BLOJSOM_PLUGIN_CHAIN, BLOJSOM_PLUGIN_CONFIGURATION_IP, BLOJSOM_PLUGINS, BLOJSOM_REQUESTED_CATEGORY, BLOJSOM_REQUESTED_FLAVOR, BLOJSOM_RESOURCE_DIRECTORY_IP, BLOJSOM_RESOURCE_MANAGER_BUNDLES_IP, BLOJSOM_RESOURCE_MANAGER_CONTEXT_KEY, BLOJSOM_RESOURCE_MANAGER_IP, BLOJSOM_SITE_URL, BLOJSOM_TEMPLATES_DIRECTORY_IP, BLOJSOM_USER, BLOJSOM_USERS_IP, BLOJSOM_VERSION, BLOJSOM_VERSION_NUMBER, CACHE_CONTROL_HTTP_HEADER, CATEGORY_PARAM, COMMENT_EXTENSION, DEFAULT_AUTHORIZATION_PROVIDER, DEFAULT_COMMENTS_DIRECTORY, DEFAULT_DIGEST_ALGORITHM, DEFAULT_DISPATCHER_CONFIGURATION_FILE, DEFAULT_ENTRY_EXTENSION, DEFAULT_FLAVOR_CONFIGURATION_FILE, DEFAULT_FLAVOR_HTML, DEFAULT_METADATA_EXTENSION, DEFAULT_PERMISSIONS_CONFIGURATION_FILE, DEFAULT_PINGBACKS_DIRECTORY, DEFAULT_PLUGIN_CONFIGURATION_FILE, DEFAULT_PROPERTIES_EXTENSIONS, DEFAULT_TRACKBACK_DIRECTORY, DESCRIPTION_KEY, DIGEST_ALGORITHM, FLAVOR_PARAM, HTTP_ETAG, HTTP_LASTMODIFIED, INFINITE_BLOG_DEPTH, ISO_8601_DATE_FORMAT, LINE_SEPARATOR, LINEAR_NAVIGATION_ENABLED_IP, MAX_HASHABLE_LENGTH, NAME_KEY, NO_CACHE_HTTP_HEADER_VALUE, OVERRIDE_LASTMODIFIED_PARAM, PAGE_PARAM, PAGE_PARAM_ARCHIVE, PERMALINK_PARAM, PINGBACK_EXTENSION, PLUGINS_PARAM, PRAGMA_HTTP_HEADER, PREFERRED_SYNDICATION_FLAVOR, RECURSIVE_CATEGORIES, REDIRECT_TO_PARAM, RFC_822_DATE_FORMAT, SHORT_ISO_8601_DATE_FORMAT, TRACKBACK_EXTENSION, USE_ENCRYPTED_PASSWORDS, UTC_DATE_FORMAT, UTF8, WHITESPACE, XMLRPC_ENABLED_IP
 
Fields inherited from interface org.blojsom.util.BlojsomMetaDataConstants
BLOG_ENTRY_METADATA_AUTHOR, BLOG_ENTRY_METADATA_AUTHOR_EXT, BLOG_ENTRY_METADATA_TIMESTAMP, BLOG_METADATA_COMMENTS_DISABLED, BLOG_METADATA_HEADER, BLOG_METADATA_PINGBACKS_DISABLED, BLOG_METADATA_TRACKBACKS_DISABLED, SOURCE_ATTRIBUTE
 
Fields inherited from interface org.blojsom.extension.xmlrpc.BlojsomXMLRPCConstants
BLOG_XMLRPC_CONFIGURATION_IP, BLOG_XMLRPC_ENTRY_EXTENSION_IP, DEFAULT_BLOG_XMLRPC_ENTRY_EXTENSION, DEFAULT_XMLRPC_HANDLER_KEY
 
Constructor Summary
AbstractBlojsomAPIHandler()
           
 
Method Summary
protected  void checkXMLRPCPermission(java.lang.String username, java.lang.String permission)
          Check XML-RPC permissions for a given username
protected  java.io.File getBlogCategoryDirectory(java.lang.String categoryName)
          Get the blog category.
abstract  java.lang.String getName()
          Gets the name of API Handler.
 void setAuthorizationProvider(AuthorizationProvider authorizationProvider)
          Sets the AuthorizationProvider for the XML-RPC handler
abstract  void setBlogUser(BlogUser blogUser)
          Attach a blog instance to the API Handler so that it can interact with the blog
 void setConfiguration(BlojsomConfiguration configuration)
          Set the BlojsomConfiguration instance that will be used to configure the handlers
 void setFetcher(BlojsomFetcher fetcher)
          Set the BlojsomFetcher instance that will be used to fetch categories and entries
 void setHttpServletRequest(javax.servlet.http.HttpServletRequest httpServletRequest)
          Set the HttpServletRequest instance or the handler
 void setHttpServletResponse(javax.servlet.http.HttpServletResponse httpServletResponse)
          Set the HttpServletResponse instance or the handler
 void setServletConfig(javax.servlet.ServletConfig servletConfig)
          Set the ServletConfig instance that can be used to retrieve servlet parameters
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

AUTHORIZATION_EXCEPTION

public static final int AUTHORIZATION_EXCEPTION
See Also:
Constant Field Values

AUTHORIZATION_EXCEPTION_MSG

public static final java.lang.String AUTHORIZATION_EXCEPTION_MSG
See Also:
Constant Field Values

UNKNOWN_EXCEPTION

public static final int UNKNOWN_EXCEPTION
See Also:
Constant Field Values

UNKNOWN_EXCEPTION_MSG

public static final java.lang.String UNKNOWN_EXCEPTION_MSG
See Also:
Constant Field Values

UNSUPPORTED_EXCEPTION

public static final int UNSUPPORTED_EXCEPTION
See Also:
Constant Field Values

UNSUPPORTED_EXCEPTION_MSG

public static final java.lang.String UNSUPPORTED_EXCEPTION_MSG
See Also:
Constant Field Values

INVALID_POSTID

public static final int INVALID_POSTID
See Also:
Constant Field Values

INVALID_POSTID_MSG

public static final java.lang.String INVALID_POSTID_MSG
See Also:
Constant Field Values

NOBLOGS_EXCEPTION

public static final int NOBLOGS_EXCEPTION
See Also:
Constant Field Values

NOBLOGS_EXCEPTION_MSG

public static final java.lang.String NOBLOGS_EXCEPTION_MSG
See Also:
Constant Field Values

PERMISSION_EXCEPTION

public static final int PERMISSION_EXCEPTION
See Also:
Constant Field Values

PERMISSION_EXCEPTION_MSG

public static final java.lang.String PERMISSION_EXCEPTION_MSG
See Also:
Constant Field Values

_blog

protected Blog _blog

_blogUser

protected BlogUser _blogUser

_fetcher

protected BlojsomFetcher _fetcher

_configuration

protected BlojsomConfiguration _configuration

_blogEntryExtension

protected java.lang.String _blogEntryExtension

_authorizationProvider

protected AuthorizationProvider _authorizationProvider

_servletConfig

protected javax.servlet.ServletConfig _servletConfig

_httpServletRequest

protected javax.servlet.http.HttpServletRequest _httpServletRequest

_httpServletResponse

protected javax.servlet.http.HttpServletResponse _httpServletResponse
Constructor Detail

AbstractBlojsomAPIHandler

public AbstractBlojsomAPIHandler()
Method Detail

setBlogUser

public abstract void setBlogUser(BlogUser blogUser)
                          throws BlojsomException
Attach a blog instance to the API Handler so that it can interact with the blog

Parameters:
blogUser - an instance of BlogUser
Throws:
BlojsomException - If there is an error setting the blog user instance or properties for the handler
See Also:
BlogUser

setAuthorizationProvider

public void setAuthorizationProvider(AuthorizationProvider authorizationProvider)
Sets the AuthorizationProvider for the XML-RPC handler

Parameters:
authorizationProvider - AuthorizationProvider

getName

public abstract java.lang.String getName()
Gets the name of API Handler. Used to bind to XML-RPC

Returns:
The API Name (ie: blogger)

setFetcher

public void setFetcher(BlojsomFetcher fetcher)
                throws BlojsomException
Set the BlojsomFetcher instance that will be used to fetch categories and entries

Parameters:
fetcher - BlojsomFetcher instance
Throws:
BlojsomException - If there is an error in setting the fetcher

setConfiguration

public void setConfiguration(BlojsomConfiguration configuration)
                      throws BlojsomException
Set the BlojsomConfiguration instance that will be used to configure the handlers

Parameters:
configuration - BlojsomConfiguration instance
Throws:
BlojsomException - If there is an error in setting the fetcher

setServletConfig

public void setServletConfig(javax.servlet.ServletConfig servletConfig)
Set the ServletConfig instance that can be used to retrieve servlet parameters

Parameters:
servletConfig - ServletConfig instance

setHttpServletRequest

public void setHttpServletRequest(javax.servlet.http.HttpServletRequest httpServletRequest)
Set the HttpServletRequest instance or the handler

Parameters:
httpServletRequest - HttpServletRequest instance
Since:
blojsom 2.23

setHttpServletResponse

public void setHttpServletResponse(javax.servlet.http.HttpServletResponse httpServletResponse)
Set the HttpServletResponse instance or the handler

Parameters:
httpServletResponse - HttpServletResponse instance
Since:
blojsom 2.23

getBlogCategoryDirectory

protected java.io.File getBlogCategoryDirectory(java.lang.String categoryName)
Get the blog category. If the category exists, return the appropriate directory, otherwise return the "root" of this blog.

Parameters:
categoryName - Category name
Returns:
A directory into which a blog entry can be placed
Since:
blojsom 1.9

checkXMLRPCPermission

protected void checkXMLRPCPermission(java.lang.String username,
                                     java.lang.String permission)
                              throws org.apache.xmlrpc.XmlRpcException
Check XML-RPC permissions for a given username

Parameters:
username - Username
permission - Permisison to check
Throws:
org.apache.xmlrpc.XmlRpcException - If the username does not have the required permission
Since:
blojsom 2.23