package com.dgex.offspring.providers.service;
import java.util.HashMap;
import java.util.Map;
public class Currencies {
private static final Map<String, ICurrency> currencies = new HashMap<String, ICurrency>();
private static final Map<String, ICurrencyPair> currencyPairs = new HashMap<String, ICurrencyPair>();
public static ICurrency getCurrency(String id) {
return currencies.get(id);
}
public static ICurrencyPair getCurrencyPair(ICurrency base, ICurrency quote) {
String key = base.getId() + quote.getId();
if (!(currencyPairs.containsKey(key))) {
ICurrencyPair pair = new CurrencyPair(base, quote);
currencyPairs.put(key, pair);
return pair;
}
return currencyPairs.get(key);
}
public static class CurrencyPair implements ICurrencyPair {
private final ICurrency base;
private final ICurrency quote;
public CurrencyPair(ICurrency base, ICurrency quote) {
this.base = base;
this.quote = quote;
}
@Override
public ICurrency getBase() {
return base;
}
@Override
public ICurrency getQuote() {
return quote;
}
@Override
public String toString() {
return "CurrencyPair[" + base.getId() + "/" + quote.getId() + "]";
}
};
public static class Currency implements ICurrency {
private final String id;
private final String description;
private final String label;
private final String url;
private final String format;
public Currency(String id, String format, String description, String label,
String url) {
this.id = id;
this.format = format;
this.description = description;
this.label = label;
this.url = url;
currencies.put(id, this);
}
@Override
public String toString() {
return "Currency[" + id + "]";
}
@Override
public String getId() {
return id;
}
@Override
public String getDescription() {
return description;
}
@Override
public String getLabel() {
return label;
}
@Override
public String getURL() {
return url;
}
@Override
public String getDecimalFormat() {
return format;
}
@Override
public ICurrencyPair getPair(ICurrency quote) {
return getCurrencyPair(this, quote);
}
};
/* Fiat Currencies */
public static ICurrency AUD = new Currency(ICurrency.AUD, "##.00", "AUD",
"Australian Dollar", "");
public static ICurrency BRL = new Currency(ICurrency.BRL, "##.00", "BRL",
"Brazilian Real", "");
public static ICurrency CAD = new Currency(ICurrency.CAD, "##.00", "CAD",
"Canadian Dollar", "");
public static ICurrency CHF = new Currency(ICurrency.CHF, "00.00", "CHF",
"Swiss Franc", "");
public static ICurrency CNY = new Currency(ICurrency.CNY, "00.00", "CNY",
"Yuan", "");
public static ICurrency EUR = new Currency(ICurrency.EUR, "##.00", "EUR",
"Euro", "");
public static ICurrency GBP = new Currency(ICurrency.GBP, "00.00", "GBP",
"British Pond", "");
public static ICurrency ILS = new Currency(ICurrency.ILS, "00.00", "ILS",
"Israeli Shekel", "");
public static ICurrency JPY = new Currency(ICurrency.JPY, "00.00", "JPY",
"Yen", "");
public static ICurrency NOK = new Currency(ICurrency.NOK, "00.00", "NOK",
"Norwegian Krone", "");
public static ICurrency NZD = new Currency(ICurrency.NZD, "00.00", "NZD",
"New Zealand Dollar", "");
public static ICurrency PLN = new Currency(ICurrency.PLN, "00.00", "PLN",
"Polish Złoty", "");
public static ICurrency RUB = new Currency(ICurrency.RUB, "00.00", "RUB",
"Ruble", "");
public static ICurrency SEK = new Currency(ICurrency.SEK, "00.00", "SEK",
"Swedish Krona", "");
public static ICurrency SGD = new Currency(ICurrency.SGD, "00.00", "SGD",
"Singapore Dollar", "");
public static ICurrency TRY = new Currency(ICurrency.TRY, "00.00", "TRY",
"Turkish Lira", "");
public static ICurrency USD = new Currency(ICurrency.USD, "00.00", "USD",
"Dollar", "");
public static ICurrency ZAR = new Currency(ICurrency.ZAR, "00.00", "ZAR",
"South African Rand", "");
/* Crypto Currencies */
public static ICurrency BTC = new Currency(ICurrency.BTC, "00.00", "Bitcoin",
"Bitcoin", "http://bitcoin.org");
public static ICurrency LTC = new Currency(ICurrency.LTC, "00.00",
"Litecoin", "Litecoin", "http://litecoin.org");
public static ICurrency PPC = new Currency(ICurrency.PPC, "00.00",
"Peercoin", "Peercoin", "http://peercoin.net");
public static ICurrency DODGE = new Currency(ICurrency.DODGE, "00.00",
"Dodgecoin", "Dodgecoin", "http://dodgecoin.com");
public static ICurrency NXT = new Currency(ICurrency.NXT, "##0.00000000",
"NXT", "NXT", "http://nxtcrypto.org");
public static ICurrency MSC = new Currency(ICurrency.MSC, "00.00", "MSC",
"Mastercoin", "http://www.mastercoin.org/");
public static ICurrency NMC = new Currency(ICurrency.NMC, "00.00", "NMC",
"Namecoin", "http://namecoin.info/");
public static ICurrency QRK = new Currency(ICurrency.QRK, "00.00", "QRK",
"Quark", "http://qrk.cc/");
public static ICurrency XPM = new Currency(ICurrency.XPM, "00.00", "XPM",
"Primecoin", "http://primecoin.io/");
}