/*******************************************************************************
* Copyright (c) 2010 Denis Solonenko.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v2.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
* Contributors:
* Denis Solonenko - initial API and implementation
* Abdsandryk Souza - adding default currency and fromCursor
******************************************************************************/
package ru.orangesoftware.financisto2.model;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import ru.orangesoftware.financisto2.utils.CurrencyCache;
@Entity
@Table(name = "currency")
public class Currency extends MyEntity {
public static final Currency EMPTY = new Currency();
static {
EMPTY.id = 0;
EMPTY.name = "";
EMPTY.title = "Default";
EMPTY.symbol = "";
EMPTY.symbolFormat = SymbolFormat.RS;
EMPTY.decimals = 2;
EMPTY.decimalSeparator = "'.'";
EMPTY.groupSeparator = "','";
}
@Column(name = "name")
public String name;
@Column(name = "symbol")
public String symbol;
@Column(name = "symbol_format")
public SymbolFormat symbolFormat = SymbolFormat.RS;
@Column(name = "is_default")
public boolean isDefault;
@Column(name = "decimals")
public int decimals = 2;
@Column(name = "decimal_separator")
public String decimalSeparator;
@Column(name = "group_separator")
public String groupSeparator;
@Transient
private volatile DecimalFormat format;
@Override
public String toString() {
return name;
}
public NumberFormat getFormat() {
DecimalFormat f = format;
if (f == null) {
f = CurrencyCache.createCurrencyFormat(this);
format = f;
}
return f;
}
public static Currency defaultCurrency() {
Currency c = new Currency();
c.id = 2;
c.name = "USD";
c.title = "American Dollar";
c.symbol = "$";
c.decimals = 2;
return c;
}
}