/* * */ package org.smartly.packages.mongo.impl.db.entity; import com.mongodb.DBObject; import org.smartly.commons.util.StringUtils; import org.smartly.packages.mongo.impl.MongoObject; import org.smartly.packages.mongo.impl.util.MongoUtils; import java.util.LinkedList; import java.util.List; /** * Country data. * * FIELDS: * - ID {_id}: country code. i.e. "IT", "GB", "US", "DE" * - CURRENCY_CODE {currencycode}: ISO 4217 currency code (http://en.wikipedia.org/wiki/ISO_4217). i.e. "GBP" * - CURRENCY_NAME {currencyname}: ISO 4217 currency name. i.e. "pound" * - CURRENCY_SYMBOL {currencysymbol}: ISO 4217 currency symbol. i.e. "£" * - STORE_TAX {storetax}: Default Tax for current store. i.e. "0.21" * - TAXVALUES {taxvalues}: Array ob objects {name:'IVA 21%', value:0.21} * - ENABLED {enabled}: True if country is enabled. Remember to disable countries you don't need. * - REGION {array} * * @author angelo.geminiani */ public class MongoCountry extends MongoObject { // ------------------------------------------------------------------------ // Constants // ------------------------------------------------------------------------ public static String COLLECTION = "countries"; //public static final String ID = ISCMongoConstants.UID; public static final String NAME = IMongoEntityConstants.NAME; public static final String CURRENCY_CODE = IMongoEntityConstants.CURRENCY_CODE; public static final String CURRENCY_NAME = IMongoEntityConstants.CURRENCY_NAME; public static final String CURRENCY_SYMBOL = IMongoEntityConstants.CURRENCY_SYMBOL; public static final String SEP_DECIMAL = IMongoEntityConstants.SEP_DECIMAL; public static final String SEP_GROUPING = IMongoEntityConstants.SEP_GROUPING; public static final String STORE_TAX = IMongoEntityConstants.STORE_TAX; public static final String ENABLED = IMongoEntityConstants.ENABLED; public static final String IMAGE = IMongoEntityConstants.IMAGE; //-- collections --// public static final String REGIONS = IMongoEntityConstants.REGIONS; public static final String TAXVALUES = IMongoEntityConstants.TAXVALUES; // ------------------------------------------------------------------------ // Constructor // ------------------------------------------------------------------------ public MongoCountry() { // no default ID. this.append(ENABLED, true); this.append(IMAGE, ""); } // ------------------------------------------------------------------------ // STATIC // ------------------------------------------------------------------------ public static String getId(final DBObject item) { return MongoUtils.getString(item, ID); } public static void setId(final DBObject item, final String value) { MongoUtils.put(item, ID, value); // add default image image if(!StringUtils.hasText(MongoCountry.getImage(item))){ MongoCountry.setImage(item, "/images/flags/".concat(value.toLowerCase()).concat(".png")); } } public static String getName(final DBObject item) { return MongoUtils.getString(item, NAME); } public static void setName(final DBObject item, final String value) { MongoUtils.put(item, NAME, value); } public static String getCurrencyCode(final DBObject item) { return MongoUtils.getString(item, CURRENCY_CODE); } public static void setCurrencyCode(final DBObject item, final String value) { MongoUtils.put(item, CURRENCY_CODE, value); } public static String getCurrencyName(final DBObject item) { return MongoUtils.getString(item, CURRENCY_NAME); } public static void setCurrencyName(final DBObject item, final String value) { MongoUtils.put(item, CURRENCY_NAME, value); } public static String getCurrencySymbol(final DBObject item) { return MongoUtils.getString(item, CURRENCY_SYMBOL); } public static void setCurrencySymbol(final DBObject item, final String value) { MongoUtils.put(item, CURRENCY_SYMBOL, value); } public static String getSepDecimal(final DBObject item) { return MongoUtils.getString(item, SEP_DECIMAL); } public static void setSepDecimal(final DBObject item, final String value) { MongoUtils.put(item, SEP_DECIMAL, value); } public static String getSepGrouping(final DBObject item) { return MongoUtils.getString(item, SEP_GROUPING); } public static void setSepGrouping(final DBObject item, final String value) { MongoUtils.put(item, SEP_GROUPING, value); } public static String getImage(final DBObject item) { return MongoUtils.getString(item, IMAGE); } public static void setImage(final DBObject item, final String value) { MongoUtils.put(item, IMAGE, value); } public static double getStoreTax(final DBObject item) { return MongoUtils.getDouble(item, STORE_TAX, 2, 0.21); } public static void setStoreTax(final DBObject item, final double value) { MongoUtils.put(item, STORE_TAX, value); } public static boolean getEnabled(final DBObject item) { return MongoUtils.getBoolean(item, ENABLED, false); } public static void setEnabled(final DBObject item, final boolean value) { MongoUtils.put(item, ENABLED, value); } public static List<DBObject> getRegions(final DBObject item) { return MongoUtils.getList(item, REGIONS); } public static void setRegions(final DBObject item, final List<DBObject> value) { MongoUtils.put(item, REGIONS, value); } public static List<DBObject> getTaxValues(final DBObject item) { return MongoUtils.getList(item, TAXVALUES); } public static void setTaxValues(final DBObject item, final List<DBObject> value) { MongoUtils.put(item, TAXVALUES, value); } public static void setTaxValues(final DBObject item, final String[] value) { final List<DBObject> values = new LinkedList<DBObject>(); for(final String jsontxt:value){ final DBObject val = MongoUtils.parseObject(jsontxt); values.add(val); } setTaxValues(item, values); } }