package io.emax.cosigner.ethereum.token.CurrencyConfigurations;
import io.emax.cosigner.api.core.CurrencyPackageInterface;
import io.emax.cosigner.api.currency.CurrencyConfiguration;
import io.emax.cosigner.api.currency.Monitor;
import io.emax.cosigner.api.currency.Wallet;
import io.emax.cosigner.ethereum.token.TokenConfiguration;
import io.emax.cosigner.ethereum.token.TokenMonitor;
import io.emax.cosigner.ethereum.token.TokenWallet;
public class GenericCurrencyPackage implements CurrencyPackageInterface {
private TokenConfiguration tokenConfiguration = null;
private TokenWallet tokenWallet = null;
private TokenMonitor tokenMonitor = null;
public GenericCurrencyPackage(String configurationSymbol) {
tokenConfiguration = new TokenConfiguration(configurationSymbol);
}
public CurrencyConfiguration getConfiguration() {
return tokenConfiguration;
}
public void setConfiguration(CurrencyConfiguration configuration) {
if (configuration.getClass().isInstance(TokenConfiguration.class)) {
tokenConfiguration = (TokenConfiguration) configuration;
}
}
public Wallet getWallet() {
if (tokenWallet == null) {
tokenWallet = new TokenWallet(tokenConfiguration);
}
return tokenWallet;
}
public void setWallet(Wallet wallet) {
if (wallet.getClass().isInstance(TokenWallet.class)) {
tokenWallet = (TokenWallet) wallet;
}
}
public Monitor getMonitor() {
if (tokenMonitor == null) {
tokenMonitor = new TokenMonitor((TokenWallet) getWallet());
}
return tokenMonitor;
}
public void setMonitor(Monitor monitor) {
if (monitor.getClass().isInstance(TokenMonitor.class)) {
tokenMonitor = (TokenMonitor) monitor;
}
}
}