org.blojsom.extension.xmlrpc.handlers
Class MovableTypeAPIHandler

java.lang.Object
  extended byorg.blojsom.extension.xmlrpc.handlers.AbstractBlojsomAPIHandler
      extended byorg.blojsom.extension.xmlrpc.handlers.MovableTypeAPIHandler
All Implemented Interfaces:
BlojsomConstants, BlojsomMetaDataConstants, BlojsomXMLRPCConstants

public class MovableTypeAPIHandler
extends AbstractBlojsomAPIHandler

MovableType API handler

Since:
blojsom 2.20
Version:
$Id: MovableTypeAPIHandler.java,v 1.4 2006/01/04 16:24:24 czarneckid Exp $
Author:
David Czarnecki

Field Summary
protected  org.apache.commons.logging.Log _logger
           
protected static java.lang.String API_PREFIX
           
protected static java.lang.String MEMBER_CATEGORYID
           
protected static java.lang.String MEMBER_CATEGORYNAME
           
protected static java.lang.String MEMBER_DATECREATED
           
protected static java.lang.String MEMBER_ISPRIMARY
           
protected static java.lang.String MEMBER_KEY
           
protected static java.lang.String MEMBER_LABEL
           
protected static java.lang.String MEMBER_PING_IP
           
protected static java.lang.String MEMBER_PING_TITLE
           
protected static java.lang.String MEMBER_PING_URL
           
protected static java.lang.String MEMBER_POSTID
           
protected static java.lang.String MEMBER_TITLE
           
protected static java.lang.String MEMBER_USERID
           
 
Fields inherited from class org.blojsom.extension.xmlrpc.handlers.AbstractBlojsomAPIHandler
_authorizationProvider, _blog, _blogEntryExtension, _blogUser, _configuration, _fetcher, _httpServletRequest, _httpServletResponse, _servletConfig, AUTHORIZATION_EXCEPTION, AUTHORIZATION_EXCEPTION_MSG, INVALID_POSTID, INVALID_POSTID_MSG, NOBLOGS_EXCEPTION, NOBLOGS_EXCEPTION_MSG, PERMISSION_EXCEPTION, PERMISSION_EXCEPTION_MSG, UNKNOWN_EXCEPTION, UNKNOWN_EXCEPTION_MSG, UNSUPPORTED_EXCEPTION, 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
MovableTypeAPIHandler()
          Construct a new MovableType API handler
 
Method Summary
 java.lang.Object getCategoryList(java.lang.String blogID, java.lang.String username, java.lang.String password)
          Returns a list of all categories defined in the weblog.
 java.lang.String getName()
          Gets the name of API Handler.
 java.lang.Object getPostCategories(java.lang.String postID, java.lang.String username, java.lang.String password)
          Returns a list of all categories to which the post is assigned.
 java.lang.Object getRecentPostTitles(java.lang.String blogID, java.lang.String username, java.lang.String password, int numberOfPosts)
          Returns a bandwidth-friendly list of the most recent posts in the system.
 java.lang.Object getTrackbackPings(java.lang.String postID)
          Retrieve the list of TrackBack pings posted to a particular entry
 boolean publishPost(java.lang.String postID, java.lang.String username, java.lang.String password)
          Publish (rebuild) all of the static files related to an entry from your weblog.
 void setBlogUser(BlogUser blogUser)
          Attach a blog instance to the API Handler so that it can interact with the blog
 boolean setPostCategories(java.lang.String postID, java.lang.String username, java.lang.String password, java.util.Vector categories)
          Sets the categories for a post.
 java.lang.Object supportedMethods()
          Retrieve information about the XML-RPC methods supported by the server.
 java.lang.Object supportedTextFilters()
          Retrieve information about the text formatting plugins supported by the server.
 
Methods inherited from class org.blojsom.extension.xmlrpc.handlers.AbstractBlojsomAPIHandler
checkXMLRPCPermission, getBlogCategoryDirectory, setAuthorizationProvider, setConfiguration, setFetcher, setHttpServletRequest, setHttpServletResponse, setServletConfig
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MEMBER_DATECREATED

protected static final java.lang.String MEMBER_DATECREATED
See Also:
Constant Field Values

MEMBER_USERID

protected static final java.lang.String MEMBER_USERID
See Also:
Constant Field Values

MEMBER_POSTID

protected static final java.lang.String MEMBER_POSTID
See Also:
Constant Field Values

MEMBER_TITLE

protected static final java.lang.String MEMBER_TITLE
See Also:
Constant Field Values

MEMBER_CATEGORYID

protected static final java.lang.String MEMBER_CATEGORYID
See Also:
Constant Field Values

MEMBER_CATEGORYNAME

protected static final java.lang.String MEMBER_CATEGORYNAME
See Also:
Constant Field Values

MEMBER_ISPRIMARY

protected static final java.lang.String MEMBER_ISPRIMARY
See Also:
Constant Field Values

MEMBER_KEY

protected static final java.lang.String MEMBER_KEY
See Also:
Constant Field Values

MEMBER_LABEL

protected static final java.lang.String MEMBER_LABEL
See Also:
Constant Field Values

MEMBER_PING_TITLE

protected static final java.lang.String MEMBER_PING_TITLE
See Also:
Constant Field Values

MEMBER_PING_URL

protected static final java.lang.String MEMBER_PING_URL
See Also:
Constant Field Values

MEMBER_PING_IP

protected static final java.lang.String MEMBER_PING_IP
See Also:
Constant Field Values

API_PREFIX

protected static final java.lang.String API_PREFIX
See Also:
Constant Field Values

_logger

protected org.apache.commons.logging.Log _logger
Constructor Detail

MovableTypeAPIHandler

public MovableTypeAPIHandler()
Construct a new MovableType API handler

Method Detail

setBlogUser

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

Specified by:
setBlogUser in class AbstractBlojsomAPIHandler
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

getName

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

Specified by:
getName in class AbstractBlojsomAPIHandler
Returns:
The API Name (ie: blogger)

getRecentPostTitles

public java.lang.Object getRecentPostTitles(java.lang.String blogID,
                                            java.lang.String username,
                                            java.lang.String password,
                                            int numberOfPosts)
                                     throws java.lang.Exception
Returns a bandwidth-friendly list of the most recent posts in the system.

Parameters:
blogID - Blog ID
username - Username
password - Password
numberOfPosts - Number of titles to retrieve
Returns:
Bandwidth-friendly list of the most recent posts in the system
Throws:
java.lang.Exception - If there is an error retrieving post titles

getCategoryList

public java.lang.Object getCategoryList(java.lang.String blogID,
                                        java.lang.String username,
                                        java.lang.String password)
                                 throws java.lang.Exception
Returns a list of all categories defined in the weblog.

Parameters:
blogID - Blog ID
username - Username
password - Password
Returns:
List of all categories defined in the weblog
Throws:
java.lang.Exception - If there is an error getting the category list

getPostCategories

public java.lang.Object getPostCategories(java.lang.String postID,
                                          java.lang.String username,
                                          java.lang.String password)
                                   throws java.lang.Exception
Returns a list of all categories to which the post is assigned. Since we only support single categories at the moment, just return a single structure.

Parameters:
postID - Post ID
username - Username
password - Password
Returns:
An array of structs containing String categoryName, String categoryId, and boolean isPrimary
Throws:
java.lang.Exception

setPostCategories

public boolean setPostCategories(java.lang.String postID,
                                 java.lang.String username,
                                 java.lang.String password,
                                 java.util.Vector categories)
                          throws java.lang.Exception
Sets the categories for a post.

Parameters:
postID - Post ID
username - Username
password - Password
categories - Array of structs containing String categoryId and boolean isPrimary
Returns:
true if categories set for a post
Throws:
java.lang.Exception - If there is an error setting the categories for a post

supportedMethods

public java.lang.Object supportedMethods()
                                  throws java.lang.Exception
Retrieve information about the XML-RPC methods supported by the server.

Returns:
Array of method names supported by the server
Throws:
java.lang.Exception - If there is an error retrieving the list of supported XML-RPC methods.

supportedTextFilters

public java.lang.Object supportedTextFilters()
                                      throws java.lang.Exception
Retrieve information about the text formatting plugins supported by the server.

Returns:
An array of structs containing String key and String label. key is the unique string identifying a text formatting plugin, and label is the readable description to be displayed to a user
Throws:
java.lang.Exception - If there is an error retrieving the list of plugins

getTrackbackPings

public java.lang.Object getTrackbackPings(java.lang.String postID)
                                   throws java.lang.Exception
Retrieve the list of TrackBack pings posted to a particular entry

Parameters:
postID - Post ID
Returns:
An array of structs containing String pingTitle (the title of the entry sent in the ping), String pingURL (the URL of the entry), and String pingIP (the IP address of the host that sent the ping)
Throws:
java.lang.Exception - If there is an error retrieving trackbacks for an entry

publishPost

public boolean publishPost(java.lang.String postID,
                           java.lang.String username,
                           java.lang.String password)
                    throws java.lang.Exception
Publish (rebuild) all of the static files related to an entry from your weblog. Equivalent to saving an entry in the system (but without the ping)

Parameters:
postID - Post ID
username - Username
password - Password
Returns:
true if post published
Throws:
java.lang.Exception - If there is an error publishing the post