<commit_before>= Bitcoinj-addons User Guide
<NAME>
v0.1, September 12, 2015: First draft
:numbered:
:toc:
:toclevels: 3
:linkattrs:
:imagesdir: images

Paragraph TBD.

== Introduction to bitcoinj-addons

This section is TBD. For now the project https://github.com/msgilligan/bitcoinj-addons/blob/master/README.adoc[README] is the best place to get started.

== JSON-RPC Clients

[plantuml, diagram-classes, svg]
....
skinparam packageStyle Rect
skinparam shadowing false
hide empty members

namespace com.msgilligan.bitcoinj.rpc {
    interface UntypedRPCClient
    abstract class AbstractRPCClient

    class RPCClient
    class BitcoinClient
    class BitcoinExtendedClient

    interface DynamicRPCFallback << Groovy, trait >>
    class DynamicRPCClient << Groovy >>
    class BitcoinScriptingClient << Groovy >>
    class BitcoinCLIClient << Groovy >>

    UntypedRPCClient <|.. AbstractRPCClient
    AbstractRPCClient <|-- RPCClient

    UntypedRPCClient <|.. DynamicRPCFallback
    RPCClient <|-- DynamicRPCClient
    DynamicRPCFallback <|.. DynamicRPCClient

    RPCClient <|-- BitcoinClient
    BitcoinClient <|-- BitcoinExtendedClient
    BitcoinExtendedClient <|-- BitcoinScriptingClient
    DynamicRPCFallback <|.. BitcoinScriptingClient
    BitcoinClient <|-- class BitcoinCLIClient
}

namespace com.msgilligan.namecoinj.rpc {
    class NamecoinClient
    class NamecoinScriptingClient << Groovy >>

    com.msgilligan.bitcoinj.rpc.BitcoinClient <|-- NamecoinClient
    NamecoinClient <|.. NamecoinScriptingClient
    com.msgilligan.jsonrpc.DynamicRPCFallback <|.. NamecoinScriptingClient
}

namespace foundation.omni.rpc {
    class OmniClient
    class OmniScriptingClient << Groovy >>
    class OmniCLIClient << Groovy >>


    com.msgilligan.bitcoinj.rpc.BitcoinExtendedClient <|-- OmniClient
    OmniClient <|-- OmniScriptingClient
    com.msgilligan.jsonrpc.DynamicRPCFallback <|.. OmniScriptingClient
    OmniClient <|-- class OmniCLIClient
}


....
<commit_msg>Update PlantUML for new `jsonrpc` package<commit_after>= Bitcoinj-addons User Guide
<NAME>
v0.1, September 12, 2015: First draft
:numbered:
:toc:
:toclevels: 3
:linkattrs:
:imagesdir: images

Paragraph TBD.

== Introduction to bitcoinj-addons

This section is TBD. For now the project https://github.com/msgilligan/bitcoinj-addons/blob/master/README.adoc[README] is the best place to get started.

== JSON-RPC Clients

[plantuml, diagram-classes, svg]
....
skinparam packageStyle Rect
skinparam shadowing false
hide empty members

namespace com.msgilligan.jsonrpc {
    interface UntypedRPCClient
    abstract class AbstractRPCClient

    class RPCClient

    interface DynamicRPCFallback << Groovy, trait >>
    class DynamicRPCClient << Groovy >>

    UntypedRPCClient <|.. AbstractRPCClient
    AbstractRPCClient <|-- RPCClient

    UntypedRPCClient <|.. DynamicRPCFallback
    RPCClient <|-- DynamicRPCClient
    DynamicRPCFallback <|.. DynamicRPCClient
}

namespace com.msgilligan.bitcoinj.rpc {
    class BitcoinClient
    class BitcoinExtendedClient

    class BitcoinScriptingClient << Groovy >>
    class BitcoinCLIClient << Groovy >>


    com.msgilligan.jsonrpc.RPCClient <|-- BitcoinClient
    BitcoinClient <|-- BitcoinExtendedClient
    BitcoinExtendedClient <|-- BitcoinScriptingClient
    com.msgilligan.jsonrpc.DynamicRPCFallback <|.. BitcoinScriptingClient
    BitcoinClient <|-- class BitcoinCLIClient
}

namespace com.msgilligan.namecoinj.rpc {
    class NamecoinClient
    class NamecoinScriptingClient << Groovy >>

    com.msgilligan.bitcoinj.rpc.BitcoinClient <|-- NamecoinClient
    NamecoinClient <|.. NamecoinScriptingClient
    com.msgilligan.jsonrpc.DynamicRPCFallback <|.. NamecoinScriptingClient
}

namespace foundation.omni.rpc {
    class OmniClient
    class OmniScriptingClient << Groovy >>
    class OmniCLIClient << Groovy >>


    com.msgilligan.bitcoinj.rpc.BitcoinExtendedClient <|-- OmniClient
    OmniClient <|-- OmniScriptingClient
    com.msgilligan.jsonrpc.DynamicRPCFallback <|.. OmniScriptingClient
    OmniClient <|-- class OmniCLIClient
}


....

{'fraction_non_alphanumeric': 0.09175662414131501, 'fraction_numerical': 0.004416094210009814, 'mean_word_length': 4.002453987730061, 'pattern_counts': {'":': 0, '<': 67, '<?xml version=': 0, '>': 33, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1651825', 'n_tokens_mistral': 1307, 'n_tokens_neox': 1230, 'n_words': 271}