/* * */ package org.smartly.packages.velocity.impl.vtools.lang; import org.smartly.commons.util.ConversionUtils; import org.smartly.commons.util.StringUtils; import java.util.*; /** * VLCObject works like a Map and has a method to retrieve a querystring * * @author angelo.geminiani */ public class VLCObject implements Map<String, Object> { private final Map<String, Object> _map; public VLCObject() { _map = new HashMap<String, Object>(); } public VLCObject(final Object args) { this(); if (null != args) { this.init(args); } } @Override public String toString() { return _map.toString(); } //<editor-fold defaultstate="collapsed" desc=" MAP "> @Override public int size() { return _map.size(); } @Override public boolean isEmpty() { return _map.isEmpty(); } @Override public boolean containsKey(Object key) { return _map.containsKey(key); } @Override public boolean containsValue(Object value) { return _map.containsValue(value); } @Override public Object get(Object key) { return _map.get(key); } @Override public Object put(String key, Object value) { return _map.put(key, value); } @Override public Object remove(Object key) { return _map.remove(key); } @Override public void putAll(Map<? extends String, ? extends Object> m) { _map.putAll(m); } @Override public void clear() { _map.clear(); } @Override public Set<String> keySet() { return _map.keySet(); } @Override public Collection<Object> values() { return _map.values(); } @Override public Set<Entry<String, Object>> entrySet() { return _map.entrySet(); } //</editor-fold> public final int getInt(final String key) { return this.getInt(key, 0); } public final int getInt(final String key, final int defaultValue) { return ConversionUtils.toInteger(this.get(key), defaultValue); } public final boolean getBoolean(final String key) { return this.getBoolean(key, false); } public final boolean getBoolean(final String key, final boolean defaultValue) { return ConversionUtils.toBoolean(this.get(key), defaultValue); } public final double getDouble(final String key) { return this.getDouble(key, 0.0); } public final double getDouble(final String key, final double defaultValue) { return ConversionUtils.toDouble(this.get(key), -1, defaultValue); } public final String getString(final String key) { return this.getString(key, ""); } public final String getString(final String key, final String defaultValue) { return StringUtils.toString(this.get(key), defaultValue); } public final String toQueryString() { return StringUtils.toQueryString(_map); } public final String toQueryString(final String separator) { return StringUtils.toQueryString(_map, separator); } // ------------------------------------------------------------------------ // p r i v a t e // ------------------------------------------------------------------------ private void init(final Object args) { int count = 0; if (args instanceof List) { final List<Object> list = (List<Object>) args; for (final Object arg : list) { if (null != arg) { _map.put(count + "", arg); count++; } } } else if (args.getClass().isArray()) { final Object[] list = (Object[]) args; for (final Object arg : list) { if (null != arg) { _map.put(count + "", arg); count++; } } } } }