anchor.diff:  CurrencyUnit currencyUSD = MonetaryCurrencies.getCurrencyUnit("USD");
   CurrencyUnit currencyEUR = MonetaryCurrencies.getCurrencyUnit("EUR");
   --------------------------------------------
  -
  +////
  +
  +[source,java]
  +.通貨コードで通貨を取得する
  +--------------------------------------------
  +CurrencyUnit currencyCHF = MonetaryCurrencies.getCurrencyUnit("CHF");
  +CurrencyUnit currencyUSD = MonetaryCurrencies.getCurrencyUnit("USD");
  +CurrencyUnit currencyEUR = MonetaryCurrencies.getCurrencyUnit("EUR");
  +--------------------------------------------
  +
  +////
   Hereby all codes available in the underlying JDK are mapped by default.
  -
  +////
  +
  +使用中のJDKで使用可能なすべての通貨コードが、デフォルトでマッピングされています。
  +（訳注:なんのことか？要調査）
  +
  +////
   ==== Access currencies by Locale
  -
  +////
  +
  +==== ロケールで通貨を取得する
  +
  +////
   You can use +java.util.Locale+ to access currencies. Hereby the +Locale+ instance, represents a
   country. All available countries can be accessed by calling +Locale.getISOCountries()+. With the
   given ISO country code a corresponding +Locale+ can be created:
  +////
  +
  ++java.util.Locale+ で通貨ができます。
  +ここで +Locale+ クラスのインスタンスは、国 (country) を指し示すために使われます（訳注:かなり意訳）。
  +なお、使用できる国のリストは、 +Locale.getISOCountries()+ メソッドで取得できます。
  +また、ISO国名コードを使って、 +Locale+ クラスのインスタンスが生成できます:
  +
   [source,java]
   --------------------------------------------
   String isoCountry = "USA";
   Locale country = new Locale("", isoCountry);
   --------------------------------------------
   
  +////
   Similarly to +java.util.Currency+ a +CurrencyUnit+ can be accessed using this +Locale+:
  -
  +////
  +
  ++java.util.Currency+ クラスと同じように、 +CurrencyUnit+ クラスのインスタンスはロケールを使って取得できます。
  +
  +////
   [source,java]
   .Accessing currencies by Locale
   --------------------------------------------
  
positive.code:   ...
  }
  --------------------------------------------
  
  Now given this example it is obvious that the tricky part is to define, when exactly a given +CurrencyQuery+
  should be targeted by this provider, or otherwise, be simply ignored. In our case just provide an additional
  ISO code, so it is a good idea to just only return data for _default_ query types. Additionally we only return our code
  sublist, when the according code is requested, or a unspecified request is performed.
  
  
  ==== Building Custom Currency Units
  
  [source,java]
  .Example of registering +CurrencyUnit+ instances programmatically.
  --------------------------------------------
  
negative.code:  */
  public static CurrencyUnit removeCurrencyUnit(Locale locale);
  --------------------------------------------
  ////
  
  [source,java]
  .+CurrencyUnit+ クラスのインスタンスをプログラム上で登録する例:
  --------------------------------------------
  /**
   * 新しい通貨単位を、その通貨コードに対応するものとして登録する.
   * @param currencyUnit 登録される通貨。非null。
   * @return 通貨コードに対応する通貨単位が既に登録されていれば、そのインスタンス。
   *         登録されていなければ、null。
   */
  public static CurrencyUnit registerCurrencyUnit(CurrencyUnit currencyUnit);
  
  /**
   * 新しい通貨単位を、ロケールに対応するものとして登録する.
   * @param currencyUnit 登録される通貨。非null。
   * @param locale ロケール。非null。
   * @return ロケールに対応する通貨単位が既に登録されていれば、そのインスタンス。
   *         登録されていなければ、null。
   */
  public static CurrencyUnit registerCurrencyUnit(CurrencyUnit currencyUnit, Locale locale);
  
  /**
   * 通貨単位を削除する.
   * @param currencyCode 通貨コード。非null。
   * @return 削除される通貨単位のインスタンス。削除される通貨単位がない場合、null。
   */
  public static CurrencyUnit removeCurrencyUnit(String currencyCode);
  
  /**
   * 通貨単位を削除する.
   * @param locale ロケール。非null。
   * @return 削除される通貨単位のインスタンス。削除される通貨単位がない場合、null。
   */
  public static CurrencyUnit removeCurrencyUnit(Locale locale);
  --------------------------------------------
  
  ////
  The API is straightforward so far. For most cases the +BuildableCurrencyUnit+ class can be used to create additional
  currency instances that then can be registered using the static methods:
  ////
  
  これまでのところ、APIは単純明快です。
  上述のstaticメソッドで登録するべき追加的な通貨単位のインスタンスは、
  大抵の場合、次節で紹介する +BuildableCurrencyUnit+ クラスから生成できます。
  
  ////
  ==== Registering Additional Currency Units
  ////
  
  ==== 追加的な通貨単位を登録する
  
  ////
  For adding additional CurrencyUnit instances to the +MonetaryCurrencies+ singleton, you must implement an instance
  of +CurrencyProvider+. Following a minimal example, hereby also reusing the +BuildableCurrencyUnit+ class, that
  also provides currencies for Bitcoin:
  訳注: CurrencyProvider -> CurrencyProviderSpi
  訳注: reusingしてない
  ////
  
  CurrencyUnitクラスのインスタンスを +MonetaryCurrencies+ シングルトンに追加するためには、
  +CurrencyProviderSpi+ インタフェースを実装したクラスを作る必要があります。
  次に挙げる最小限の実装では、+BuildableCurrencyUnit+ クラスを使って
  Bitcoinの通貨単位を生成しています。
  
  ////
  [source,java]
  .Implementing a Bitcoin currency provider
  --------------------------------------------
  