轉載須註明出自:http://blog.csdn.net/minimicall?viewmode=contents,http://cloudtrader.top
貨幣,Cointrader中基本實體。我們通過代碼來學習該實體:
package org.cryptocoinpartners.schema;
import java.util.List;
import javax.persistence.Cacheable;
import javax.persistence.Entity;
import javax.persistence.NoResultException;
import org.cryptocoinpartners.util.PersistUtil;
/**
* @author Tim Olson
*/
@Entity //實體
@Cacheable
public class Currency extends Asset {//貨幣是資產的一種,繼承關係
public boolean isFiat() {//是否爲法定貨幣
return fiat;
}
public static Currency forSymbol(String symbol) {
return PersistUtil.queryOne(Currency.class, "select c from Currency c where symbol=?1", symbol);
}
public static List<String> allSymbols() {
return PersistUtil.queryList(String.class, "select symbol from Currency");
}
// JPA
protected Currency() {
}
protected void setFiat(boolean fiat) {
this.fiat = fiat;
}
// used by Currencies
static Currency forSymbolOrCreate(String symbol, boolean isFiat, double basis) {
try {
return forSymbol(symbol);
} catch (NoResultException e) {
final Currency currency = new Currency(isFiat, symbol, basis);
PersistUtil.insert(currency);
return currency;
}
}
// used by Currencies
static Currency forSymbolOrCreate(String symbol, boolean isFiat, double basis, double multiplier) {
try {
return forSymbol(symbol);
} catch (NoResultException e) {
final Currency currency = new Currency(isFiat, symbol, basis, multiplier);
PersistUtil.insert(currency);
return currency;
}
}
private Currency(boolean fiat, String symbol, double basis) {
super(symbol, basis);
this.fiat = fiat;
}
private Currency(boolean fiat, String symbol, double basis, double multiplier) {
super(symbol, basis);
this.fiat = fiat;
this.multiplier = multiplier;
}
private boolean fiat;//是否爲法定貨幣
private double multiplier;//乘數
}
multiplier乘數是一個比較生疏的一個概念。它的介紹見wikipedia:http://en.wikipedia.org/wiki/Multiplier_(economics)
還是一個比較難的概念。