extensions/net.sf.basedb.varsearch/trunk/src/net/sf/basedb/varsearch/util/NullSafeJSONObject.java

Code
Comments
Other
Rev Date Author Line
6170 17 Mar 21 nicklas 1 package net.sf.basedb.varsearch.util;
6170 17 Mar 21 nicklas 2
6170 17 Mar 21 nicklas 3
6170 17 Mar 21 nicklas 4 import java.util.Map;
6170 17 Mar 21 nicklas 5
6170 17 Mar 21 nicklas 6 import org.json.simple.JSONObject;
6170 17 Mar 21 nicklas 7
6170 17 Mar 21 nicklas 8
6170 17 Mar 21 nicklas 9 /**
6170 17 Mar 21 nicklas 10   Variant of a JSONObject that simply ignore null values in the put() and
6170 17 Mar 21 nicklas 11   putAll() methods.
6170 17 Mar 21 nicklas 12   @author nicklas
6170 17 Mar 21 nicklas 13 */
6170 17 Mar 21 nicklas 14 public class NullSafeJSONObject
6170 17 Mar 21 nicklas 15   extends JSONObject
6170 17 Mar 21 nicklas 16 {
6170 17 Mar 21 nicklas 17
6170 17 Mar 21 nicklas 18   private static final long serialVersionUID = -8821343382013571012L;
6170 17 Mar 21 nicklas 19
6170 17 Mar 21 nicklas 20   @Override
6170 17 Mar 21 nicklas 21   public Object put(String key, Object value)
6170 17 Mar 21 nicklas 22   {
6170 17 Mar 21 nicklas 23     return value == null ? null : super.put(key, value);
6170 17 Mar 21 nicklas 24   }
6170 17 Mar 21 nicklas 25
6170 17 Mar 21 nicklas 26   @Override
6170 17 Mar 21 nicklas 27   public void putAll(Map<? extends String, ? extends Object> m) 
6170 17 Mar 21 nicklas 28   {
6170 17 Mar 21 nicklas 29     for (Map.Entry<? extends String, ? extends Object> entry : m.entrySet())
6170 17 Mar 21 nicklas 30     {
6170 17 Mar 21 nicklas 31       if (entry.getValue() != null) super.put(entry.getKey(),  entry.getValue());
6170 17 Mar 21 nicklas 32     }
6170 17 Mar 21 nicklas 33     super.putAll(m);
6170 17 Mar 21 nicklas 34   }
6170 17 Mar 21 nicklas 35
6170 17 Mar 21 nicklas 36 }