@startuml

    namespace org.apache.wiki.xmlrpc {

        class RPCHandler [[RPCHandler.html]] {
            +getApplicationName(): String
            +getAllPages(): Vector<String>
            #encodeWikiPage(Page): Hashtable<String, Object>
            +getRecentChanges(Date): Vector<Hashtable<String, Object>>
            +getPageInfo(String): Hashtable
            +getPageInfoVersion(String, int): Hashtable
            +getPage(String): byte[]
            +getPageVersion(String, int): byte[]
            +getPageHTML(String): byte[]
            +getPageHTMLVersion(String, int): byte[]
            +listLinks(String): Vector<Hashtable<String, String>>
        }

        abstract class AbstractRPCHandler [[AbstractRPCHandler.html]] {
            {static} +ERR_NOPAGE: int
            {static} +ERR_NOPERMISSION: int
            {static} +LINK_LOCAL: String
            {static} +LINK_EXTERNAL: String
            {static} +LINK_INLINE: String
            {static} +RPC_VERSION: int
            #m_engine: Engine
            #m_context: Context
            +initialize(Context): void
            +getRecentChanges(Date): Vector
            #checkPermission(Permission): void
            +getRPCVersionSupported(): int
            {abstract} #encodeWikiPage(Page): Hashtable
        }

        class RPCServlet [[RPCServlet.html]] {
            {static} +XMLRPC_PREFIX: String
            +initHandler(String, String): void
            +init(ServletConfig): void
            +doPost(HttpServletRequest, HttpServletResponse): void
            +doGet(HttpServletRequest, HttpServletResponse): void
        }

        class MetaWeblogHandler [[MetaWeblogHandler.html]] {
            +initialize(Context): void
            +getCategories(String, String, String): Hashtable<Object, Object>
            +getRecentPosts(String, String, String, int): Hashtable
            +newPost(String, String, String, Hashtable<String, Object>, boolean): String
            +newMediaObject(String, String, String, Hashtable<String, Object>): Hashtable<String, Object>
        }

        interface WikiRPCHandler [[WikiRPCHandler.html]] {
            {abstract} +initialize(Context): void
        }

        class RPCHandlerUTF8 [[RPCHandlerUTF8.html]] {
            +getApplicationName(): String
            +getAllPages(): Vector<String>
            #encodeWikiPage(Page): Hashtable<String, Object>
            +getRecentChanges(Date): Vector<Hashtable<String, Object>>
            +getPageInfo(String): Hashtable<String, Object>
            +getPageInfoVersion(String, int): Hashtable<String, Object>
            +getPage(String): String
            +getPageVersion(String, int): String
            +getPageHTML(String): String
            +getPageHTMLVersion(String, int): String
            +listLinks(String): Vector<Hashtable<String, String>>
        }

        AbstractRPCHandler <|-- RPCHandler

        WikiRPCHandler <|.. AbstractRPCHandler

        abstract class javax.servlet.http.HttpServlet
        javax.servlet.http.HttpServlet <|-- RPCServlet

        WikiRPCHandler <|.. MetaWeblogHandler

        AbstractRPCHandler <|-- RPCHandlerUTF8

    }


    center footer UMLDoclet 1.1.4, PlantUML 1.2019.05
@enduml
